Make sure that portage always has all of it's RDEPENDs installed first. (branches...
authorZac Medico <zmedico@gentoo.org>
Wed, 15 Aug 2007 20:32:10 +0000 (20:32 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 15 Aug 2007 20:32:10 +0000 (20:32 -0000)
svn path=/main/branches/2.1.2.9/; revision=7614

bin/emerge

index e495ea4e1ecc0d5ac40709674f6271dc109a649f..0543338d2f2a091d6aec8380bef25f5c554fb71f 100755 (executable)
@@ -2017,12 +2017,14 @@ class depgraph:
                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]
@@ -2083,6 +2085,11 @@ class depgraph:
                                                        return True
                                                if node not in mergeable_nodes:
                                                        return False
+                                               if node == 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):