Fix some cases in dep_zapdeps() where blocker atoms are inappropriately tested
authorZac Medico <zmedico@gentoo.org>
Sat, 22 Nov 2008 01:43:38 +0000 (01:43 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 22 Nov 2008 01:43:38 +0000 (01:43 -0000)
for availablity. Thanks to Jorge Manuel B. S. Vicetto <jmbsvicetto@g.o> for
reporting. (trunk r12024)

svn path=/main/branches/2.1.6/; revision=12025

pym/portage/__init__.py

index b6f5cf8beef52209447a6c7ec0008d2242dde153..f3a0b14139844bfc8f752c7a46b0f97157631149 100644 (file)
@@ -6372,6 +6372,8 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                all_available = True
                versions = {}
                for atom in atoms:
+                       if atom[:1] == "!":
+                               continue
                        avail_pkg = mydbapi.match(atom)
                        if avail_pkg:
                                avail_pkg = avail_pkg[-1] # highest (ascending order)
@@ -6389,7 +6391,8 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                        # If any version of a package is installed then we assume that it
                        # is preferred over other possible packages choices.
                        all_installed = True
-                       for atom in set([dep_getkey(atom) for atom in atoms]):
+                       for atom in set([dep_getkey(atom) for atom in atoms \
+                               if atom[:1] != "!"]):
                                # New-style virtuals have zero cost to install.
                                if not vardb.match(atom) and not atom.startswith("virtual/"):
                                        all_installed = False