From e53c7e66dbe4d4a4debb9db789636b71a463db60 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 5 May 2007 19:56:47 +0000 Subject: Use match_from_list in order to potentially avoid more blocks. svn path=/main/trunk/; revision=6482 --- pym/emerge/__init__.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'pym/emerge') diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 3ee134c5d..f8c899e68 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -1903,7 +1903,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 @@ -1926,15 +1925,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