summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/dep/dep_check.py12
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