diff options
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-01-31 09:14:01 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-02-03 09:52:19 +0000
commit5bdf7c980b509330a35fef1dcf28d0d359c7bd6e (patch)
parent1371bb4c43e43db3aa27c7716c14652358b28b85 (diff)
bitbake: tinfoil: clean environment when starting up cooker
During normal bitbake execution, the environment is cleaned of variables not on a whitelist while starting up cooker, and then restored afterwards. Prior to the tinfoil2 rework in master we were taking a number of shortcuts within tinfoil and one of those was not doing this environment cleaning. However, prior to OE-Core rev 3d39ca5c91dbb62fb43199f916bd390cd6212e3d we didn't have any code (as far as I'm aware) that was affected by this shortcut, hence why this wasn't an issue up to now. The result is the following error when attempting to run "devtool build" in the eSDK, as CCACHE_PATH is allowed through from the eSDK's environment setup script: ----------- snip ----------- ccache: error: Could not find compiler "gcc" in PATH ... subprocess.CalledProcessError: Command 'gcc --version' returned non-zero exit status 1 ----------- snip ----------- We can fix this by simply doing the environment filtering while we are starting up cooker, thus the environment when uninative.bbclass comes to do the gcc version check it is not affected by CCACHE_PATH or other variables in the external environment that should be filtered out. For clarity, this patch is only applicable to the bitbake 1.32 branch as used for the OE-Core morty branch - master uses the reworked tinfoil2 and doesn't need this fix. Fixes [YOCTO #10961]. (Bitbake rev: a240f5ff71092cb209c44a071cd6fa07756ccfa0) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
1 files changed, 3 insertions, 0 deletions
diff --git a/bitbake/lib/bb/tinfoil.py b/bitbake/lib/bb/tinfoil.py
index 8899e861c3..9fa5b5b3db 100644
--- a/bitbake/lib/bb/tinfoil.py
+++ b/bitbake/lib/bb/tinfoil.py
@@ -51,10 +51,13 @@ class Tinfoil:
features = []
if tracking:
+ cleanedvars = bb.utils.clean_environment()
self.cooker = BBCooker(self.config, features)
self.config_data = self.cooker.data
self.cooker_data = None
+ for k in cleanedvars:
+ os.environ[k] = cleanedvars[k]
def register_idle_function(self, function, data):