* [PATCH 0/4] Add reparseFile command and adopt the saved environment
@ 2011-07-25 18:56 Joshua Lock
2011-07-25 18:56 ` [PATCH 1/4] data|cooker: use saved environment variables when calling inheritFromOS Joshua Lock
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Joshua Lock @ 2011-07-25 18:56 UTC (permalink / raw)
To: bitbake-devel
This series adapts the cooker to use the saved OS environment instead of the
current os.environ and adds the reparseFiles command which triggered the
changes.
The following changes since commit f0b5d16426b983a67c51c47f3542162108bd4156:
Update version to 1.13.3 (2011-07-25 13:50:38 +0100)
are available in the git repository at:
git://github.com/incandescant/bitbake hob
https://github.com/incandescant/bitbake/tree/hob
Joshua Lock (4):
data|cooker: use saved environment variables when calling
inheritFromOS
bitbake-layers: adapt to cooker change for saved environment
command|cooker: Add reparseFiles command
cooker: only append files once
bin/bitbake-layers | 7 ++++---
lib/bb/command.py | 8 ++++++++
lib/bb/cooker.py | 51 +++++++++++++++++++++++++++++++--------------------
lib/bb/data.py | 8 ++++----
4 files changed, 47 insertions(+), 27 deletions(-)
--
1.7.6
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] data|cooker: use saved environment variables when calling inheritFromOS
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
@ 2011-07-25 18:56 ` Joshua Lock
2011-07-25 18:56 ` [PATCH 2/4] bitbake-layers: adapt to cooker change for saved environment Joshua Lock
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Joshua Lock @ 2011-07-25 18:56 UTC (permalink / raw)
To: bitbake-devel
Now that we have a pristine copy of the variables available at launch time
we can use them when looking to inherit the OS's environment.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
lib/bb/cooker.py | 2 +-
lib/bb/data.py | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index d8535a7..1b5101d 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -132,7 +132,7 @@ class BBCooker:
self.configuration.data = bb.data.init()
- bb.data.inheritFromOS(self.configuration.data)
+ bb.data.inheritFromOS(self.configuration.data, self.savedenv)
try:
self.parseConfigurationFiles(self.configuration.prefile,
diff --git a/lib/bb/data.py b/lib/bb/data.py
index 2269f9d..65144bf 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -159,12 +159,12 @@ def expandKeys(alterdata, readdata = None):
ekey = todolist[key]
renameVar(key, ekey, alterdata)
-def inheritFromOS(d):
- """Inherit variables from the environment."""
+def inheritFromOS(d, savedenv):
+ """Inherit variables from the initial environment."""
exportlist = bb.utils.preserved_envvars_exported()
- for s in os.environ.keys():
+ for s in savedenv.keys():
try:
- setVar(s, os.environ[s], d)
+ setVar(s, getVar(s, savedenv, True), d)
if s in exportlist:
setVarFlag(s, "export", True, d)
except TypeError:
--
1.7.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] bitbake-layers: adapt to cooker change for saved environment
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
2011-07-25 18:56 ` [PATCH 1/4] data|cooker: use saved environment variables when calling inheritFromOS Joshua Lock
@ 2011-07-25 18:56 ` Joshua Lock
2011-07-25 18:56 ` [PATCH 3/4] command|cooker: Add reparseFiles command Joshua Lock
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Joshua Lock @ 2011-07-25 18:56 UTC (permalink / raw)
To: bitbake-devel
The Cooker requires a copy of the environment mapping, modify
bitbake-layers to take one and pass it to the cooker.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
bin/bitbake-layers | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/bin/bitbake-layers b/bin/bitbake-layers
index 3d563b5..d9f95d1 100755
--- a/bin/bitbake-layers
+++ b/bin/bitbake-layers
@@ -8,7 +8,7 @@
import cmd
import logging
-import os.path
+import os
import sys
bindir = os.path.dirname(__file__)
@@ -41,11 +41,12 @@ def main(args):
class Commands(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
-
+ initialenv = os.environ.copy()
self.returncode = 0
self.config = Config(parse_only=True)
self.cooker = bb.cooker.BBCooker(self.config,
- self.register_idle_function)
+ self.register_idle_function,
+ initialenv)
self.config_data = self.cooker.configuration.data
bb.providers.logger.setLevel(logging.ERROR)
self.cooker_data = None
--
1.7.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] command|cooker: Add reparseFiles command
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
2011-07-25 18:56 ` [PATCH 1/4] data|cooker: use saved environment variables when calling inheritFromOS Joshua Lock
2011-07-25 18:56 ` [PATCH 2/4] bitbake-layers: adapt to cooker change for saved environment Joshua Lock
@ 2011-07-25 18:56 ` Joshua Lock
2011-07-25 18:56 ` [PATCH 4/4] cooker: only append files once Joshua Lock
2011-07-26 12:50 ` [PATCH 0/4] Add reparseFile command and adopt the saved environment Richard Purdie
4 siblings, 0 replies; 6+ messages in thread
From: Joshua Lock @ 2011-07-25 18:56 UTC (permalink / raw)
To: bitbake-devel
Add command reparseFiles to reparse bb files in a running cooker instance.
Fixes [YOCTO #1249]
Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
lib/bb/command.py | 8 ++++++++
lib/bb/cooker.py | 48 +++++++++++++++++++++++++++++-------------------
2 files changed, 37 insertions(+), 19 deletions(-)
diff --git a/lib/bb/command.py b/lib/bb/command.py
index a902da2..893a6d9 100644
--- a/lib/bb/command.py
+++ b/lib/bb/command.py
@@ -311,6 +311,14 @@ class CommandsAsync:
command.finishAsyncCommand()
parseFiles.needcache = True
+ def reparseFiles(self, command, params):
+ """
+ Reparse .bb files
+ """
+ command.cooker.reparseFiles()
+ command.finishAsyncCommand()
+ reparseFiles.needcache = True
+
def compareRevisions(self, command, params):
"""
Parse the .bb files
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 1b5101d..94e8d09 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -130,21 +130,8 @@ class BBCooker:
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
- self.configuration.data = bb.data.init()
-
- bb.data.inheritFromOS(self.configuration.data, self.savedenv)
-
- try:
- self.parseConfigurationFiles(self.configuration.prefile,
- self.configuration.postfile)
- except SyntaxError:
- sys.exit(1)
- except Exception:
- logger.exception("Error parsing configuration files")
- sys.exit(1)
-
- if not self.configuration.cmd:
- self.configuration.cmd = bb.data.getVar("BB_DEFAULT_TASK", self.configuration.data, True) or "build"
+ self.configuration.data = None
+ self.loadConfigurationData()
bbpkgs = bb.data.getVar('BBPKGS', self.configuration.data, True)
if bbpkgs and len(self.configuration.pkgs_to_build) == 0:
@@ -171,6 +158,23 @@ class BBCooker:
self.parser = None
+ def loadConfigurationData(self):
+ self.configuration.data = bb.data.init()
+
+ bb.data.inheritFromOS(self.configuration.data, self.savedenv)
+
+ try:
+ self.parseConfigurationFiles(self.configuration.prefile,
+ self.configuration.postfile)
+ except SyntaxError:
+ sys.exit(1)
+ except Exception:
+ logger.exception("Error parsing configuration files")
+ sys.exit(1)
+
+ if not self.configuration.cmd:
+ self.configuration.cmd = bb.data.getVar("BB_DEFAULT_TASK", self.configuration.data, True) or "build"
+
def parseConfiguration(self):
@@ -563,7 +567,7 @@ class BBCooker:
bb.data.expandKeys(localdata)
# Handle PREFERRED_PROVIDERS
- for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, 1) or "").split():
+ for p in (bb.data.getVar('PREFERRED_PROVIDERS', localdata, True) or "").split():
try:
(providee, provider) = p.split(':')
except:
@@ -1058,8 +1062,8 @@ class BBCooker:
self.server_registration_cb(buildTargetsIdle, rq)
- def updateCache(self):
- if self.state == state.running:
+ def updateCache(self, force=False):
+ if self.state == state.running and not force:
return
if self.state in (state.shutdown, state.stop):
@@ -1069,6 +1073,8 @@ class BBCooker:
if self.state != state.parsing:
self.parseConfiguration ()
+ if self.status:
+ del self.status
self.status = bb.cache.CacheData(self.caches_array)
ignore = bb.data.getVar("ASSUME_PROVIDED", self.configuration.data, 1) or ""
@@ -1142,7 +1148,7 @@ class BBCooker:
collectlog.debug(1, "collecting .bb files")
- files = (data.getVar( "BBFILES", self.configuration.data, 1 ) or "").split()
+ files = (data.getVar( "BBFILES", self.configuration.data, True) or "").split()
data.setVar("BBFILES", " ".join(files), self.configuration.data)
# Sort files by priority
@@ -1240,6 +1246,10 @@ class BBCooker:
def stop(self):
self.state = state.stop
+ def reparseFiles(self):
+ self.loadConfigurationData()
+ self.updateCache(force=True)
+
def server_main(cooker, func, *args):
cooker.pre_serve()
--
1.7.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] cooker: only append files once
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
` (2 preceding siblings ...)
2011-07-25 18:56 ` [PATCH 3/4] command|cooker: Add reparseFiles command Joshua Lock
@ 2011-07-25 18:56 ` Joshua Lock
2011-07-26 12:50 ` [PATCH 0/4] Add reparseFile command and adopt the saved environment Richard Purdie
4 siblings, 0 replies; 6+ messages in thread
From: Joshua Lock @ 2011-07-25 18:56 UTC (permalink / raw)
To: bitbake-devel
A list can contain the same value twice, therefore only append to the
appendlist for a recipe if the append file is not already in the list.
Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
lib/bb/cooker.py | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 94e8d09..1f305d9 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -1205,7 +1205,8 @@ class BBCooker:
base = os.path.basename(f).replace('.bbappend', '.bb')
if not base in self.appendlist:
self.appendlist[base] = []
- self.appendlist[base].append(f)
+ if f not in self.appendlist[base]:
+ self.appendlist[base].append(f)
# Find overlayed recipes
# bbfiles will be in priority order which makes this easy
--
1.7.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 0/4] Add reparseFile command and adopt the saved environment
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
` (3 preceding siblings ...)
2011-07-25 18:56 ` [PATCH 4/4] cooker: only append files once Joshua Lock
@ 2011-07-26 12:50 ` Richard Purdie
4 siblings, 0 replies; 6+ messages in thread
From: Richard Purdie @ 2011-07-26 12:50 UTC (permalink / raw)
To: Joshua Lock; +Cc: bitbake-devel
On Mon, 2011-07-25 at 11:56 -0700, Joshua Lock wrote:
> This series adapts the cooker to use the saved OS environment instead of the
> current os.environ and adds the reparseFiles command which triggered the
> changes.
>
> The following changes since commit f0b5d16426b983a67c51c47f3542162108bd4156:
>
> Update version to 1.13.3 (2011-07-25 13:50:38 +0100)
>
> are available in the git repository at:
> git://github.com/incandescant/bitbake hob
> https://github.com/incandescant/bitbake/tree/hob
>
> Joshua Lock (4):
> data|cooker: use saved environment variables when calling
> inheritFromOS
> bitbake-layers: adapt to cooker change for saved environment
> command|cooker: Add reparseFiles command
> cooker: only append files once
Merged to master, thanks.
Richard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-07-26 12:55 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-25 18:56 [PATCH 0/4] Add reparseFile command and adopt the saved environment Joshua Lock
2011-07-25 18:56 ` [PATCH 1/4] data|cooker: use saved environment variables when calling inheritFromOS Joshua Lock
2011-07-25 18:56 ` [PATCH 2/4] bitbake-layers: adapt to cooker change for saved environment Joshua Lock
2011-07-25 18:56 ` [PATCH 3/4] command|cooker: Add reparseFiles command Joshua Lock
2011-07-25 18:56 ` [PATCH 4/4] cooker: only append files once Joshua Lock
2011-07-26 12:50 ` [PATCH 0/4] Add reparseFile command and adopt the saved environment 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.