summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/Package.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/_emerge/Package.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/_emerge/Package.py')
-rw-r--r--pym/_emerge/Package.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index 0da374af4..ce51a8b06 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -64,6 +64,13 @@ class Package(Task):
self.slot_abi = self.cpv.slot_abi
# sync metadata with validated repo (may be UNKNOWN_REPO)
self.metadata['repository'] = self.cpv.repo
+
+ if eapi_attrs.iuse_effective:
+ implicit_match = self.root_config.settings._iuse_effective_match
+ else:
+ implicit_match = self.root_config.settings._iuse_implicit_match
+ self.iuse = self._iuse(self.metadata["IUSE"].split(), implicit_match)
+
if (self.iuse.enabled or self.iuse.disabled) and \
not eapi_attrs.iuse_defaults:
if not self.installed:
@@ -615,7 +622,7 @@ class _PackageMetadataWrapper(_PackageMetadataWrapperBase):
__slots__ = ("_pkg",)
_wrapped_keys = frozenset(
- ["COUNTER", "INHERITED", "IUSE", "USE", "_mtime_"])
+ ["COUNTER", "INHERITED", "USE", "_mtime_"])
_use_conditional_keys = frozenset(
['LICENSE', 'PROPERTIES', 'PROVIDE', 'RESTRICT',])
@@ -684,10 +691,6 @@ class _PackageMetadataWrapper(_PackageMetadataWrapperBase):
v = frozenset(v.split())
self._pkg.inherited = v
- def _set_iuse(self, k, v):
- self._pkg.iuse = self._pkg._iuse(
- v.split(), self._pkg.root_config.settings._iuse_implicit_match)
-
def _set_counter(self, k, v):
if isinstance(v, basestring):
try: