summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-01-03 17:13:24 -0800
committerZac Medico <zmedico@gentoo.org>2011-01-03 17:20:31 -0800
commitf1d70ed933e99b406f1154f22b904cad7be84d33 (patch)
treebe2db08c9094ed61397bb1a3f717023527dabf20
parent0255d884ce98f7b85c00289285dd3bbeabd4890e (diff)
downloadportage-f1d70ed933e99b406f1154f22b904cad7be84d33.tar.gz
portage-f1d70ed933e99b406f1154f22b904cad7be84d33.tar.bz2
portage-f1d70ed933e99b406f1154f22b904cad7be84d33.zip
dep_zapdeps: add other_installed choice bin
Hopefully this will fix bug #350488.
-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