diff options
-rw-r--r-- | bin/isolated-functions.sh | 3 | ||||
-rw-r--r-- | pym/portage.py | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index f6ca22654..dfe4cfba7 100644 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -409,6 +409,9 @@ save_ebuild_env() { unset ECHANGELOG_USER GPG_AGENT_INFO \ SSH_AGENT_PID SSH_AUTH_SOCK STY WINDOW XAUTHORITY + # CCACHE and DISTCC config + unset ${!CCACHE_*} ${!DISTCC_*} + # There's no need to bloat environment.bz2 with internally defined # functions and variables, so filter them out if possible. diff --git a/pym/portage.py b/pym/portage.py index 7bb53cc56..015dad08f 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1025,6 +1025,8 @@ class config: _environ_whitelist = frozenset(_environ_whitelist) + _environ_whitelist_re = re.compile(r'^(CCACHE_|DISTCC_).*') + # Filter selected variables in the config.environ() method so that # they don't needlessly propagate down into the ebuild environment. _environ_filter = [] @@ -2551,7 +2553,8 @@ class config: (x, myvalue), noiselevel=-1) continue if filter_calling_env and \ - x not in environ_whitelist: + x not in environ_whitelist and \ + not self._environ_whitelist_re.match(x): if myvalue == env_d.get(x) or \ myvalue == os.environ.get(x): continue |