diff options
Diffstat (limited to 'bitbake')
-rwxr-xr-x | bitbake/bin/bitbake | 5 | ||||
-rw-r--r-- | bitbake/lib/bb/cooker.py | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 8d6fef7b8b..5398cf122a 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake | |||
@@ -197,6 +197,9 @@ Default BBFILES are the .bb files in the current directory.""") | |||
197 | handler = bb.event.LogHandler() | 197 | handler = bb.event.LogHandler() |
198 | logger.addHandler(handler) | 198 | logger.addHandler(handler) |
199 | 199 | ||
200 | # Before we start modifying the environment we should take a pristine | ||
201 | # copy for possible later use | ||
202 | initialenv = os.environ.copy() | ||
200 | # Clear away any spurious environment variables. But don't wipe the | 203 | # Clear away any spurious environment variables. But don't wipe the |
201 | # environment totally. This is necessary to ensure the correct operation | 204 | # environment totally. This is necessary to ensure the correct operation |
202 | # of the UIs (e.g. for DISPLAY, etc.) | 205 | # of the UIs (e.g. for DISPLAY, etc.) |
@@ -207,7 +210,7 @@ Default BBFILES are the .bb files in the current directory.""") | |||
207 | server.initServer() | 210 | server.initServer() |
208 | idle = server.getServerIdleCB() | 211 | idle = server.getServerIdleCB() |
209 | 212 | ||
210 | cooker = bb.cooker.BBCooker(configuration, idle) | 213 | cooker = bb.cooker.BBCooker(configuration, idle, initialenv) |
211 | cooker.parseCommandLine() | 214 | cooker.parseCommandLine() |
212 | 215 | ||
213 | server.addcooker(cooker) | 216 | server.addcooker(cooker) |
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index b0ddb2e112..044ceb179e 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -78,7 +78,7 @@ class BBCooker: | |||
78 | Manages one bitbake build run | 78 | Manages one bitbake build run |
79 | """ | 79 | """ |
80 | 80 | ||
81 | def __init__(self, configuration, server_registration_cb): | 81 | def __init__(self, configuration, server_registration_cb, savedenv={}): |
82 | self.status = None | 82 | self.status = None |
83 | self.appendlist = {} | 83 | self.appendlist = {} |
84 | self.skiplist = {} | 84 | self.skiplist = {} |
@@ -87,6 +87,14 @@ class BBCooker: | |||
87 | 87 | ||
88 | self.configuration = configuration | 88 | self.configuration = configuration |
89 | 89 | ||
90 | # Keep a datastore of the initial environment variables and their | ||
91 | # values from when BitBake was launched to enable child processes | ||
92 | # to use environment variables which have been cleaned from the | ||
93 | # BitBake processes env | ||
94 | self.savedenv = bb.data.init() | ||
95 | for k in savedenv: | ||
96 | self.savedenv.setVar(k, savedenv[k]) | ||
97 | |||
90 | self.caches_array = [] | 98 | self.caches_array = [] |
91 | # Currently, only Image Creator hob ui needs extra cache. | 99 | # Currently, only Image Creator hob ui needs extra cache. |
92 | # So, we save Extra Cache class name and container file | 100 | # So, we save Extra Cache class name and container file |