summaryrefslogtreecommitdiffstats
path: root/bitbake
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 /bitbake
parented9fa17467ad8f41c654187eb840d4b4e15d262d (diff)
downloadpoky-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>
Diffstat (limited to 'bitbake')
-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 7511012552..6969bf7f82 100755
--- a/bitbake/bin/toaster
+++ b/bitbake/bin/toaster
@@ -251,7 +251,11 @@ case $CMD in
251 return 4 251 return 4
252 fi 252 fi
253 unset BBSERVER 253 unset BBSERVER
254 bitbake --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0 254 PREREAD=""
255 if [ -e conf/toaster-pre.conf ]; then
256 PREREAD="--read conf/toaster-pre.conf"
257 fi
258 bitbake $PREREAD --postread conf/toaster.conf --server-only -t xmlrpc -B 0.0.0.0:0
255 if [ $? -ne 0 ]; then 259 if [ $? -ne 0 ]; then
256 start_success=0 260 start_success=0
257 echo "Bitbake server start failed" 261 echo "Bitbake server start failed"
diff --git a/bitbake/lib/toaster/bldcontrol/bbcontroller.py b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
index 7c27fe110e..102606e929 100644
--- a/bitbake/lib/toaster/bldcontrol/bbcontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/bbcontroller.py
@@ -135,6 +135,11 @@ class BuildEnvironmentController(object):
135 bblayerconffile.write("# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"") 135 bblayerconffile.write("# line added by toaster build control\nBBLAYERS = \"" + " ".join(layerlist) + "\"")
136 bblayerconffile.close() 136 bblayerconffile.close()
137 137
138 def writePreConfFile(self, variable_list):
139 prefilepath = os.path.join(self.be.builddir, "conf/toaster-pre.conf")
140 with open(prefilepath, "w") as prefile:
141 for i in variable_list:
142 prefile.write("%s=\"%s\"\n" % (i.name, i.value))
138 143
139 144
140 def startBBServer(self, brbe): 145 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 56c989c9c9..bdce6ee902 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):
53 53
54 # set up the buid environment with the needed layers 54 # set up the buid environment with the needed layers
55 bec.setLayers(br.brbitbake_set.all(), br.brlayer_set.all()) 55 bec.setLayers(br.brbitbake_set.all(), br.brlayer_set.all())
56 bec.writePreConfFile(br.brvariable_set.all())
56 57
57 # get the bb server running with the build req id and build env id 58 # get the bb server running with the build req id and build env id
58 bbctrl = bec.getBBController("%d:%d" % (br.pk, bec.be.pk)) 59 bbctrl = bec.getBBController("%d:%d" % (br.pk, bec.be.pk))
59 60
60 # set the build configuration
61 for variable in br.brvariable_set.all():
62 bbctrl.setVariable(variable.name, variable.value)
63
64 # trigger the build command 61 # trigger the build command
65 task = reduce(lambda x, y: x if len(y)== 0 else y, map(lambda y: y.task, br.brtarget_set.all())) 62 task = reduce(lambda x, y: x if len(y)== 0 else y, map(lambda y: y.task, br.brtarget_set.all()))
66 if len(task) == 0: 63 if len(task) == 0:
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 46b704c130..6fbbeed8f3 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -529,6 +529,7 @@ class Recipe_Dependency(models.Model):
529 529
530 530
531class Machine(models.Model): 531class Machine(models.Model):
532 search_allowed_fields = ["name", "description"]
532 layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this machine 533 layer_source = models.ForeignKey('LayerSource', default = None, null = True) # from where did we get this machine
533 up_id = models.IntegerField(null = True, default = None) # id of entry in the source 534 up_id = models.IntegerField(null = True, default = None) # id of entry in the source
534 up_date = models.DateTimeField(null = True, default = None) 535 up_date = models.DateTimeField(null = True, default = None)