From 7ef2f951d690df0939a8349ac024352b2a144249 Mon Sep 17 00:00:00 2001 From: Alex Franco Date: Wed, 2 Sep 2015 15:11:30 -0500 Subject: bitbake: cooker/runqueue: Allow bitbake commands starting with do_ The output of "bitbake, -c listtasks pkg" lists tasks with their real names (starting with "do_"), but then "bitbake -c do_task" fails, as "do_" always gets unconditionally prepended to task names. This patch handles this error by checking whether a task starts with "do_" prior to prepending it with it when the task runlist is being constructed (and a few other corner cases). [YOCTO #7818] (Bitbake rev: dd3050ceef37ac556546e940aa596ce96ef6c8df) Signed-off-by: Alex Franco Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'bitbake/lib/bb/cooker.py') diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 99c47859d9..a0d7d59eaa 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -663,7 +663,9 @@ class BBCooker: ktask = k2[1] taskdata.add_provider(localdata, self.recipecache, k) current += 1 - runlist.append([k, "do_%s" % ktask]) + if not ktask.startswith("do_"): + ktask = "do_%s" % ktask + runlist.append([k, ktask]) bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data) taskdata.add_unresolved(localdata, self.recipecache) bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data) @@ -1302,7 +1304,9 @@ class BBCooker: # Invalidate task for target if force mode active if self.configuration.force: logger.verbose("Invalidate task %s, %s", task, fn) - bb.parse.siggen.invalidate_task('do_%s' % task, self.recipecache, fn) + if not task.startswith("do_"): + task = "do_%s" % task + bb.parse.siggen.invalidate_task(task, self.recipecache, fn) # Setup taskdata structure taskdata = bb.taskdata.TaskData(self.configuration.abort) @@ -1312,7 +1316,9 @@ class BBCooker: bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.expanded_data) # Execute the runqueue - runlist = [[item, "do_%s" % task]] + if not task.startswith("do_"): + task = "do_%s" % task + runlist = [[item, task]] rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist) -- cgit v1.2.3-54-g00ecf