summaryrefslogtreecommitdiffstats
path: root/bin/ebuild.sh
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-12-16 10:01:10 +0000
committerZac Medico <zmedico@gentoo.org>2009-12-16 10:01:10 +0000
commitdeae2c69ad3f32c1d359ad348c84cdda2da77d64 (patch)
tree8acc22e1e69d4bbc3a582db15fb1830532d1f48e /bin/ebuild.sh
parent091bc9ad011550aacc466cdccf32fd6d0ba8e835 (diff)
downloadportage-deae2c69ad3f32c1d359ad348c84cdda2da77d64.tar.gz
portage-deae2c69ad3f32c1d359ad348c84cdda2da77d64.tar.bz2
portage-deae2c69ad3f32c1d359ad348c84cdda2da77d64.zip
Bug #296870 - Allow locale related LANG and LC_* variables to persist between
ebuild phases, and only filter them for binary and installed packages. svn path=/main/trunk/; revision=15096
Diffstat (limited to 'bin/ebuild.sh')
-rwxr-xr-xbin/ebuild.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index b3cb9ca9f..0485cd331 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -1632,6 +1632,12 @@ PORTAGE_MUTABLE_FILTERED_VARS="AA HOSTNAME"
# phase. However, if FEATURES exist inside environment.bz2 then they
# should be overridden by current settings.
#
+# --filter-locale causes locale related variables such as LANG and LC_*
+# variables to be filtered. These variables should persist between phases,
+# in case they are modified by the ebuild. However, the current user
+# settings should be used when loading the environment from a binary or
+# installed package.
+#
# ---allow-extra-vars causes some extra vars to be allowd through, such
# as ${PORTAGE_SAVED_READONLY_VARS} and ${PORTAGE_MUTABLE_FILTERED_VARS}.
#
@@ -1671,6 +1677,11 @@ filter_readonly_variables() {
if hasq --filter-features $* ; then
filtered_vars="${filtered_vars} FEATURES"
fi
+ if hasq --filter-locale $* ; then
+ filtered_vars+=" LANG LC_ALL LC_COLLATE
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
if ! hasq --allow-extra-vars $* ; then
filtered_vars="
${filtered_vars}
@@ -1696,7 +1707,7 @@ preprocess_ebuild_env() {
# environment may contain stale SANDBOX_{DENY,PREDICT,READ,WRITE}
# and FEATURES variables that should be filtered out. Between
# phases, these variables are normally preserved.
- filter_opts="--filter-sandbox --filter-features ${filter_opts}"
+ filter_opts+=" --filter-sandbox --filter-features --filter-locale"
fi
filter_readonly_variables ${filter_opts} < "${T}"/environment \
> "${T}"/environment.filtered || return $?