summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-10-14 13:20:57 +0000
committerZac Medico <zmedico@gentoo.org>2006-10-14 13:20:57 +0000
commit3f0355b0794c776353383f449cf5cc6594fa22a8 (patch)
treecbec90b73a0c17dc2e9adb04ee17f482745f6563 /bin
parente7ac068da63fc6764fe097714aeea480992bb168 (diff)
downloadportage-3f0355b0794c776353383f449cf5cc6594fa22a8.tar.gz
portage-3f0355b0794c776353383f449cf5cc6594fa22a8.tar.bz2
portage-3f0355b0794c776353383f449cf5cc6594fa22a8.zip
Fix a KeyError triggered by blockers in depgraph.display() for bug #151331.
svn path=/main/trunk/; revision=4683
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge18
1 files changed, 11 insertions, 7 deletions
diff --git a/bin/emerge b/bin/emerge
index e167ba7c1..709c34013 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1624,13 +1624,6 @@ class depgraph:
bindb = self.trees[myroot]["bintree"].dbapi
vartree = self.trees[myroot]["vartree"]
pkgsettings = self.pkgsettings[myroot]
- pkgsettings.setcpv(pkg_key, mydb=portdb)
- if pkg_key not in self.useFlags[myroot]:
- if "binary" == pkg_type:
- self.useFlags[myroot][pkg_key] = bindb.aux_get(
- pkg_key, ["USE"])[0].split()
- elif "ebuild" == pkg_type:
- self.useFlags[myroot][pkg_key] = pkgsettings["USE"].split()
fetch=" "
@@ -1648,6 +1641,17 @@ class depgraph:
print bad("(is blocking %s)") % block_parents
else:
mydbapi = self.trees[myroot][self.pkg_tree_map[pkg_type]].dbapi
+ pkgsettings.setcpv(pkg_key, mydb=portdb)
+ if pkg_key not in self.useFlags[myroot]:
+ if "ebuild" == pkg_type:
+ if "merge" == x[3] or not vartree.dbapi.cpv_exists(pkg_key):
+ self.useFlags[myroot][pkg_key] = pkgsettings["USE"].split()
+ else:
+ self.useFlags[myroot][pkg_key] = vartree.dbapi.aux_get(
+ pkg_key, ["USE"])[0].split()
+ else:
+ self.useFlags[myroot][pkg_key] = mydbapi.aux_get(
+ pkg_key, ["USE"])[0].split()
if "ebuild" == pkg_type and x[3] != "nomerge" and \
"fetch" in portdb.aux_get(
x[2], ["RESTRICT"])[0].split():