diff options
author | Robert Bradford <rob@openedhand.com> | 2008-10-17 09:46:35 +0000 |
---|---|---|
committer | Robert Bradford <rob@openedhand.com> | 2008-10-17 09:46:35 +0000 |
commit | 696d4f01d235b7309fd1b88bd12949927f19b5d6 (patch) | |
tree | 90c0a158e4c0f41ce8ef68989218df7a73f6d282 /bitbake/lib | |
parent | 9294b951744b5fc64dea7f10760bee0b1d8cd6f0 (diff) | |
download | ast2050-yocto-poky-696d4f01d235b7309fd1b88bd12949927f19b5d6.zip ast2050-yocto-poky-696d4f01d235b7309fd1b88bd12949927f19b5d6.tar.gz |
bitbake: Refactor the environment variable handling
Refactor the environment variable handling so that it more closes matches the
changes that have been made in bitbake-dev.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5527 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/bb/cooker.py | 3 | ||||
-rw-r--r-- | bitbake/lib/bb/data.py | 2 | ||||
-rw-r--r-- | bitbake/lib/bb/utils.py | 22 |
3 files changed, 25 insertions, 2 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 50624d8..7477ee6 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -596,6 +596,9 @@ class BBCooker: build. """ + # Wipe the OS environment + bb.utils.empty_environment() + if self.configuration.show_environment: self.showEnvironment(self.configuration.buildfile, self.configuration.pkgs_to_build) sys.exit( 0 ) diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index 82eef44..19e67db 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py @@ -331,8 +331,6 @@ def inheritFromOS(d): setVar(s, os.environ[s], d) except TypeError: pass - os.unsetenv(s) - del os.environ[s] def emit_var(var, o=sys.__stdout__, d = init(), all=False): """Emit a variable to be sourced by a shell.""" diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 18fc9f7..0f402f6 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -354,6 +354,28 @@ def filter_environment(good_vars): return removed_vars +def clean_environment(): + """ + Clean up any spurious environment variables. This will remove any + variables the user hasn't chose to preserve. + """ + if 'BB_PRESERVE_ENV' not in os.environ: + if 'BB_ENV_WHITELIST' in os.environ: + good_vars = os.environ['BB_ENV_WHITELIST'].split() + else: + good_vars = preserved_envvars_list() + if 'BB_ENV_EXTRAWHITE' in os.environ: + good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) + filter_environment(good_vars) + +def empty_environment(): + """ + Remove all variables from the environment. + """ + for s in os.environ.keys(): + os.unsetenv(s) + del os.environ[s] + def prunedir(topdir): # Delete everything reachable from the directory named in 'topdir'. # CAUTION: This is dangerous! |