summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbitbake/bin/bitbake12
-rw-r--r--bitbake/lib/bb/cooker.py3
-rw-r--r--bitbake/lib/bb/data.py2
-rw-r--r--bitbake/lib/bb/utils.py22
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
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/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
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 variables 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!