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

svn path=/main/trunk/; revision=12024

pym/portage/__init__.py

index 76ff91233a8fb69821366378c3855e15e8a64623..efdb6fcd5597f0f556e593e64a06e371d7b2bb59 100644 (file)
@@ -6385,6 +6385,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)
@@ -6402,7 +6404,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