From 3db510cd78b6259794e45695f108bec6a827b1b2 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 5 May 2007 19:58:09 +0000 Subject: Use match_from_list in order to potentially avoid more blocks. (trunk r6481:6482) svn path=/main/branches/2.1.2/; revision=6483 --- bin/emerge | 20 ++++++++++---------- 1 file 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 -- cgit v1.2.3-1-g7c22