From 2362cafc9d6fc66e9d5c2fa92e01c2373715b60e Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 13 Dec 2007 10:34:36 +0000 Subject: [PATCH] Allow FEATURES to persist between phases since the user might want to modify it via bashrc to enable things like splitdebug and installsources for specific packages. They should be able to modify it in pre_pkg_setup() and have it persist all the way through the install phase. However, if FEATURES exist inside environment.bz2 then they should be overridden by current settings. (trunk r8909) svn path=/main/branches/2.1.2/; revision=8910 --- bin/ebuild.sh | 17 ++++++++++++++--- bin/isolated-functions.sh | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/bin/ebuild.sh b/bin/ebuild.sh index 1823691e0..25638be66 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -1387,6 +1387,14 @@ PORTAGE_MUTABLE_FILTERED_VARS="AA HOSTNAME" # is only desired in certain cases, such as during preprocessing or when # saving environment.bz2 for a binary or installed package. # +# --filter-features causes the special FEATURES variable to be filtered. +# Generally, we want it to persist between phases since the user might +# want to modify it via bashrc to enable things like splitdebug and +# installsources for specific packages. They should be able to modify it +# in pre_pkg_setup() and have it persist all the way through the install +# phase. However, if FEATURES exist inside environment.bz2 then they +# should be overridden by current settings. +# # ---allow-extra-vars causes some extra vars to be allowd through, such # as ${PORTAGE_SAVED_READONLY_VARS} and ${PORTAGE_MUTABLE_FILTERED_VARS}. # @@ -1408,6 +1416,9 @@ filter_readonly_variables() { else filtered_vars="${filtered_vars} ${filtered_sandbox_vars}" fi + if hasq --filter-features $* ; then + filtered_vars="${filtered_vars} FEATURES" + fi if ! hasq --allow-extra-vars $* ; then filtered_vars=" ${filtered_vars} @@ -1443,9 +1454,9 @@ preprocess_ebuild_env() { if [ -f "${T}/environment.raw" ] ; then # This is a signal from the python side, indicating that the # environment may contain stale SANDBOX_{DENY,PREDICT,READ,WRITE} - # variables that should be filtered out. Between phases, these - # variables are normally preserved. - filter_opts="--filter-sandbox ${filter_opts}" + # and FEATURES variables that should be filtered out. Between + # phases, these variables are normally preserved. + filter_opts="--filter-sandbox --filter-features ${filter_opts}" fi filter_readonly_variables ${filter_opts} < "${T}"/environment \ > "${T}"/environment.filtered || return $? diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index dfe4cfba7..20bcccf9b 100644 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -435,7 +435,7 @@ save_ebuild_env() { unset BAD BRACKET BUILD_PREFIX COLS \ DISTCC_DIR DISTDIR DOC_SYMLINKS_DIR \ EBUILD_EXIT_STATUS_FILE EBUILD_MASTER_PID \ - ECLASSDIR ECLASS_DEPTH ENDCOL FAKEROOTKEY FEATURES \ + ECLASSDIR ECLASS_DEPTH ENDCOL FAKEROOTKEY \ GOOD HILITE HOME IMAGE \ LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \ NORMAL PATH PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \ -- 2.26.2