diff options
-rw-r--r-- | pym/portage.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/portage.py b/pym/portage.py index 42008e857..0b8623796 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -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] |