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 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 7c27fe110e..102606e929 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 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): # 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 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): 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)