summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-08-04 22:01:45 +0000
committerZac Medico <zmedico@gentoo.org>2007-08-04 22:01:45 +0000
commit5e78bf2dc90b4d04a1bbbd480a26b48fe6716d58 (patch)
tree86a435c23d77b6f1781dbf5024186404d2b37523
parent4bb3a36a4d4d6643fde0be113f6ac40447bde78a (diff)
downloadportage-5e78bf2dc90b4d04a1bbbd480a26b48fe6716d58.tar.gz
portage-5e78bf2dc90b4d04a1bbbd480a26b48fe6716d58.tar.bz2
portage-5e78bf2dc90b4d04a1bbbd480a26b48fe6716d58.zip
Make sure that portage always has all of it's RDEPENDs installed first.
svn path=/main/trunk/; revision=7572
-rw-r--r--pym/emerge/__init__.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 6c77bec6f..0a5a603d9 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -2194,12 +2194,14 @@ class depgraph(object):
circular_blocks = False
blocker_deps = None
asap_nodes = []
+ portage_node = None
if reversed:
get_nodes = mygraph.root_nodes
else:
get_nodes = mygraph.leaf_nodes
for cpv, node in self.pkg_node_map["/"].iteritems():
if "portage" == portage.catsplit(portage.dep_getkey(cpv))[-1]:
+ portage_node = node
asap_nodes.append(node)
break
ignore_priority_soft_range = [None]
@@ -2260,6 +2262,11 @@ class depgraph(object):
return True
if node not in mergeable_nodes:
return False
+ if node is portage_node and mygraph.child_nodes(node,
+ ignore_priority=DepPriority.MEDIUM_SOFT):
+ # Make sure that portage always has all of it's
+ # RDEPENDs installed first.
+ return False
selected_nodes.add(node)
for child in mygraph.child_nodes(node,
ignore_priority=ignore_priority):