diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-11 20:29:47 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-11 20:29:47 +0000 |
commit | d51605865cd9f2b4fa30a3cc34633be85aee5e6b (patch) | |
tree | bd1b99341ad1dba5a75a3090336bb4ecb4357aa9 | |
parent | 0fef5ac4a6d62a2bd55e6370c7520c174bdfca34 (diff) | |
download | portage-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
-rw-r--r-- | pym/portage.py | 13 |
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)) |