diff options
| author | Richard Purdie <richard@openedhand.com> | 2008-09-30 20:57:18 +0000 | 
|---|---|---|
| committer | Richard Purdie <richard@openedhand.com> | 2008-09-30 20:57:18 +0000 | 
| commit | 2e182847e4a780c58c5b8046eb98f7f6c8970ea1 (patch) | |
| tree | dc3ccf060b2b04c8af29c75607260052bc92673b /bitbake-dev/lib/bb/utils.py | |
| parent | 221ac2b25f544a500869667d8f95c6c12c80db1a (diff) | |
| download | openembedded-core-2e182847e4a780c58c5b8046eb98f7f6c8970ea1.tar.gz openembedded-core-2e182847e4a780c58c5b8046eb98f7f6c8970ea1.tar.bz2 openembedded-core-2e182847e4a780c58c5b8046eb98f7f6c8970ea1.zip | |
bitbake/bitbake-dev: Allow much better control of which variable influence bitbake from the environment
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5347 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake-dev/lib/bb/utils.py')
| -rw-r--r-- | bitbake-dev/lib/bb/utils.py | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/bitbake-dev/lib/bb/utils.py b/bitbake-dev/lib/bb/utils.py index 0a0c9ada34..9c9eb5d328 100644 --- a/bitbake-dev/lib/bb/utils.py +++ b/bitbake-dev/lib/bb/utils.py @@ -296,6 +296,60 @@ def sha256_file(filename):          s.update(line)      return s.hexdigest() +def preserved_envvars_list(): +    return [ +        'BBPATH', +        'BB_PRESERVE_ENV', +        'BB_ENV_WHITELIST', +        'BB_ENV_EXTRAWHITE', +        'COLORTERM', +        'DBUS_SESSION_BUS_ADDRESS', +        'DESKTOP_SESSION', +        'DESKTOP_STARTUP_ID', +        'DISPLAY', +        'GNOME_KEYRING_PID', +        'GNOME_KEYRING_SOCKET', +        'GPG_AGENT_INFO', +        'GTK_RC_FILES', +        'HOME', +        'LANG', +        'LOGNAME', +        'PATH', +        'PWD', +        'SESSION_MANAGER', +        'SHELL', +        'SSH_AUTH_SOCK', +        'TERM', +        'USER', +        'USERNAME', +        '_', +        'XAUTHORITY', +        'XDG_DATA_DIRS', +        'XDG_SESSION_COOKIE', +    ] + +def filter_environment(good_vars): +    """ +    Create a pristine environment for bitbake. This will remove variables that +    are not known and may influence the build in a negative way. +    """ + +    import bb + +    removed_vars = [] +    for key in os.environ.keys(): +        if key in good_vars: +            continue +         +        removed_vars.append(key) +        os.unsetenv(key) +        del os.environ[key] + +    if len(removed_vars): +        bb.debug(1, "Removed the following variables from the environment:", ",".join(removed_vars)) + +    return removed_vars +  def prunedir(topdir):      # Delete everything reachable from the directory named in 'topdir'.      # CAUTION:  This is dangerous! | 
