diff options
| -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 |
