From 110e8489747f33b7e776c29128b083f86ebb6bb8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Fri, 9 May 2008 02:30:04 +0000 Subject: Allow scheduled uninstalls to be selected the same way as other leaf nodes. (trunk r10258) svn path=/main/branches/2.1.2/; revision=10259 --- bin/emerge | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'bin') diff --git a/bin/emerge b/bin/emerge index f0d0a647c..009e1a95b 100755 --- a/bin/emerge +++ b/bin/emerge @@ -3769,7 +3769,8 @@ class depgraph(object): """ return [node for node in mygraph.leaf_nodes(**kwargs) \ if isinstance(node, Package) and \ - node.operation != "uninstall"] + (node.operation != "uninstall" or \ + node in scheduled_uninstalls)] # sys-apps/portage needs special treatment if ROOT="/" running_root = "/" @@ -3966,13 +3967,6 @@ class depgraph(object): selected_nodes = list(selected_nodes) selected_nodes.sort(cmp_circular_bias) - if not selected_nodes and scheduled_uninstalls: - selected_nodes = set() - for node in scheduled_uninstalls: - if not mygraph.child_nodes(node): - selected_nodes.add(node) - scheduled_uninstalls.difference_update(selected_nodes) - if not selected_nodes and not myblocker_uninstalls.is_empty(): # An Uninstall task needs to be executed in order to # avoid conflict if possible. @@ -4156,6 +4150,7 @@ class depgraph(object): "uninstall" == node.operation: have_uninstall_task = True uninst_task = node + scheduled_uninstalls.remove(uninst_task) else: vardb = self.trees[node.root]["vartree"].dbapi previous_cpv = vardb.match(node.slot_atom) -- cgit v1.2.3-1-g7c22