summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/bitbake10
-rw-r--r--lib/bb/utils.py10
2 files changed, 12 insertions, 8 deletions
diff --git a/bin/bitbake b/bin/bitbake
index 89289050d..40b50e168 100755
--- a/bin/bitbake
+++ b/bin/bitbake
@@ -229,10 +229,8 @@ Default BBFILES are the .bb files in the current directory.""")
# Before we start modifying the environment we should take a pristine
# copy for possible later use
initialenv = os.environ.copy()
- # Clear away any spurious environment variables. But don't wipe the
- # environment totally. This is necessary to ensure the correct operation
- # of the UIs (e.g. for DISPLAY, etc.)
- bb.utils.clean_environment()
+ # Clear away any spurious environment variables while we stoke up the cooker
+ cleanedvars = bb.utils.clean_environment()
server = server.BitBakeServer()
if configuration.bind:
@@ -258,6 +256,10 @@ Default BBFILES are the .bb files in the current directory.""")
# Setup a connection to the server (cooker)
server_connection = server.establishConnection()
+ # Restore the environment in case the UI needs it
+ for k in cleanedvars:
+ os.environ[k] = cleanedvars[k]
+
try:
return server.launchUI(ui_main, server_connection.connection, server_connection.events)
finally:
diff --git a/lib/bb/utils.py b/lib/bb/utils.py
index 484fb2dc7..b1a0f25e7 100644
--- a/lib/bb/utils.py
+++ b/lib/bb/utils.py
@@ -474,17 +474,17 @@ def filter_environment(good_vars):
are not known and may influence the build in a negative way.
"""
- removed_vars = []
+ removed_vars = {}
for key in os.environ.keys():
if key in good_vars:
continue
- removed_vars.append(key)
+ removed_vars[key] = os.environ[key]
os.unsetenv(key)
del os.environ[key]
if len(removed_vars):
- logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars))
+ logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars.keys()))
return removed_vars
@@ -509,7 +509,9 @@ def clean_environment():
"""
if 'BB_PRESERVE_ENV' not in os.environ:
good_vars = approved_variables()
- filter_environment(good_vars)
+ return filter_environment(good_vars)
+
+ return {}
def empty_environment():
"""