summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-01-30 20:03:44 +0000
committerZac Medico <zmedico@gentoo.org>2008-01-30 20:03:44 +0000
commit4f79b0df87934f110a7668a4eeb4c2897486af30 (patch)
tree7f584abb70346b5464d934a922fe6a19461f8a9c
parentAdd some notes about enhancements related to binary package support (diff)
downloadportage-multirepo-4f79b0df87934f110a7668a4eeb4c2897486af30.tar.gz
portage-multirepo-4f79b0df87934f110a7668a4eeb4c2897486af30.tar.bz2
portage-multirepo-4f79b0df87934f110a7668a4eeb4c2897486af30.zip
Pass db_keys in to the FakeVartree constructor (merged from trunk). This
solves an issue with EAPI missing from the key list which triggers invalid EAPI messages for masked packages in cases where there is an installed version and all ebuilds are masked. svn path=/main/branches/2.1.2/; revision=9234
-rwxr-xr-xbin/emerge15
1 files changed, 10 insertions, 5 deletions
diff --git a/bin/emerge b/bin/emerge
index 122e87fd..e54d8c7f 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1031,9 +1031,13 @@ class FakeVartree(portage.vartree):
user doesn't necessarily need write access to the vardb in cases where
global updates are necessary (updates are performed when necessary if there
is not a matching ebuild in the tree)."""
- def __init__(self, real_vartree, portdb):
+ def __init__(self, real_vartree, portdb, db_keys):
self.root = real_vartree.root
self.settings = real_vartree.settings
+ mykeys = db_keys[:]
+ for required_key in ("COUNTER", "SLOT"):
+ if required_key not in mykeys:
+ mykeys.append(required_key)
self.dbapi = portage.fakedbapi(settings=real_vartree.settings)
vdb_path = os.path.join(self.root, portage.VDB_PATH)
try:
@@ -1045,8 +1049,6 @@ class FakeVartree(portage.vartree):
try:
if os.access(vdb_path, os.W_OK):
vdb_lock = portage_locks.lockdir(vdb_path)
- mykeys = ["SLOT", "COUNTER", "PROVIDE", "USE", "IUSE",
- "RESTRICT", "DEPEND", "RDEPEND", "PDEPEND", "repository"]
real_dbapi = real_vartree.dbapi
slot_counters = {}
for cpv in real_dbapi.cpv_all():
@@ -1324,7 +1326,8 @@ class depgraph:
self.trees[myroot][tree] = trees[myroot][tree]
self.trees[myroot]["vartree"] = \
FakeVartree(trees[myroot]["vartree"],
- trees[myroot]["porttree"].dbapi)
+ trees[myroot]["porttree"].dbapi,
+ self._mydbapi_keys)
self.pkgsettings[myroot] = portage.config(
clone=self.trees[myroot]["vartree"].settings)
self.pkg_node_map[myroot] = {}
@@ -5709,7 +5712,9 @@ def action_depclean(settings, trees, ldpath_mtimes,
dep_check_trees = {}
dep_check_trees[myroot] = {}
dep_check_trees[myroot]["vartree"] = \
- FakeVartree(trees[myroot]["vartree"], trees[myroot]["porttree"].dbapi)
+ FakeVartree(trees[myroot]["vartree"],
+ trees[myroot]["porttree"].dbapi.
+ depgraph._mydbapi_keys)
vardb = dep_check_trees[myroot]["vartree"].dbapi
# Constrain dependency selection to the installed packages.
dep_check_trees[myroot]["porttree"] = dep_check_trees[myroot]["vartree"]