From ee416ad6f4b0209f7ad7d54467e0d7d5e097dd2a Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Sat, 16 Mar 2013 16:07:41 +0800 Subject: bitbake: utils.py: fix BB_ENV_WHITELIST The BB_ENV_WHITELIST doesn't work well and flushes BB_ENV_EXTRAWHITE, here is an example: $ export BB_ENV_WHITELIST $ export BB_NUMBER_THREADS=10 (or other value) Edit conf/local.conf, change "BB_NUMBER_THREADS =" to "BB_NUMBER_THREADS ?=" $ bitbake -e | grep '^BB_NUMBER_THREADS =' we will notice that BB_NUMBER_THREADS' value doesn't change, though BB_NUMBER_THREADS in both BB_ENV_WHITELIST and BB_ENV_EXTRAWHITE. This is because the "approved" inside the function approved_variables doesn't include BB_ENV_WHITELIST or BB_ENV_EXTRAWHITE when BB_ENV_WHITELIST is set (they are incuded by preserved_envvars()), so the BB_ENV_WHITELIST and BB_ENV_EXTRAWHITE will be removed from the env in the first call from bin/bitbake, and when it is called again by cooker.py, their value will be None, then the vars inside them will be removed from the env. Add BB_ENV_WHITELIST and BB_ENV_EXTRAWHITE to the "approved" would fix the problem. [YOCTO #4031] (Bitbake rev: d2b07e6516dd308d0045a7fdb72b588af9d676ad) Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- bitbake/lib/bb/utils.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index b2f81c8a92..d671f56b50 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -496,10 +496,13 @@ def approved_variables(): approved = [] if 'BB_ENV_WHITELIST' in os.environ: approved = os.environ['BB_ENV_WHITELIST'].split() + approved.extend(['BB_ENV_WHITELIST']) else: approved = preserved_envvars() if 'BB_ENV_EXTRAWHITE' in os.environ: approved.extend(os.environ['BB_ENV_EXTRAWHITE'].split()) + if 'BB_ENV_EXTRAWHITE' not in approved: + approved.extend(['BB_ENV_EXTRAWHITE']) return approved def clean_environment(): -- cgit v1.2.3-54-g00ecf