diff options
author | Joshua Lock <josh@linux.intel.com> | 2011-08-12 17:58:11 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-15 09:49:37 +0100 |
commit | 61d83c6d6b23ea0fa3f99dfb53bf47c727c5a1c6 (patch) | |
tree | cbddb0ea6bd9505fc99eb8500b27980d65b9bd59 /bitbake/lib/bb/data.py | |
parent | a6c48298b17e6a5844b3638b422fe226e3b67b89 (diff) | |
download | poky-61d83c6d6b23ea0fa3f99dfb53bf47c727c5a1c6.tar.gz |
Ensure only the filtered environment variables are inherited from the OS
The recent change which modified inheritFromOS to use the intial
environment, rather than the current environment, introduced a bug such
that variables which had been cleaned from the environment where still set
in the data store.
This patch changes things such that a list of approved environment
variables is saved after the environment is cleaned and only the variables
in this list are inherited in inheritFromOS.
CC: James Limbouris <james.limbouris@gmail.com>
CC: Chris Larson <clarson@kergoth.com>
(Bitbake rev: cb6c07054e8baf94614713ec257c643b22266d75)
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/data.py')
-rw-r--r-- | bitbake/lib/bb/data.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index 65144bfe52..ac0d8809cc 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
@@ -159,16 +159,17 @@ def expandKeys(alterdata, readdata = None): | |||
159 | ekey = todolist[key] | 159 | ekey = todolist[key] |
160 | renameVar(key, ekey, alterdata) | 160 | renameVar(key, ekey, alterdata) |
161 | 161 | ||
162 | def inheritFromOS(d, savedenv): | 162 | def inheritFromOS(d, savedenv, permitted): |
163 | """Inherit variables from the initial environment.""" | 163 | """Inherit variables from the initial environment.""" |
164 | exportlist = bb.utils.preserved_envvars_exported() | 164 | exportlist = bb.utils.preserved_envvars_exported() |
165 | for s in savedenv.keys(): | 165 | for s in savedenv.keys(): |
166 | try: | 166 | if s in permitted: |
167 | setVar(s, getVar(s, savedenv, True), d) | 167 | try: |
168 | if s in exportlist: | 168 | setVar(s, getVar(s, savedenv, True), d) |
169 | setVarFlag(s, "export", True, d) | 169 | if s in exportlist: |
170 | except TypeError: | 170 | setVarFlag(s, "export", True, d) |
171 | pass | 171 | except TypeError: |
172 | pass | ||
172 | 173 | ||
173 | def emit_var(var, o=sys.__stdout__, d = init(), all=False): | 174 | def emit_var(var, o=sys.__stdout__, d = init(), all=False): |
174 | """Emit a variable to be sourced by a shell.""" | 175 | """Emit a variable to be sourced by a shell.""" |