diff options
author | Joshua Lock <josh@linux.intel.com> | 2011-07-22 10:21:00 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-25 12:50:23 +0100 |
commit | 54c7206165c0e7cfe5f7b243c80461baf5e7dfb1 (patch) | |
tree | 4db01357db7a80ae848b0cb0ec008ba34a3ad0e7 | |
parent | 0cbf5dcaf9f67522bd58d868aa01f28e846dfc19 (diff) | |
download | bitbake-contrib-54c7206165c0e7cfe5f7b243c80461baf5e7dfb1.tar.gz |
bitbake|cooker: save a copy of the environment when BitBake is started
Create a data store in the cooker containing the values of the environment
from when BitBake is launched such that child processes can replicate
(and/or use values from) the host environment, rather than the cleaned up
environment that the main BitBake process uses.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-x | bin/bitbake | 5 | ||||
-rw-r--r-- | lib/bb/cooker.py | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/bin/bitbake b/bin/bitbake index 8d6fef7b8..5398cf122 100755 --- a/bin/bitbake +++ b/bin/bitbake @@ -197,6 +197,9 @@ Default BBFILES are the .bb files in the current directory.""") handler = bb.event.LogHandler() logger.addHandler(handler) + # Before we start modifying the environment we should take a pristine + # copy for possible later use + initialenv = os.environ.copy() # Clear away any spurious environment variables. But don't wipe the # environment totally. This is necessary to ensure the correct operation # of the UIs (e.g. for DISPLAY, etc.) @@ -207,7 +210,7 @@ Default BBFILES are the .bb files in the current directory.""") server.initServer() idle = server.getServerIdleCB() - cooker = bb.cooker.BBCooker(configuration, idle) + cooker = bb.cooker.BBCooker(configuration, idle, initialenv) cooker.parseCommandLine() server.addcooker(cooker) diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index 3a72880a4..d8535a7a4 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -78,7 +78,7 @@ class BBCooker: Manages one bitbake build run """ - def __init__(self, configuration, server_registration_cb): + def __init__(self, configuration, server_registration_cb, savedenv={}): self.status = None self.appendlist = {} self.skiplist = {} @@ -87,6 +87,14 @@ class BBCooker: self.configuration = configuration + # Keep a datastore of the initial environment variables and their + # values from when BitBake was launched to enable child processes + # to use environment variables which have been cleaned from the + # BitBake processes env + self.savedenv = bb.data.init() + for k in savedenv: + self.savedenv.setVar(k, savedenv[k]) + self.caches_array = [] # Currently, only Image Creator hob ui needs extra cache. # So, we save Extra Cache class name and container file |