From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Joshua Lock <josh@linux.intel.com>
Cc: bitbake-devel@lists.openembedded.org
Subject: Re: [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started
Date: Fri, 22 Jul 2011 18:02:32 +0100 [thread overview]
Message-ID: <1311354152.2344.148.camel@rex> (raw)
In-Reply-To: <e4f33dab9ad77edd3ae123ea2dc6d2f70a5be037.1311351396.git.josh@linux.intel.com>
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
next prev parent reply other threads:[~2011-07-22 17:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
-- strict thread matches above, loose matches on Subject: below --
2011-07-22 17:20 [PATCH 0/1] Store a data object containing the initial environment v2 Joshua Lock
2011-07-22 17:21 ` [PATCH 1/1] bitbake|cooker: save a copy of the environment when BitBake is started Joshua Lock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1311354152.2344.148.camel@rex \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
--cc=josh@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.