From 35d9537a14714a80c40eaeaed2a6f17b05897103 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 27 Aug 2009 09:08:45 +0000 Subject: Improve logic for bug #278729. svn path=/main/trunk/; revision=14166 --- pym/portage/__init__.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 9f251882b..4e6562bcc 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -7641,9 +7641,11 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): preferred_installed = [] preferred_in_graph = [] - preferred_unsatisfied_use = [] preferred_any_slot = [] preferred_non_installed = [] + unsat_use_in_graph = [] + unsat_use_installed = [] + unsat_use_non_installed = [] other = [] # Alias the trees we'll be checking availability against @@ -7735,7 +7737,10 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): else: preferred_non_installed.append(this_choice) else: - other.append(this_choice) + if all_installed_slots: + unsat_use_installed.append(this_choice) + else: + unsat_use_non_installed.append(this_choice) else: all_in_graph = True for slot_atom in versions: @@ -7781,18 +7786,21 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None): else: preferred_non_installed.append(this_choice) else: - if all_in_graph or all_installed: - preferred_unsatisfied_use.append(this_choice) + if all_in_graph: + unsat_use_in_graph.append(this_choice) + elif all_installed_slots: + unsat_use_installed.append(this_choice) else: - other.append(this_choice) + unsat_use_non_installed.append(this_choice) else: other.append(this_choice) - # preferred_unsatisfied_use must come after preferred_non_installed + # unsat_use_* must come after preferred_non_installed # for correct ordering in cases like || ( foo[a] foo[b] ). preferred = preferred_in_graph + preferred_installed + \ preferred_any_slot + preferred_non_installed + \ - preferred_unsatisfied_use + other + unsat_use_in_graph + unsat_use_installed + unsat_use_non_installed + \ + other for allow_masked in (False, True): for atoms, versions, all_available in preferred: -- cgit v1.2.3-1-g7c22