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 +++++++++--- bitbake/lib/bb/runqueue.py | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'bitbake/lib') 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) diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 0f99e5ab8e..2b71eed06e 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py @@ -793,7 +793,9 @@ class RunQueueData: if self.cooker.configuration.invalidate_stamp: for (fn, target) in self.target_pairs: for st in self.cooker.configuration.invalidate_stamp.split(','): - invalidate_task(fn, "do_%s" % st, True) + if not st.startswith("do_"): + st = "do_%s" % st + invalidate_task(fn, st, True) # Iterate over the task list and call into the siggen code dealtwith = set() -- cgit v1.2.3-54-g00ecf