summaryrefslogtreecommitdiffstats
path: root/pym/portage/dep/dep_check.py
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:13:24 -0800
commit68bdfe7c15fcc6c268f66d1b89348cf7ed4f2eb5 (patch)
treec610a13f660af3d7bab3230c9665d6602833defd /pym/portage/dep/dep_check.py
parent1780dc89b5e3a5e51dc7cdc397385841aecef83f (diff)
downloadportage-68bdfe7c15fcc6c268f66d1b89348cf7ed4f2eb5.tar.gz
portage-68bdfe7c15fcc6c268f66d1b89348cf7ed4f2eb5.tar.bz2
portage-68bdfe7c15fcc6c268f66d1b89348cf7ed4f2eb5.zip
dep_zapdeps: add other_installed choice bin
Hopefully this will fix bug #350488.
Diffstat (limited to 'pym/portage/dep/dep_check.py')
-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