summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/depgraph.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 6c38806fa..54e412a50 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -892,10 +892,11 @@ class depgraph(object):
self._add_parent_atom(pkg, parent_atom)
self._process_slot_conflicts()
- if pkg > existing_node:
- to_be_masked = pkg
- else:
- to_be_masked = existing_node
+ # NOTE: We always mask existing_node since
+ # _select_package tries to avoid slot conflicts when
+ # possible and therefore a conflict typically means
+ # that existing_node was a poor choice.
+ to_be_masked = existing_node
parent_atoms = \
self._dynamic_config._parent_atoms.get(to_be_masked, set())
@@ -904,7 +905,7 @@ class depgraph(object):
if conflict_atoms:
parent_atoms = conflict_atoms
- if pkg.cpv == existing_node.cpv:
+ if pkg >= existing_node:
# We only care about the parent atoms
# when they trigger a downgrade.
parent_atoms = set()