# 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:
# 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:
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
"""
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():
"""