summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake-dev/bin/bitbake13
-rw-r--r--bitbake-dev/lib/bb/cooker.py4
-rw-r--r--bitbake-dev/lib/bb/data.py2
-rw-r--r--bitbake-dev/lib/bb/utils.py22
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
337def emit_var(var, o=sys.__stdout__, d = init(), all=False): 335def 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
357def 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
371def 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
357def prunedir(topdir): 379def 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!