summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-07-01 20:05:40 +0000
committerZac Medico <zmedico@gentoo.org>2007-07-01 20:05:40 +0000
commit28b66babaf51fcf4c6db0ef8d5633577e035cebe (patch)
tree22847a044c04b21d99c2d4708b85646699b8f944
parent0a838ddccdeed7c930cab0e6dc1df7b6417f0c67 (diff)
downloadportage-28b66babaf51fcf4c6db0ef8d5633577e035cebe.tar.gz
portage-28b66babaf51fcf4c6db0ef8d5633577e035cebe.tar.bz2
portage-28b66babaf51fcf4c6db0ef8d5633577e035cebe.zip
If necessary, resample the leaf nodes so that they include all nodes whose hard deps are satisfied.
svn path=/main/trunk/; revision=7116
-rw-r--r--pym/emerge/__init__.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 475105672..89e718ea7 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -2155,6 +2155,10 @@ class depgraph(object):
mergeable_nodes, selected_nodes, child):
return False
return True
+ # If necessary, resample the leaf nodes so that they
+ # include all nodes whose hard deps are satisfied.
+ if ignore_priority < DepPriority.MEDIUM:
+ nodes = get_nodes(ignore_priority=DepPriority.MEDIUM)
mergeable_nodes = set(nodes)
for ignore_priority in xrange(DepPriority.SOFT,
DepPriority.MEDIUM_SOFT + 1):
@@ -2182,6 +2186,8 @@ class depgraph(object):
for child in medium_soft:
if child in selected_nodes:
continue
+ if child in asap_nodes:
+ continue
# TODO: Try harder to make these nodes get
# merged absolutely as soon as possible.
asap_nodes.append(child)