diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-10-18 12:20:40 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-10-18 12:20:40 +0000 |
commit | ba0a1dc73af8a17118bab2d119bdf31fc7bf39d6 (patch) | |
tree | 730077ae6c7de38c8bbfa184f89e7def69f2db02 | |
parent | d43b47b4a891ef198c84d2fead4ceba18a01ecea (diff) | |
download | portage-ba0a1dc73af8a17118bab2d119bdf31fc7bf39d6.tar.gz portage-ba0a1dc73af8a17118bab2d119bdf31fc7bf39d6.tar.bz2 portage-ba0a1dc73af8a17118bab2d119bdf31fc7bf39d6.zip |
Handle unresolvable blockers properly for bug #151822.
svn path=/main/trunk/; revision=4753
-rwxr-xr-x | bin/emerge | 15 |
1 files changed, 13 insertions, 2 deletions
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 |