From: Zac Medico Date: Wed, 18 Oct 2006 12:20:40 +0000 (-0000) Subject: Handle unresolvable blockers properly for bug #151822. X-Git-Tag: v2.1.2~600 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ba0a1dc73af8a17118bab2d119bdf31fc7bf39d6;p=portage.git Handle unresolvable blockers properly for bug #151822. svn path=/main/trunk/; revision=4753 --- diff --git a/bin/emerge b/bin/emerge index 8f0d4510c..0d859479d 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1432,11 +1432,22 @@ class depgraph: enforce correct merge order.""" fakedb = self.mydbapi[myroot] new_pkgs = [] + unresolveable = False for cpv in blocked_pkgs: myslot = vardb.aux_get(cpv, ["SLOT"])[0] myslot_atom = "%s:%s" % (portage.dep_getkey(cpv), myslot) - new_pkgs.append( - (myslot_atom, fakedb.match(myslot_atom)[0])) + mymatches = fakedb.match(myslot_atom) + if mymatches: + new_pkgs.append((myslot_atom, mymatches[0])) + else: + """There's an installed package that's blocked and + there's no upgrade found to invalidate it, so leave + this blocker in the digraph.""" + unresolveable = True + break + if unresolveable: + continue + for parent in self.digraph.parent_nodes(blocker): ptype, proot, pcpv, pstatus = parent.split() pdbapi = self.trees[proot][self.pkg_tree_map[ptype]].dbapi