summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico2011-08-11 03:27:45 (GMT)
committerZac Medico2011-08-11 03:27:45 (GMT)
commit72137f634878c4b0ef54287dd4a33fa2240a68f7 (patch)
tree9ee01243f618b311f96f78cff903ab86c609c064
parent178ba38609cab75b22aa771e4155cc9011130a2e (diff)
resume_depgraph: prune all indirect unsatisfied
This should fix some cases of bug 378187.
-rw-r--r--pym/_emerge/depgraph.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5b48aca..8b6125d 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -6869,12 +6869,12 @@ def _resume_depgraph(settings, trees, mtimedb, myopts, myparams, spinner):
if not isinstance(parent_node, Package) \
or parent_node.operation not in ("merge", "nomerge"):
continue
- unsatisfied = \
- graph.child_nodes(parent_node,
- ignore_priority=DepPrioritySatisfiedRange.ignore_soft)
- if pkg in unsatisfied:
- unsatisfied_parents[parent_node] = parent_node
- unsatisfied_stack.append(parent_node)
+ # We need to traverse all priorities here, in order to
+ # ensure that a package with an unsatisfied depenedency
+ # won't get pulled in, even indirectly via a soft
+ # dependency.
+ unsatisfied_parents[parent_node] = parent_node
+ unsatisfied_stack.append(parent_node)
unsatisfied_tuples = frozenset(tuple(parent_node)
for parent_node in unsatisfied_parents