Index: pym/_emerge/__init__.py =================================================================== --- pym/_emerge/__init__.py (revision 11953) +++ pym/_emerge/__init__.py (revision 11960) @@ -4330,7 +4330,7 @@ self._show_merge_list() msg = [] - msg.append("\n!!! Multiple versions within a single " + \ + msg.append("\n!!! Multiple package instances within a single " + \ "package slot have been pulled\n") msg.append("!!! into the dependency graph, resulting" + \ " in a slot conflict:\n\n") @@ -4589,6 +4589,23 @@ priority=priority) return 1 else: + + if pkg.cpv == existing_node.cpv and \ + dep.atom is not None and \ + dep.atom.use: + # Multiple different instances of the same version + # (typically one installed and another not yet + # installed) have been pulled into the graph due + # to a USE dependency. The "slot collision" display + # is not helpful in a case like this, so display it + # as an unsatisfied dependency. + self._unsatisfied_deps_for_display.append( + ((dep.root, dep.atom), {"myparent":dep.parent})) + self._slot_collision_info.add((pkg.slot_atom, pkg.root)) + self._slot_collision_nodes.add(pkg) + self.digraph.addnode(pkg, myparent, priority=priority) + return 0 + if pkg in self._slot_collision_nodes: return 1 # A slot collision has occurred. Sometimes this coincides