diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-10-11 13:57:49 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-10-11 13:57:49 -0700 |
commit | d7bc4e67632e66d97d23eff3b6e1b75ce5e84e87 (patch) | |
tree | 2b66b196efb770856b7fe2f26760b44a39f9582d | |
parent | 601f819deef7da3af2101ce9e85cb8804355dffa (diff) | |
download | portage-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.py | 23 |
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',) |