Fix mishandling of masked atoms in || ( .. ) dependencies.
authorJason Stubbs <jstubbs@gentoo.org>
Sun, 25 Dec 2005 07:04:45 +0000 (07:04 -0000)
committerJason Stubbs <jstubbs@gentoo.org>
Sun, 25 Dec 2005 07:04:45 +0000 (07:04 -0000)
svn path=/main/trunk/; revision=2452

pym/portage.py

index 42008e8577013bea1a3c9f9a6253b9e212976ce8..0b8623796d53b66416030bf9ec70148a83ab2c75 100644 (file)
@@ -3159,7 +3159,7 @@ def dep_zapdeps(unreduced,reduced,myroot,use_binaries=0):
                        atoms = dep_zapdeps(dep, satisfied, myroot, use_binaries=use_binaries)
                else:
                        atoms = [dep]
-               missing_atoms = [atom for atom in atoms if not db[myroot]["vartree"].dbapi.match(dep_getkey(atom))]
+               missing_atoms = [atom for atom in atoms if not db[myroot]["vartree"].dbapi.match(atom)]
 
                if not missing_atoms:
                        if isinstance(dep, list):
@@ -3176,6 +3176,12 @@ def dep_zapdeps(unreduced,reduced,myroot,use_binaries=0):
                        if not missing_atoms:
                                target = (dep, satisfied)
 
+       if not target:
+               if isinstance(deps[0], list):
+                       return dep_zapdeps(deps[0], satisfieds[0], myroot, use_binaries=use_binaries)
+               else:
+                       return [deps[0]]
+
        if isinstance(target, tuple): # Nothing matching installed
                if isinstance(target[0], list): # ... and the first available was a sublist
                        return dep_zapdeps(target[0], target[1], myroot, use_binaries=use_binaries)
@@ -3196,7 +3202,7 @@ def dep_zapdeps(unreduced,reduced,myroot,use_binaries=0):
                available_pkgs[pkg] = atom
 
        if not available_pkgs:
-               return [unreduced[0]] # All masked
+               return [relevant_atoms[0]] # All masked
 
        target_pkg = best(available_pkgs.keys())
        suitable_atom = available_pkgs[target_pkg]