summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-11-15 21:21:02 +0000
committerZac Medico <zmedico@gentoo.org>2008-11-15 21:21:02 +0000
commitddf4474a32cf924681e69fbfdc263af493b9da9a (patch)
tree784f84bfd941e609b2e50a1efb4e444905ccfea8
parent9f47b473c185c6b4207db6dc8f20cc000af44887 (diff)
downloadportage-ddf4474a32cf924681e69fbfdc263af493b9da9a.tar.gz
portage-ddf4474a32cf924681e69fbfdc263af493b9da9a.tar.bz2
portage-ddf4474a32cf924681e69fbfdc263af493b9da9a.zip
Inside depgraph._add_pkg(), handle the case where 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. Thanks to Peter Volkov <pva@g.o> for reporting. (trunk r11954) svn path=/main/branches/2.1.6/; revision=11955
-rw-r--r--pym/_emerge/__init__.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index c1ee71ef0..5b672a853 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -4573,6 +4573,20 @@ class depgraph(object):
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}))
+ return 0
+
if pkg in self._slot_collision_nodes:
return 1
# A slot collision has occurred. Sometimes this coincides