From: Zac Medico Date: Tue, 4 Jan 2011 01:13:24 +0000 (-0800) Subject: dep_zapdeps: add other_installed choice bin X-Git-Tag: v2.2.0_alpha13~4 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=68bdfe7c15fcc6c268f66d1b89348cf7ed4f2eb5;p=portage.git dep_zapdeps: add other_installed choice bin Hopefully this will fix bug #350488. --- 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