summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-01-08 13:15:11 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-01-08 22:34:36 +0000
commit3c3766927212853dfd195185caaa0fc951f049c8 (patch)
tree67ad0fcb09294cda67f039999716df91cc9e697e
parented9fa17467ad8f41c654187eb840d4b4e15d262d (diff)
downloadast2050-yocto-poky-3c3766927212853dfd195185caaa0fc951f049c8.zip
ast2050-yocto-poky-3c3766927212853dfd195185caaa0fc951f049c8.tar.gz
bitbake: toaster: write pre-read conf file for build variables
We change the setting of variables from directly injection into the set-up cooker to writing a conf file that is pre-read on bitbake server startup. This is needed because the injection can only happen after the variable set is parsed, and the variables already inferred, so setting up variables happens too late. [YOCTO #7045] (Bitbake rev: 854f680b5b9d2d0fa796af84cb1218545fbfc55a) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xbitbake/bin/toaster6
-rw-r--r--bitbake/lib/toaster/bldcontrol/bbcontroller.py5
-rw-r--r--bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py5
-rw-r--r--bitbake/lib/toaster/orm/models.py1
4 files changed, 12 insertions, 5 deletions
diff --git a/bitbake/bin/toaster b/bitbake/bin/toaster
index 7511012..6969bf7 100755
--- a/bitbake/bin/toaster
+++ b/bitbake/bin/toaster
@@ -251,7 +251,11 @@ case $CMD in
return 4
fi
unset BBSERVER
- bitbake --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0
+ PREREAD=""
+ if [ -e conf/toaster-pre.conf ]; then
+ PREREAD="--read conf/toaster-pre.conf"
+ fi
+ bitbake $PREREAD --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0
if [ $? -ne 0 ]; then
start_success=0
echo "Bitbake server start failed"
diff --git a/bitbake/lib/toaster/bldcontrol/bbcontroller.py b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
index 7c27fe1..102606e 100644
--- a/bitbake/lib/toaster/bldcontrol/bbcontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
@@ -135,6 +135,11 @@ class BuildEnvironmentController(object):
bblayerconffile.write("# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
bblayerconffile.close()
+ def writePreConfFile(self, variable_list):
+ prefilepath = os.path.join(self.be.builddir, "conf/toaster-pre.conf")
+ with open(prefilepath, "w") as prefile:
+ for i in variable_list:
+ prefile.write("%s=\"%s\"\n" % (i.name, i.value))
def startBBServer(self, brbe):
diff --git a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
index 56c989c..bdce6ee 100644
--- a/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
+++ b/bitbake/lib/toaster/bldcontrol/management/commands/runbuilds.py
@@ -53,14 +53,11 @@ class Command(NoArgsCommand):
# set up the buid environment with the needed layers
bec.setLayers(br.brbitbake_set.all(), br.brlayer_set.all())
+ bec.writePreConfFile(br.brvariable_set.all())
# get the bb server running with the build req id and build env id
bbctrl = bec.getBBController("%d:%d" % (br.pk, bec.be.pk))
- # set the build configuration
- for variable in br.brvariable_set.all():
- bbctrl.setVariable(variable.name, variable.value)
-
# trigger the build command
task = reduce(lambda x, y: x if len(y)== 0 else y, map(lambda y: y.task, br.brtarget_set.all()))
if len(task) == 0:
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 46b704c..6fbbeed 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -529,6 +529,7 @@ class Recipe_Dependency(models.Model):
class Machine(models.Model):
+ search_allowed_fields = ["name", "description"]
layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this machine
up_id = models.IntegerField(null = True, default = None) # id of entry in the source
up_date = models.DateTimeField(null = True, default = None)
OpenPOWER on IntegriCloud