diff options
-rw-r--r-- | pym/_emerge/depgraph.py | 12 |
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, |