summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
Diffstat (limited to 'pym')
-rw-r--r--pym/portage/__init__.py22
1 files 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: