From 3f0355b0794c776353383f449cf5cc6594fa22a8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 14 Oct 2006 13:20:57 +0000 Subject: Fix a KeyError triggered by blockers in depgraph.display() for bug #151331. svn path=/main/trunk/; revision=4683 --- bin/emerge | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'bin') 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(): -- cgit v1.2.3-1-g7c22