diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-05-05 19:58:09 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-05-05 19:58:09 +0000 |
commit | 3db510cd78b6259794e45695f108bec6a827b1b2 (patch) | |
tree | c7534dbcf3b629e0ec9de0beaba9b360cb5d1475 /bin | |
parent | 34e66d4f59824dcdc5d8bdb003af23ccc817983d (diff) | |
download | portage-3db510cd78b6259794e45695f108bec6a827b1b2.tar.gz portage-3db510cd78b6259794e45695f108bec6a827b1b2.tar.bz2 portage-3db510cd78b6259794e45695f108bec6a827b1b2.zip |
Use match_from_list in order to potentially avoid more blocks. (trunk r6481:6482)
svn path=/main/branches/2.1.2/; revision=6483
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/emerge | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/bin/emerge b/bin/emerge index 73dbe451f..2de42f5b8 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1869,7 +1869,6 @@ class depgraph: blocked_slots_final[cpv] = \ "%s:%s" % (portage.dep_getkey(cpv), final_db.aux_get(cpv, ["SLOT"])[0]) - blocked_slots_final_values = set(blocked_slots_final.itervalues()) for parent in list(self.blocker_parents[blocker]): ptype, proot, pcpv, pstatus = parent pdbapi = self.trees[proot][self.pkg_tree_map[ptype]].dbapi @@ -1892,15 +1891,16 @@ class depgraph: # merge of either package is triggered. continue if pstatus == "merge" and \ - slot_atom not in blocked_slots_final_values: - upgrade_matches = final_db.match(slot_atom) - if upgrade_matches: - # Apparently an upgrade may be able to invalidate - # this block. - upgrade_node = \ - self.pkg_node_map[proot][upgrade_matches[0]] - depends_on_order.add((upgrade_node, parent)) - continue + slot_atom in modified_slots[myroot]: + replacement = final_db.match(slot_atom) + if replacement: + if not portage.match_from_list(mydep, replacement): + # Apparently a replacement may be able to + # invalidate this block. + replacement_node = \ + self.pkg_node_map[proot][replacement[0]] + depends_on_order.add((replacement_node, parent)) + continue # None of the above blocker resolutions techniques apply, # so apparently this one is unresolvable. unresolved_blocks = True |