summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-11 13:57:49 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-11 13:57:49 -0700
commitd7bc4e67632e66d97d23eff3b6e1b75ce5e84e87 (patch)
tree2b66b196efb770856b7fe2f26760b44a39f9582d
parent601f819deef7da3af2101ce9e85cb8804355dffa (diff)
downloadportage-d7bc4e67632e66d97d23eff3b6e1b75ce5e84e87.tar.gz
portage-d7bc4e67632e66d97d23eff3b6e1b75ce5e84e87.tar.bz2
portage-d7bc4e67632e66d97d23eff3b6e1b75ce5e84e87.zip
Ensure correct IUSE in vdb for bug #386829.
-rw-r--r--pym/portage/package/ebuild/doebuild.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
index b2f8c7744..156da1aca 100644
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@ -1542,15 +1542,24 @@ def _post_src_install_chost_fix(settings):
"""
It's possible that the ebuild has changed the
CHOST variable, so revert it to the initial
- setting.
+ setting. Also, revert IUSE in case it's corrupted
+ due to local environment settings like in bug #386829.
"""
- if settings.get('CATEGORY') == 'virtual':
- return
- chost = settings.get('CHOST')
- if chost:
- write_atomic(os.path.join(settings['PORTAGE_BUILDDIR'],
- 'build-info', 'CHOST'), chost + '\n')
+ build_info_dir = os.path.join(settings['PORTAGE_BUILDDIR'], 'build-info')
+
+ for k in ('IUSE',):
+ v = settings.get(k)
+ if v is not None:
+ write_atomic(os.path.join(build_info_dir, k), v + '\n')
+
+ # The following variables are irrelevant for virtual packages.
+ if settings.get('CATEGORY') != 'virtual':
+
+ for k in ('CHOST',):
+ v = settings.get(k)
+ if v is not None:
+ write_atomic(os.path.join(build_info_dir, k), v + '\n')
_vdb_use_conditional_keys = ('DEPEND', 'LICENSE', 'PDEPEND',
'PROPERTIES', 'PROVIDE', 'RDEPEND', 'RESTRICT',)