diff options
-rw-r--r-- | pym/portage/dep/dep_check.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pym/portage/dep/dep_check.py b/pym/portage/dep/dep_check.py index fca1594a7..cf62d337b 100644 --- a/pym/portage/dep/dep_check.py +++ b/pym/portage/dep/dep_check.py @@ -256,6 +256,7 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): unsat_use_in_graph = [] unsat_use_installed = [] unsat_use_non_installed = [] + other_installed = [] other = [] # unsat_use_* must come after preferred_non_installed @@ -268,6 +269,7 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): unsat_use_in_graph, unsat_use_installed, unsat_use_non_installed, + other_installed, other, ) @@ -424,7 +426,15 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): else: unsat_use_non_installed.append(this_choice) else: - other.append(this_choice) + all_installed = True + for atom in atoms: + if not atom.blocker and not vardb.match(atom): + all_installed = False + break + if all_installed: + other_installed.append(this_choice) + else: + other.append(this_choice) # Prefer choices which contain upgrades to higher slots. This helps # for deps such as || ( foo:1 foo:2 ), where we want to prefer the |