* [PATCH 0/1] Store a data object containing the initial environment
@ 2011-07-22 16:27 Joshua Lock
2011-07-22 16:27 ` [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started Joshua Lock
0 siblings, 1 reply; 3+ messages in thread
From: Joshua Lock @ 2011-07-22 16:27 UTC (permalink / raw)
To: bitbake-devel
As discussed, take a copy of the environment in the bitbake entry point and
pass it to the cooker for saving in a data store.
Tested with bitbake and bitbake-layers.
The following changes since commit abc67ed6921c98ed581f101ec1acc589fd9ce7e9:
bitbake/utils: Add contains helper function from lib.oe.utils (2011-07-22 12:11:01 +0100)
are available in the git repository at:
git://github.com/incandescant/bitbake initialenv
https://github.com/incandescant/bitbake/tree/initialenv
Joshua Lock (1):
bitbake|cooker: save a copy of the environment when BitBake is
started
bin/bitbake | 5 ++++-
lib/bb/cooker.py | 11 ++++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
--
1.7.6
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started
2011-07-22 16:27 [PATCH 0/1] Store a data object containing the initial environment Joshua Lock
@ 2011-07-22 16:27 ` Joshua Lock
2011-07-22 17:02 ` Richard Purdie
0 siblings, 1 reply; 3+ messages in thread
From: Joshua Lock @ 2011-07-22 16:27 UTC (permalink / raw)
To: bitbake-devel
Create a data store in the cooker containing the values of the environment
from when BitBake is launched 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@linux.intel.com>
---
bin/bitbake | 5 ++++-
lib/bb/cooker.py | 11 ++++++++++-
2 files changed, 14 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..079b6d3 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,15 @@ class BBCooker:
self.configuration = configuration
+ # Keep a datastore of the initial environment variables and their
+ # values from when BitBake was launched to enable child processes
+ # to use environment variables which have been cleaned from the
+ # BitBake processes env
+ if savedenv:
+ self.savedenv = bb.data.init()
+ for k in savedenv:
+ self.savedenv.setVar(k, savedenv[k])
+
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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started
2011-07-22 16:27 ` [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started Joshua Lock
@ 2011-07-22 17:02 ` Richard Purdie
0 siblings, 0 replies; 3+ messages in thread
From: Richard Purdie @ 2011-07-22 17:02 UTC (permalink / raw)
To: Joshua Lock; +Cc: bitbake-devel
On Fri, 2011-07-22 at 09:27 -0700, Joshua Lock wrote:
> Create a data store in the cooker containing the values of the environment
> from when BitBake is launched 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@linux.intel.com>
> ---
> bin/bitbake | 5 ++++-
> lib/bb/cooker.py | 11 ++++++++++-
> 2 files changed, 14 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..079b6d3 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):
def __init__(self, configuration, server_registration_cb, savedenv={}):
> self.status = None
> self.appendlist = {}
> self.skiplist = {}
> @@ -87,6 +87,15 @@ class BBCooker:
>
> self.configuration = configuration
>
> + # Keep a datastore of the initial environment variables and their
> + # values from when BitBake was launched to enable child processes
> + # to use environment variables which have been cleaned from the
> + # BitBake processes env
> + if savedenv:
> + self.savedenv = bb.data.init()
> + for k in savedenv:
> + self.savedenv.setVar(k, savedenv[k])
> +
Then you can drop the if and we'd just create an empty dictionary which
is likely going to lead to saner code in future...
Cheers,
Richard
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-07-22 17:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-22 16:27 [PATCH 0/1] Store a data object containing the initial environment Joshua Lock
2011-07-22 16:27 ` [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started Joshua Lock
2011-07-22 17:02 ` Richard Purdie
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.