summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi/_expand_new_virt.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-08-29 00:38:12 -0700
committerZac Medico <zmedico@gentoo.org>2012-08-29 00:38:12 -0700
commitf76b983e95d022d6f377e3efd599dd8efbd30b3d (patch)
tree7095aee7f42d2f0011baf9a9ad046d35b42e70f8 /pym/portage/dbapi/_expand_new_virt.py
parent1db6048f29dad8da5c74da3143901edd006fc10a (diff)
downloadportage-f76b983e95d022d6f377e3efd599dd8efbd30b3d.tar.gz
portage-f76b983e95d022d6f377e3efd599dd8efbd30b3d.tar.bz2
portage-f76b983e95d022d6f377e3efd599dd8efbd30b3d.zip
EAPI 5: Profile IUSE injection
See bug #176467 and the PMS patch: http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commit;h=d9040ab3482af5f790368bac5d053bf1cd760ba8
Diffstat (limited to 'pym/portage/dbapi/_expand_new_virt.py')
-rw-r--r--pym/portage/dbapi/_expand_new_virt.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/portage/dbapi/_expand_new_virt.py b/pym/portage/dbapi/_expand_new_virt.py
index d379b4c1d..95b2c28cd 100644
--- a/pym/portage/dbapi/_expand_new_virt.py
+++ b/pym/portage/dbapi/_expand_new_virt.py
@@ -1,8 +1,9 @@
-# Copyright 2011 Gentoo Foundation
+# Copyright 2011-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import portage
from portage.dep import Atom, _get_useflag_re
+from portage.eapi import _get_eapi_attrs
def expand_new_virt(vardb, atom):
"""
@@ -44,6 +45,7 @@ def expand_new_virt(vardb, atom):
yield atom
continue
+ eapi_attrs = _get_eapi_attrs(eapi)
# Validate IUSE and IUSE, for early detection of vardb corruption.
useflag_re = _get_useflag_re(eapi)
valid_iuse = []
@@ -54,7 +56,11 @@ def expand_new_virt(vardb, atom):
valid_iuse.append(x)
valid_iuse = frozenset(valid_iuse)
- iuse_implicit_match = vardb.settings._iuse_implicit_match
+ if eapi_attrs.iuse_effective:
+ iuse_implicit_match = vardb.settings._iuse_effective_match
+ else:
+ iuse_implicit_match = vardb.settings._iuse_implicit_match
+
valid_use = []
for x in use.split():
if x in valid_iuse or iuse_implicit_match(x):