aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/depgraph.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 6af7d5714..963bf25f4 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -7671,11 +7671,13 @@ class depgraph(object):
return True
if node not in mergeable_nodes:
return False
- if node == replacement_portage and \
- mygraph.child_nodes(node,
- ignore_priority=priority_range.ignore_medium_soft):
- # Make sure that portage always has all of it's
- # RDEPENDs installed first.
+ if node == replacement_portage and any(
+ getattr(rdep, 'operation', None) != 'uninstall'
+ for rdep in mygraph.child_nodes(node,
+ ignore_priority=priority_range.ignore_medium_soft)):
+ # Make sure that portage always has all of its
+ # RDEPENDs installed first, but ignore uninstalls
+ # (these occur when new portage blocks older repoman).
return False
selected_nodes.add(node)
for child in mygraph.child_nodes(node,