summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-12-10 01:04:26 +0000
committerZac Medico <zmedico@gentoo.org>2009-12-10 01:04:26 +0000
commit920e551da78dcd0099ab0432f4d4a4b20c7f5051 (patch)
tree3bf9d8f651b0608def23f33f9e5ef53e302ece0b
parentabd5377f55f1a3746e20087d9f10e88e2e522115 (diff)
downloadportage-920e551da78dcd0099ab0432f4d4a4b20c7f5051.tar.gz
portage-920e551da78dcd0099ab0432f4d4a4b20c7f5051.tar.bz2
portage-920e551da78dcd0099ab0432f4d4a4b20c7f5051.zip
Fix handling for TEMP, TMP, and TMPDIR variables:
* Add to whitelist so current values are always used. * Always filter them from the saved environment. * Always add thier values to SANDBOX_WRITE. (trunk r14973) svn path=/main/branches/2.1.7/; revision=15007
-rwxr-xr-xbin/ebuild.sh6
-rwxr-xr-xbin/isolated-functions.sh2
-rw-r--r--pym/portage/__init__.py5
3 files changed, 12 insertions, 1 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh
index d5d654b40..404269b38 100755
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@ -17,6 +17,12 @@ export SANDBOX_READ="${SANDBOX_READ:+${SANDBOX_READ}:}/dev/stdin"
# environment by modifying our PATH.
unset BASH_ENV
+# Avoid sandbox violations in temporary directories.
+for x in TEMP TMP TMPDIR ; do
+ [[ -n ${!x} ]] && export SANDBOX_WRITE="${SANDBOX_WRITE:+${SANDBOX_WRITE}:}${!x}"
+done
+unset x
+
# sandbox's bashrc sources /etc/profile which unsets ROOTPATH,
# so we have to back it up and restore it.
if [ -n "${PORTAGE_ROOTPATH}" ] ; then
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index a557d9fd9..4f1ad1c63 100755
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -564,7 +564,7 @@ save_ebuild_env() {
PROFILE_PATHS PWORKDIR QA_INTERCEPTORS \
RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL \
RC_INDENTATION READONLY_EBUILD_METADATA READONLY_PORTAGE_VARS \
- ROOT ROOTPATH RPMDIR STARTDIR TMP TMPDIR USE_EXPAND \
+ ROOT ROOTPATH RPMDIR STARTDIR TEMP TMP TMPDIR USE_EXPAND \
WARN XARGS _RC_GET_KV_CACHE
# user config variables
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index 333a24294..0690267fa 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -1432,6 +1432,11 @@ class config(object):
"TERM", "TERMCAP", "USER",
]
+ # tempdir settings
+ _environ_whitelist += [
+ "TMPDIR", "TEMP", "TMP",
+ ]
+
# other variables inherited from the calling environment
_environ_whitelist += [
"CVS_RSH", "ECHANGELOG_USER",