diff options
-rw-r--r-- | pym/emerge/__init__.py | 7 |
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): |