diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-08-10 20:27:45 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-08-10 20:27:45 -0700 |
commit | 72137f634878c4b0ef54287dd4a33fa2240a68f7 (patch) | |
tree | 9ee01243f618b311f96f78cff903ab86c609c064 | |
parent | 178ba38609cab75b22aa771e4155cc9011130a2e (diff) | |
download | portage-72137f634878c4b0ef54287dd4a33fa2240a68f7.tar.gz portage-72137f634878c4b0ef54287dd4a33fa2240a68f7.tar.bz2 portage-72137f634878c4b0ef54287dd4a33fa2240a68f7.zip |
resume_depgraph: prune all indirect unsatisfied
This should fix some cases of bug 378187.
-rw-r--r-- | pym/_emerge/depgraph.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 5b48aca41..8b6125d84 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 |