summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-09 02:30:04 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-09 02:30:04 +0000
commit110e8489747f33b7e776c29128b083f86ebb6bb8 (patch)
treeff1b61abd67fb7ec8f8c84010fcde0db32f46e23 /bin
parentbf8f3ccb672582d7b0df993101744766e041b237 (diff)
downloadportage-110e8489747f33b7e776c29128b083f86ebb6bb8.tar.gz
portage-110e8489747f33b7e776c29128b083f86ebb6bb8.tar.bz2
portage-110e8489747f33b7e776c29128b083f86ebb6bb8.zip
Allow scheduled uninstalls to be selected the same way as other leaf nodes.
(trunk r10258) svn path=/main/branches/2.1.2/; revision=10259
Diffstat (limited to 'bin')
-rwxr-xr-xbin/emerge11
1 files changed, 3 insertions, 8 deletions
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)