Fix depgraph.validate_blockers() logic so that match_from_list works correctly.
authorZac Medico <zmedico@gentoo.org>
Thu, 21 Sep 2006 00:58:49 +0000 (00:58 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 21 Sep 2006 00:58:49 +0000 (00:58 -0000)
svn path=/main/trunk/; revision=4487

bin/emerge

index ce449c720f6f027d3e2d4e7a61a381877eb0b0dd..5cf60720b1a2a0ee830845b89f6b7d756333c4ac 100755 (executable)
@@ -1241,9 +1241,12 @@ class depgraph:
                for blocker in all_blockers:
                        mytype, myroot, mydep = blocker.split()
                        mykey = portage.dep_getkey(mydep)
-                       if mykey not in self.pkg_slots[myroot] or \
-                                       not portage.match_from_list(mydep, \
-                                       self.pkg_slots[myroot][mykey].values()):
+                       valid = False
+                       pkgs = self.pkg_slots[myroot].get(mykey, None)
+                       if pkgs and portage.match_from_list(mydep,
+                               [pkgs[myslot] for myslot in pkgs]):
+                               valid = True
+                       if not valid:
                                self.digraph.remove(blocker)
 
        def altlist(self, reversed=False):