[bitbake-devel] [RFC PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started

Joshua Lock josh at linux.intel.com
Thu Jul 21 22:42:37 UTC 2011


Keep a saved copy of the environment from when BitBake is launched in the
cooker such that child processes can replicate (and/or use values from) the
host environment, rather than the cleaned up environment that the main
BitBake process uses.

Signed-off-by: Joshua Lock <josh at linux.intel.com>
---
 bin/bitbake      |    5 ++++-
 lib/bb/cooker.py |    7 ++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/bin/bitbake b/bin/bitbake
index 206d97b..a9dd67e 100755
--- a/bin/bitbake
+++ b/bin/bitbake
@@ -197,6 +197,9 @@ Default BBFILES are the .bb files in the current directory.""")
     handler = bb.event.LogHandler()
     logger.addHandler(handler)
 
+    # 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.)
@@ -207,7 +210,7 @@ Default BBFILES are the .bb files in the current directory.""")
     server.initServer()
     idle = server.getServerIdleCB()
 
-    cooker = bb.cooker.BBCooker(configuration, idle)
+    cooker = bb.cooker.BBCooker(configuration, idle, initialenv)
     cooker.parseCommandLine()
 
     server.addcooker(cooker)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 0326b8c..30a1039 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -78,7 +78,7 @@ class BBCooker:
     Manages one bitbake build run
     """
 
-    def __init__(self, configuration, server_registration_cb):
+    def __init__(self, configuration, server_registration_cb, savedenv=None):
         self.status = None
         self.appendlist = {}
         self.skiplist = {}
@@ -87,6 +87,11 @@ class BBCooker:
 
         self.configuration = configuration
 
+        # A copy of the mapping representing the environment when BitBake was
+        # launched is saved to enable child processes to use environment
+        # variables which have been cleaned from the BitBake processes env
+        self.savedenv = savedenv
+
         self.caches_array = []
         # Currently, only Image Creator hob ui needs extra cache.
         # So, we save Extra Cache class name and container file
-- 
1.7.6





More information about the bitbake-devel mailing list