summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-11 20:29:47 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-11 20:29:47 +0000
commitd51605865cd9f2b4fa30a3cc34633be85aee5e6b (patch)
treebd1b99341ad1dba5a75a3090336bb4ecb4357aa9 /pym/portage.py
parent0fef5ac4a6d62a2bd55e6370c7520c174bdfca34 (diff)
downloadportage-d51605865cd9f2b4fa30a3cc34633be85aee5e6b.tar.gz
portage-d51605865cd9f2b4fa30a3cc34633be85aee5e6b.tar.bz2
portage-d51605865cd9f2b4fa30a3cc34633be85aee5e6b.zip
When dep_check() expands new-style virtuals, use USE flags from aux_get
calls to evaluate any conditionals that the depstrings might contain. This works properly for ebuilds now that aux_get() is backed by Package instances containing the correct USE. (trunk r9838:9840) svn path=/main/branches/2.1.2/; revision=9841
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/pym/portage.py b/pym/portage.py
index aae53d20d..2a427dfd4 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -5361,12 +5361,21 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
else:
a = ['||']
for y in pkgs:
- depstring = " ".join(y[2].aux_get(y[0], dep_keys))
+ cpv, pv_split, db = y
+ depstring = " ".join(db.aux_get(cpv, dep_keys))
+ pkg_kwargs = kwargs.copy()
+ if isinstance(db, portdbapi):
+ # for repoman
+ pass
+ else:
+ # for emerge
+ use_split = db.aux_get(cpv, ["USE"])[0].split()
+ pkg_kwargs["myuse"] = use_split
if edebug:
print "Virtual Parent: ", y[0]
print "Virtual Depstring:", depstring
mycheck = dep_check(depstring, mydbapi, mysettings, myroot=myroot,
- trees=trees, **kwargs)
+ trees=trees, **pkg_kwargs)
if not mycheck[0]:
raise portage_exception.ParseError(
"%s: %s '%s'" % (y[0], mycheck[1], depstring))