summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Franco <alejandro.franco@linux.intel.com>2015-09-02 15:11:30 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-09-04 16:23:58 +0100
commit7ef2f951d690df0939a8349ac024352b2a144249 (patch)
treedfd639b2a75c8295f4665b8346d7e6e6db7e8df0
parentccc1d9ac0c7a0e1768fdfc043da106d144029f3c (diff)
downloadpoky-7ef2f951d690df0939a8349ac024352b2a144249.tar.gz
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 <alejandro.franco@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--bitbake/lib/bb/cooker.py12
-rw-r--r--bitbake/lib/bb/runqueue.py4
2 files changed, 12 insertions, 4 deletions
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:
663 ktask = k2[1] 663 ktask = k2[1]
664 taskdata.add_provider(localdata, self.recipecache, k) 664 taskdata.add_provider(localdata, self.recipecache, k)
665 current += 1 665 current += 1
666 runlist.append([k, "do_%s" % ktask]) 666 if not ktask.startswith("do_"):
667 ktask = "do_%s" % ktask
668 runlist.append([k, ktask])
667 bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data) 669 bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data)
668 taskdata.add_unresolved(localdata, self.recipecache) 670 taskdata.add_unresolved(localdata, self.recipecache)
669 bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data) 671 bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data)
@@ -1302,7 +1304,9 @@ class BBCooker:
1302 # Invalidate task for target if force mode active 1304 # Invalidate task for target if force mode active
1303 if self.configuration.force: 1305 if self.configuration.force:
1304 logger.verbose("Invalidate task %s, %s", task, fn) 1306 logger.verbose("Invalidate task %s, %s", task, fn)
1305 bb.parse.siggen.invalidate_task('do_%s' % task, self.recipecache, fn) 1307 if not task.startswith("do_"):
1308 task = "do_%s" % task
1309 bb.parse.siggen.invalidate_task(task, self.recipecache, fn)
1306 1310
1307 # Setup taskdata structure 1311 # Setup taskdata structure
1308 taskdata = bb.taskdata.TaskData(self.configuration.abort) 1312 taskdata = bb.taskdata.TaskData(self.configuration.abort)
@@ -1312,7 +1316,9 @@ class BBCooker:
1312 bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.expanded_data) 1316 bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.expanded_data)
1313 1317
1314 # Execute the runqueue 1318 # Execute the runqueue
1315 runlist = [[item, "do_%s" % task]] 1319 if not task.startswith("do_"):
1320 task = "do_%s" % task
1321 runlist = [[item, task]]
1316 1322
1317 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist) 1323 rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
1318 1324
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:
793 if self.cooker.configuration.invalidate_stamp: 793 if self.cooker.configuration.invalidate_stamp:
794 for (fn, target) in self.target_pairs: 794 for (fn, target) in self.target_pairs:
795 for st in self.cooker.configuration.invalidate_stamp.split(','): 795 for st in self.cooker.configuration.invalidate_stamp.split(','):
796 invalidate_task(fn, "do_%s" % st, True) 796 if not st.startswith("do_"):
797 st = "do_%s" % st
798 invalidate_task(fn, st, True)
797 799
798 # Iterate over the task list and call into the siggen code 800 # Iterate over the task list and call into the siggen code
799 dealtwith = set() 801 dealtwith = set()