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 | |
parent | 9294b951744b5fc64dea7f10760bee0b1d8cd6f0 (diff) | |
download | 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')
-rwxr-xr-x | bitbake/bin/bitbake | 12 | ||||
-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 |
4 files changed, 28 insertions, 11 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index dc35152d57..9a9b6d3bc6 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake | |||
@@ -113,15 +113,9 @@ Default BBFILES are the .bb files in the current directory.""" ) | |||
113 | 113 | ||
114 | cooker = bb.cooker.BBCooker(configuration) | 114 | cooker = bb.cooker.BBCooker(configuration) |
115 | 115 | ||
116 | # Optionally clean up the environment | 116 | # Clear away any spurious environment variables. But don't wipe the |
117 | if 'BB_PRESERVE_ENV' not in os.environ: | 117 | # environment totally. |
118 | if 'BB_ENV_WHITELIST' in os.environ: | 118 | bb.utils.clean_environment() |
119 | good_vars = os.environ['BB_ENV_WHITELIST'].split() | ||
120 | else: | ||
121 | good_vars = bb.utils.preserved_envvars_list() | ||
122 | if 'BB_ENV_EXTRAWHITE' in os.environ: | ||
123 | good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) | ||
124 | bb.utils.filter_environment(good_vars) | ||
125 | 119 | ||
126 | cooker.parseConfiguration() | 120 | cooker.parseConfiguration() |
127 | 121 | ||
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 50624d8d33..7477ee6c6f 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
@@ -596,6 +596,9 @@ class BBCooker: | |||
596 | build. | 596 | build. |
597 | """ | 597 | """ |
598 | 598 | ||
599 | # Wipe the OS environment | ||
600 | bb.utils.empty_environment() | ||
601 | |||
599 | if self.configuration.show_environment: | 602 | if self.configuration.show_environment: |
600 | self.showEnvironment(self.configuration.buildfile, self.configuration.pkgs_to_build) | 603 | self.showEnvironment(self.configuration.buildfile, self.configuration.pkgs_to_build) |
601 | sys.exit( 0 ) | 604 | sys.exit( 0 ) |
diff --git a/bitbake/lib/bb/data.py b/bitbake/lib/bb/data.py index 82eef44989..19e67dbc37 100644 --- a/bitbake/lib/bb/data.py +++ b/bitbake/lib/bb/data.py | |||
@@ -331,8 +331,6 @@ def inheritFromOS(d): | |||
331 | setVar(s, os.environ[s], d) | 331 | setVar(s, os.environ[s], d) |
332 | except TypeError: | 332 | except TypeError: |
333 | pass | 333 | pass |
334 | os.unsetenv(s) | ||
335 | del os.environ[s] | ||
336 | 334 | ||
337 | def emit_var(var, o=sys.__stdout__, d = init(), all=False): | 335 | def emit_var(var, o=sys.__stdout__, d = init(), all=False): |
338 | """Emit a variable to be sourced by a shell.""" | 336 | """Emit a variable to be sourced by a shell.""" |
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 18fc9f7252..0f402f6279 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -354,6 +354,28 @@ def filter_environment(good_vars): | |||
354 | 354 | ||
355 | return removed_vars | 355 | return removed_vars |
356 | 356 | ||
357 | def clean_environment(): | ||
358 | """ | ||
359 | Clean up any spurious environment variables. This will remove any | ||
360 | variables the user hasn't chose to preserve. | ||
361 | """ | ||
362 | if 'BB_PRESERVE_ENV' not in os.environ: | ||
363 | if 'BB_ENV_WHITELIST' in os.environ: | ||
364 | good_vars = os.environ['BB_ENV_WHITELIST'].split() | ||
365 | else: | ||
366 | good_vars = preserved_envvars_list() | ||
367 | if 'BB_ENV_EXTRAWHITE' in os.environ: | ||
368 | good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) | ||
369 | filter_environment(good_vars) | ||
370 | |||
371 | def empty_environment(): | ||
372 | """ | ||
373 | Remove all variables from the environment. | ||
374 | """ | ||
375 | for s in os.environ.keys(): | ||
376 | os.unsetenv(s) | ||
377 | del os.environ[s] | ||
378 | |||
357 | def prunedir(topdir): | 379 | def prunedir(topdir): |
358 | # Delete everything reachable from the directory named in 'topdir'. | 380 | # Delete everything reachable from the directory named in 'topdir'. |
359 | # CAUTION: This is dangerous! | 381 | # CAUTION: This is dangerous! |