summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py10
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]