summaryrefslogtreecommitdiffstats
path: root/bin/ebuild.sh
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-12-13 10:30:38 +0000
committerZac Medico <zmedico@gentoo.org>2007-12-13 10:30:38 +0000
commitb157c80015e9748e86e6324ce875e69dd21b3392 (patch)
tree23998584b90591457cd69f4cb6cd5171324f9d5c /bin/ebuild.sh
parent14b227f12b0552f5b96a2cdbb814dec30d576be5 (diff)
downloadportage-b157c80015e9748e86e6324ce875e69dd21b3392.tar.gz
portage-b157c80015e9748e86e6324ce875e69dd21b3392.tar.bz2
portage-b157c80015e9748e86e6324ce875e69dd21b3392.zip
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. svn path=/main/trunk/; revision=8909
Diffstat (limited to 'bin/ebuild.sh')
-rwxr-xr-xbin/ebuild.sh17
1 files changed, 14 insertions, 3 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 $?