diff options
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 5a4321f068..e2255e7b7d 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -1072,6 +1072,7 @@ class RunQueueExecute: | |||
| 1072 | # a fork() or exec*() activates PSEUDO... | 1072 | # a fork() or exec*() activates PSEUDO... |
| 1073 | 1073 | ||
| 1074 | envbackup = {} | 1074 | envbackup = {} |
| 1075 | fakeenv = {} | ||
| 1075 | umask = None | 1076 | umask = None |
| 1076 | 1077 | ||
| 1077 | taskdep = self.rqdata.dataCache.task_deps[fn] | 1078 | taskdep = self.rqdata.dataCache.task_deps[fn] |
| @@ -1087,6 +1088,7 @@ class RunQueueExecute: | |||
| 1087 | for key, value in (var.split('=') for var in envvars): | 1088 | for key, value in (var.split('=') for var in envvars): |
| 1088 | envbackup[key] = os.environ.get(key) | 1089 | envbackup[key] = os.environ.get(key) |
| 1089 | os.environ[key] = value | 1090 | os.environ[key] = value |
| 1091 | fakeenv[key] = value | ||
| 1090 | 1092 | ||
| 1091 | fakedirs = (self.rqdata.dataCache.fakerootdirs[fn] or "").split() | 1093 | fakedirs = (self.rqdata.dataCache.fakerootdirs[fn] or "").split() |
| 1092 | for p in fakedirs: | 1094 | for p in fakedirs: |
| @@ -1136,7 +1138,14 @@ class RunQueueExecute: | |||
| 1136 | for h in self.rqdata.hash_deps: | 1138 | for h in self.rqdata.hash_deps: |
| 1137 | the_data.setVar("BBHASHDEPS_%s" % h, self.rqdata.hash_deps[h]) | 1139 | the_data.setVar("BBHASHDEPS_%s" % h, self.rqdata.hash_deps[h]) |
| 1138 | 1140 | ||
| 1139 | os.environ.update(bb.data.exported_vars(the_data)) | 1141 | # exported_vars() returns a generator which *cannot* be passed to os.environ.update() |
| 1142 | # successfully. We also need to unset anything from the environment which shouldn't be there | ||
| 1143 | exports = bb.data.exported_vars(the_data) | ||
| 1144 | bb.utils.empty_environment() | ||
| 1145 | for e, v in exports: | ||
| 1146 | os.environ[e] = v | ||
| 1147 | for e in fakeenv: | ||
| 1148 | os.environ[e] = fakeenv[e] | ||
| 1140 | 1149 | ||
| 1141 | if quieterrors: | 1150 | if quieterrors: |
| 1142 | the_data.setVarFlag(taskname, "quieterrors", "1") | 1151 | the_data.setVarFlag(taskname, "quieterrors", "1") |
