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. (Bitbake rev: 54c7206165c0e7cfe5f7b243c80461baf5e7dfb1) Signed-off-by: Joshua Lock <josh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
72e0b43e01
commit
e51d542e78
|
@ -197,6 +197,9 @@ Default BBFILES are the .bb files in the current directory.""")
|
||||||
handler = bb.event.LogHandler()
|
handler = bb.event.LogHandler()
|
||||||
logger.addHandler(handler)
|
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
|
# Clear away any spurious environment variables. But don't wipe the
|
||||||
# environment totally. This is necessary to ensure the correct operation
|
# environment totally. This is necessary to ensure the correct operation
|
||||||
# of the UIs (e.g. for DISPLAY, etc.)
|
# of the UIs (e.g. for DISPLAY, etc.)
|
||||||
|
@ -207,7 +210,7 @@ Default BBFILES are the .bb files in the current directory.""")
|
||||||
server.initServer()
|
server.initServer()
|
||||||
idle = server.getServerIdleCB()
|
idle = server.getServerIdleCB()
|
||||||
|
|
||||||
cooker = bb.cooker.BBCooker(configuration, idle)
|
cooker = bb.cooker.BBCooker(configuration, idle, initialenv)
|
||||||
cooker.parseCommandLine()
|
cooker.parseCommandLine()
|
||||||
|
|
||||||
server.addcooker(cooker)
|
server.addcooker(cooker)
|
||||||
|
|
|
@ -78,7 +78,7 @@ class BBCooker:
|
||||||
Manages one bitbake build run
|
Manages one bitbake build run
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, configuration, server_registration_cb):
|
def __init__(self, configuration, server_registration_cb, savedenv={}):
|
||||||
self.status = None
|
self.status = None
|
||||||
self.appendlist = {}
|
self.appendlist = {}
|
||||||
self.skiplist = {}
|
self.skiplist = {}
|
||||||
|
@ -87,6 +87,14 @@ class BBCooker:
|
||||||
|
|
||||||
self.configuration = configuration
|
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 = []
|
self.caches_array = []
|
||||||
# Currently, only Image Creator hob ui needs extra cache.
|
# Currently, only Image Creator hob ui needs extra cache.
|
||||||
# So, we save Extra Cache class name and container file
|
# So, we save Extra Cache class name and container file
|
||||||
|
|
Loading…
Reference in New Issue