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 | |
| parent | 9294b951744b5fc64dea7f10760bee0b1d8cd6f0 (diff) | |
| download | openembedded-core-696d4f01d235b7309fd1b88bd12949927f19b5d6.tar.gz openembedded-core-696d4f01d235b7309fd1b88bd12949927f19b5d6.tar.bz2 openembedded-core-696d4f01d235b7309fd1b88bd12949927f19b5d6.zip | |
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
| -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.""" )      cooker = bb.cooker.BBCooker(configuration) -    # Optionally clean up the environment -    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 = bb.utils.preserved_envvars_list() -        if 'BB_ENV_EXTRAWHITE' in os.environ: -            good_vars.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) -        bb.utils.filter_environment(good_vars) +    # Clear away any spurious environment variables. But don't wipe the +    # environment totally. +    bb.utils.clean_environment()      cooker.parseConfiguration() 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:          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 82eef44989..19e67dbc37 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 18fc9f7252..0f402f6279 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! | 
