diff options
| -rwxr-xr-x | bitbake-dev/bin/bitbake | 13 | ||||
| -rw-r--r-- | bitbake-dev/lib/bb/cooker.py | 4 | ||||
| -rw-r--r-- | bitbake-dev/lib/bb/data.py | 2 | ||||
| -rw-r--r-- | bitbake-dev/lib/bb/utils.py | 22 |
4 files changed, 30 insertions, 11 deletions
diff --git a/bitbake-dev/bin/bitbake b/bitbake-dev/bin/bitbake index 247b54fcd3..87284c08fe 100755 --- a/bitbake-dev/bin/bitbake +++ b/bitbake-dev/bin/bitbake | |||
| @@ -141,15 +141,10 @@ Default BBFILES are the .bb files in the current directory.""" ) | |||
| 141 | 141 | ||
| 142 | cooker = bb.cooker.BBCooker(configuration) | 142 | cooker = bb.cooker.BBCooker(configuration) |
| 143 | 143 | ||
| 144 | # Optionally clean up the environment | 144 | # Clear away any spurious environment variables. But don't wipe the |
| 145 | if 'BB_PRESERVE_ENV' not in os.environ: | 145 | # environment totally. This is necessary to ensure the correct operation |
| 146 | if 'BB_ENV_WHITELIST' in os.environ: | 146 | # of the UIs (e.g. for DISPLAY, etc.) |
| 147 | good_vars = os.environ['BB_ENV_WHITELIST'].split() | 147 | bb.utils.clean_environment() |
| 148 | else: | ||
| 149 | good_vars = bb.utils.preserved_envvars_list() | ||
| 150 | if 'BB_ENV_EXTRAWHITE' in os.environ: | ||
| 151 | good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) | ||
| 152 | bb.utils.filter_environment(good_vars) | ||
| 153 | 148 | ||
| 154 | cooker.parseConfiguration() | 149 | cooker.parseConfiguration() |
| 155 | host = cooker.server.host | 150 | host = cooker.server.host |
diff --git a/bitbake-dev/lib/bb/cooker.py b/bitbake-dev/lib/bb/cooker.py index 8feb228faf..6d04d38080 100644 --- a/bitbake-dev/lib/bb/cooker.py +++ b/bitbake-dev/lib/bb/cooker.py | |||
| @@ -907,6 +907,10 @@ class BBCooker: | |||
| 907 | 907 | ||
| 908 | def serve(self): | 908 | def serve(self): |
| 909 | 909 | ||
| 910 | # Empty the environment. The environment will be populated as | ||
| 911 | # necessary from the data store. | ||
| 912 | bb.utils.empty_environment() | ||
| 913 | |||
| 910 | if self.configuration.profile: | 914 | if self.configuration.profile: |
| 911 | try: | 915 | try: |
| 912 | import cProfile as profile | 916 | import cProfile as profile |
diff --git a/bitbake-dev/lib/bb/data.py b/bitbake-dev/lib/bb/data.py index 82eef44989..19e67dbc37 100644 --- a/bitbake-dev/lib/bb/data.py +++ b/bitbake-dev/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-dev/lib/bb/utils.py b/bitbake-dev/lib/bb/utils.py index 119f08582d..94bc62f7cf 100644 --- a/bitbake-dev/lib/bb/utils.py +++ b/bitbake-dev/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 variable 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! |
