Make sure that portage always has all of it's RDEPENDs installed first. (trunk r7572)
authorZac Medico <zmedico@gentoo.org>
Sat, 4 Aug 2007 22:03:48 +0000 (22:03 -0000)
committerZac Medico <zmedico@gentoo.org>
Sat, 4 Aug 2007 22:03:48 +0000 (22:03 -0000)
svn path=/main/branches/2.1.2/; revision=7573

bin/emerge

index 1dcec33ca3602af0bfdaa800ed50fbe77cae7225..a0f40a7238a3cbd1561339243165cb8dd3df0ef3 100755 (executable)
@@ -2246,12 +2246,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]
@@ -2312,6 +2314,11 @@ class depgraph:
                                                        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):