There is no technical requirement that virtual/* packages will reliably contain no executable code. Therefore, stop crippling the metadata stored in vdb for them. --- bin/phase-functions.sh | 24 ++++++++++-------------- pym/portage/package/ebuild/doebuild.py | 11 ++++------- 2 files changed, 14 insertions(+), 21 deletions(-)
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh index 0ceddb451..6ae61b2f0 100644 --- a/bin/phase-functions.sh +++ b/bin/phase-functions.sh @@ -662,23 +662,19 @@ __dyn_install() { local f x IFS=$' \t\n\r' for f in CATEGORY DEFINED_PHASES FEATURES INHERITED IUSE \ - PF PKGUSE SLOT KEYWORDS HOMEPAGE DESCRIPTION ; do + PF PKGUSE SLOT KEYWORDS HOMEPAGE DESCRIPTION \ + ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX \ + CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE \ + LDFLAGS LIBCFLAGS LIBCXXFLAGS QA_CONFIGURE_OPTIONS \ + QA_DESKTOP_FILE QA_PREBUILT PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do + x=$(echo -n ${!f}) [[ -n $x ]] && echo "$x" > $f done - if [[ $CATEGORY != virtual ]] ; then - for f in ASFLAGS CBUILD CC CFLAGS CHOST CTARGET CXX \ - CXXFLAGS EXTRA_ECONF EXTRA_EINSTALL EXTRA_MAKE \ - LDFLAGS LIBCFLAGS LIBCXXFLAGS QA_CONFIGURE_OPTIONS \ - QA_DESKTOP_FILE QA_PREBUILT PROVIDES_EXCLUDE REQUIRES_EXCLUDE ; do - x=$(echo -n ${!f}) - [[ -n $x ]] && echo "$x" > $f - done - # whitespace preserved - for f in QA_AM_MAINTAINER_MODE ; do - [[ -n ${!f} ]] && echo "${!f}" > $f - done - fi + # whitespace preserved + for f in QA_AM_MAINTAINER_MODE ; do + [[ -n ${!f} ]] && echo "${!f}" > $f + done echo "${USE}" > USE echo "${EAPI:-0}" > EAPI diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py index 8cec8e4da..8436c0b10 100644 --- a/pym/portage/package/ebuild/doebuild.py +++ b/pym/portage/package/ebuild/doebuild.py @@ -1930,13 +1930,10 @@ def _post_src_install_write_metadata(settings): 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') + for k in ('CHOST',): + v = settings.get(k) + if v is not None: + write_atomic(os.path.join(build_info_dir, k), v + '\n') with io.open(_unicode_encode(os.path.join(build_info_dir, 'BUILD_TIME'), encoding=_encodings['fs'], errors='strict'), -- 2.16.2