aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-02-11 16:09:22 -0800
committerZac Medico <zmedico@gentoo.org>2011-02-11 16:09:22 -0800
commit5b16e0d800f34dc90cdd8c505172ad16b97f0af4 (patch)
tree0131bf6b28aa77d47632ebacf025876ff460416c /pym/portage/dep
parentdepgraph: avoid reinstall of identical binpkg (diff)
downloadportage-5b16e0d800f34dc90cdd8c505172ad16b97f0af4.tar.gz
portage-5b16e0d800f34dc90cdd8c505172ad16b97f0af4.tar.bz2
portage-5b16e0d800f34dc90cdd8c505172ad16b97f0af4.zip
depgraph: fix distorted display of virtuals
As mentioned in bug #353933, comment #4, special new-style virtual atoms generated/distorted by _expand_new_virtuals() can prevent extract_affecting_use() from working properly. This is fixed by saving the original atoms so that the depgraph can map them back into place at the appropriate step in dependency evaluation.
Diffstat (limited to 'pym/portage/dep')
-rw-r--r--pym/portage/dep/dep_check.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/pym/portage/dep/dep_check.py b/pym/portage/dep/dep_check.py
index 6d2d99d35..ed85be618 100644
--- a/pym/portage/dep/dep_check.py
+++ b/pym/portage/dep/dep_check.py
@@ -135,6 +135,12 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
pkg_use_enabled(parent))
else:
virt_atom = Atom(virt_atom)
+
+ # Allow the depgraph to map this atom back to the
+ # original, in order to avoid distortion in places
+ # like display or conflict resolution code.
+ virt_atom.__dict__['_orig_atom'] = x
+
# According to GLEP 37, RDEPEND is the only dependency
# type that is valid for new-style virtuals. Repoman
# should enforce this.