diff options
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 9 | ||||
| -rw-r--r-- | bitbake/lib/bb/runqueue.py | 79 |
2 files changed, 36 insertions, 52 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 934072c44f..42831e2771 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py | |||
| @@ -748,8 +748,7 @@ class BBCooker: | |||
| 748 | depend_tree['providermap'][name] = (pn, version) | 748 | depend_tree['providermap'][name] = (pn, version) |
| 749 | 749 | ||
| 750 | for tid in rq.rqdata.runtaskentries: | 750 | for tid in rq.rqdata.runtaskentries: |
| 751 | (mc, fn, taskname) = bb.runqueue.split_tid(tid) | 751 | (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid) |
| 752 | taskfn = bb.runqueue.taskfn_fromtid(tid) | ||
| 753 | pn = self.recipecaches[mc].pkg_fn[taskfn] | 752 | pn = self.recipecaches[mc].pkg_fn[taskfn] |
| 754 | pn = self.add_mc_prefix(mc, pn) | 753 | pn = self.add_mc_prefix(mc, pn) |
| 755 | version = "%s:%s-%s" % self.recipecaches[mc].pkg_pepvpr[taskfn] | 754 | version = "%s:%s-%s" % self.recipecaches[mc].pkg_pepvpr[taskfn] |
| @@ -772,8 +771,7 @@ class BBCooker: | |||
| 772 | 771 | ||
| 773 | 772 | ||
| 774 | for dep in rq.rqdata.runtaskentries[tid].depends: | 773 | for dep in rq.rqdata.runtaskentries[tid].depends: |
| 775 | (depmc, depfn, deptaskname) = bb.runqueue.split_tid(dep) | 774 | (depmc, depfn, deptaskname, deptaskfn) = bb.runqueue.split_tid_mcfn(dep) |
| 776 | deptaskfn = bb.runqueue.taskfn_fromtid(dep) | ||
| 777 | deppn = self.recipecaches[mc].pkg_fn[deptaskfn] | 775 | deppn = self.recipecaches[mc].pkg_fn[deptaskfn] |
| 778 | dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(tid)) | 776 | dotname = "%s.%s" % (pn, bb.runqueue.taskname_from_tid(tid)) |
| 779 | if not dotname in depend_tree["tdepends"]: | 777 | if not dotname in depend_tree["tdepends"]: |
| @@ -843,8 +841,7 @@ class BBCooker: | |||
| 843 | tids.append(tid) | 841 | tids.append(tid) |
| 844 | 842 | ||
| 845 | for tid in tids: | 843 | for tid in tids: |
| 846 | (mc, fn, taskname) = bb.runqueue.split_tid(tid) | 844 | (mc, fn, taskname, taskfn) = bb.runqueue.split_tid_mcfn(tid) |
| 847 | taskfn = bb.runqueue.taskfn_fromtid(tid) | ||
| 848 | 845 | ||
| 849 | pn = self.recipecaches[mc].pkg_fn[taskfn] | 846 | pn = self.recipecaches[mc].pkg_fn[taskfn] |
| 850 | pn = self.add_mc_prefix(mc, pn) | 847 | pn = self.add_mc_prefix(mc, pn) |
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index df7c50fe96..13062630c0 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
| @@ -49,30 +49,30 @@ def taskname_from_tid(tid): | |||
| 49 | return tid.rsplit(":", 1)[1] | 49 | return tid.rsplit(":", 1)[1] |
| 50 | 50 | ||
| 51 | def split_tid(tid): | 51 | def split_tid(tid): |
| 52 | (mc, fn, taskname, _) = split_tid_mcfn(tid) | ||
| 53 | return (mc, fn, taskname) | ||
| 54 | |||
| 55 | def split_tid_mcfn(tid): | ||
| 52 | if tid.startswith('multiconfig:'): | 56 | if tid.startswith('multiconfig:'): |
| 53 | elems = tid.split(':') | 57 | elems = tid.split(':') |
| 54 | mc = elems[1] | 58 | mc = elems[1] |
| 55 | fn = ":".join(elems[2:-1]) | 59 | fn = ":".join(elems[2:-1]) |
| 56 | taskname = elems[-1] | 60 | taskname = elems[-1] |
| 61 | mcfn = "multiconfig:" + mc + ":" + fn | ||
| 57 | else: | 62 | else: |
| 58 | tid = tid.rsplit(":", 1) | 63 | tid = tid.rsplit(":", 1) |
| 59 | mc = "" | 64 | mc = "" |
| 60 | fn = tid[0] | 65 | fn = tid[0] |
| 61 | taskname = tid[1] | 66 | taskname = tid[1] |
| 67 | mcfn = fn | ||
| 62 | 68 | ||
| 63 | return (mc, fn, taskname) | 69 | return (mc, fn, taskname, mcfn) |
| 64 | 70 | ||
| 65 | def build_tid(mc, fn, taskname): | 71 | def build_tid(mc, fn, taskname): |
| 66 | if mc: | 72 | if mc: |
| 67 | return "multiconfig:" + mc + ":" + fn + ":" + taskname | 73 | return "multiconfig:" + mc + ":" + fn + ":" + taskname |
| 68 | return fn + ":" + taskname | 74 | return fn + ":" + taskname |
| 69 | 75 | ||
| 70 | def taskfn_fromtid(tid): | ||
| 71 | (mc, fn, taskname) = split_tid(tid) | ||
| 72 | if mc: | ||
| 73 | return "multiconfig:" + mc + ":" + fn | ||
| 74 | return fn | ||
| 75 | |||
| 76 | class RunQueueStats: | 76 | class RunQueueStats: |
| 77 | """ | 77 | """ |
| 78 | Holds statistics on the tasks handled by the associated runQueue | 78 | Holds statistics on the tasks handled by the associated runQueue |
| @@ -135,8 +135,7 @@ class RunQueueScheduler(object): | |||
| 135 | self.buildable = [] | 135 | self.buildable = [] |
| 136 | self.stamps = {} | 136 | self.stamps = {} |
| 137 | for tid in self.rqdata.runtaskentries: | 137 | for tid in self.rqdata.runtaskentries: |
| 138 | (mc, fn, taskname) = split_tid(tid) | 138 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 139 | taskfn = taskfn_fromtid(tid) | ||
| 140 | self.stamps[tid] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) | 139 | self.stamps[tid] = bb.build.stampfile(taskname, self.rqdata.dataCaches[mc], taskfn, noextra=True) |
| 141 | if tid in self.rq.runq_buildable: | 140 | if tid in self.rq.runq_buildable: |
| 142 | self.buildable.append(tid) | 141 | self.buildable.append(tid) |
| @@ -289,7 +288,7 @@ class RunQueueData: | |||
| 289 | return tid + task_name_suffix | 288 | return tid + task_name_suffix |
| 290 | 289 | ||
| 291 | def get_short_user_idstring(self, task, task_name_suffix = ""): | 290 | def get_short_user_idstring(self, task, task_name_suffix = ""): |
| 292 | (mc, fn, taskname) = split_tid(task) | 291 | (mc, fn, taskname, _) = split_tid_mcfn(task) |
| 293 | pn = self.dataCaches[mc].pkg_fn[fn] | 292 | pn = self.dataCaches[mc].pkg_fn[fn] |
| 294 | taskname = taskname_from_tid(task) + task_name_suffix | 293 | taskname = taskname_from_tid(task) + task_name_suffix |
| 295 | return "%s:%s" % (pn, taskname) | 294 | return "%s:%s" % (pn, taskname) |
| @@ -511,9 +510,8 @@ class RunQueueData: | |||
| 511 | for mc in taskData: | 510 | for mc in taskData: |
| 512 | for tid in taskData[mc].taskentries: | 511 | for tid in taskData[mc].taskentries: |
| 513 | 512 | ||
| 514 | (mc, fn, taskname) = split_tid(tid) | 513 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 515 | #runtid = build_tid(mc, fn, taskname) | 514 | #runtid = build_tid(mc, fn, taskname) |
| 516 | taskfn = taskfn_fromtid(tid) | ||
| 517 | 515 | ||
| 518 | #logger.debug(2, "Processing %s,%s:%s", mc, fn, taskname) | 516 | #logger.debug(2, "Processing %s,%s:%s", mc, fn, taskname) |
| 519 | 517 | ||
| @@ -529,7 +527,7 @@ class RunQueueData: | |||
| 529 | # | 527 | # |
| 530 | # e.g. addtask before X after Y | 528 | # e.g. addtask before X after Y |
| 531 | for t in taskData[mc].taskentries[tid].tdepends: | 529 | for t in taskData[mc].taskentries[tid].tdepends: |
| 532 | (_, depfn, deptaskname) = split_tid(t) | 530 | (_, depfn, deptaskname, _) = split_tid_mcfn(t) |
| 533 | depends.add(build_tid(mc, depfn, deptaskname)) | 531 | depends.add(build_tid(mc, depfn, deptaskname)) |
| 534 | 532 | ||
| 535 | # Resolve 'deptask' dependencies | 533 | # Resolve 'deptask' dependencies |
| @@ -611,7 +609,7 @@ class RunQueueData: | |||
| 611 | 609 | ||
| 612 | def generate_recdeps(t): | 610 | def generate_recdeps(t): |
| 613 | newdeps = set() | 611 | newdeps = set() |
| 614 | (mc, fn, taskname) = split_tid(t) | 612 | (mc, fn, taskname, _) = split_tid_mcfn(t) |
| 615 | add_resolved_dependencies(mc, fn, tasknames, newdeps) | 613 | add_resolved_dependencies(mc, fn, tasknames, newdeps) |
| 616 | extradeps[tid].update(newdeps) | 614 | extradeps[tid].update(newdeps) |
| 617 | seendeps.add(t) | 615 | seendeps.add(t) |
| @@ -774,8 +772,7 @@ class RunQueueData: | |||
| 774 | prov_list = {} | 772 | prov_list = {} |
| 775 | seen_fn = [] | 773 | seen_fn = [] |
| 776 | for tid in self.runtaskentries: | 774 | for tid in self.runtaskentries: |
| 777 | (tidmc, fn, taskname) = split_tid(tid) | 775 | (tidmc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 778 | taskfn = taskfn_fromtid(tid) | ||
| 779 | if taskfn in seen_fn: | 776 | if taskfn in seen_fn: |
| 780 | continue | 777 | continue |
| 781 | if mc != tidmc: | 778 | if mc != tidmc: |
| @@ -885,14 +882,14 @@ class RunQueueData: | |||
| 885 | self.runq_setscene_tids = [] | 882 | self.runq_setscene_tids = [] |
| 886 | if not self.cooker.configuration.nosetscene: | 883 | if not self.cooker.configuration.nosetscene: |
| 887 | for tid in self.runtaskentries: | 884 | for tid in self.runtaskentries: |
| 888 | (mc, fn, taskname) = split_tid(tid) | 885 | (mc, fn, taskname, _) = split_tid_mcfn(tid) |
| 889 | setscenetid = fn + ":" + taskname + "_setscene" | 886 | setscenetid = fn + ":" + taskname + "_setscene" |
| 890 | if setscenetid not in taskData[mc].taskentries: | 887 | if setscenetid not in taskData[mc].taskentries: |
| 891 | continue | 888 | continue |
| 892 | self.runq_setscene_tids.append(tid) | 889 | self.runq_setscene_tids.append(tid) |
| 893 | 890 | ||
| 894 | def invalidate_task(tid, error_nostamp): | 891 | def invalidate_task(tid, error_nostamp): |
| 895 | (mc, fn, taskname) = split_tid(tid) | 892 | (mc, fn, taskname, _) = split_tid_mcfn(tid) |
| 896 | taskdep = self.dataCaches[mc].task_deps[fn] | 893 | taskdep = self.dataCaches[mc].task_deps[fn] |
| 897 | if fn + ":" + taskname not in taskData[mc].taskentries: | 894 | if fn + ":" + taskname not in taskData[mc].taskentries: |
| 898 | logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname) | 895 | logger.warning("Task %s does not exist, invalidating this task will have no effect" % taskname) |
| @@ -946,8 +943,7 @@ class RunQueueData: | |||
| 946 | procdep = [] | 943 | procdep = [] |
| 947 | for dep in self.runtaskentries[tid].depends: | 944 | for dep in self.runtaskentries[tid].depends: |
| 948 | procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep)) | 945 | procdep.append(fn_from_tid(dep) + "." + taskname_from_tid(dep)) |
| 949 | (mc, fn, taskname) = split_tid(tid) | 946 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 950 | taskfn = taskfn_fromtid(tid) | ||
| 951 | self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc]) | 947 | self.runtaskentries[tid].hash = bb.parse.siggen.get_taskhash(taskfn, taskname, procdep, self.dataCaches[mc]) |
| 952 | task = self.runtaskentries[tid].task | 948 | task = self.runtaskentries[tid].task |
| 953 | 949 | ||
| @@ -1099,8 +1095,7 @@ class RunQueue: | |||
| 1099 | except: | 1095 | except: |
| 1100 | return None | 1096 | return None |
| 1101 | 1097 | ||
| 1102 | (mc, fn, tn) = split_tid(tid) | 1098 | (mc, fn, tn, taskfn) = split_tid_mcfn(tid) |
| 1103 | taskfn = taskfn_fromtid(tid) | ||
| 1104 | if taskname is None: | 1099 | if taskname is None: |
| 1105 | taskname = tn | 1100 | taskname = tn |
| 1106 | 1101 | ||
| @@ -1134,8 +1129,7 @@ class RunQueue: | |||
| 1134 | t1 = get_timestamp(stampfile) | 1129 | t1 = get_timestamp(stampfile) |
| 1135 | for dep in self.rqdata.runtaskentries[tid].depends: | 1130 | for dep in self.rqdata.runtaskentries[tid].depends: |
| 1136 | if iscurrent: | 1131 | if iscurrent: |
| 1137 | (mc2, fn2, taskname2) = split_tid(dep) | 1132 | (mc2, fn2, taskname2, taskfn2) = split_tid_mcfn(dep) |
| 1138 | taskfn2 = taskfn_fromtid(dep) | ||
| 1139 | stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCaches[mc2], taskfn2) | 1133 | stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCaches[mc2], taskfn2) |
| 1140 | stampfile3 = bb.build.stampfile(taskname2 + "_setscene", self.rqdata.dataCaches[mc2], taskfn2) | 1134 | stampfile3 = bb.build.stampfile(taskname2 + "_setscene", self.rqdata.dataCaches[mc2], taskfn2) |
| 1141 | t2 = get_timestamp(stampfile2) | 1135 | t2 = get_timestamp(stampfile2) |
| @@ -1247,7 +1241,7 @@ class RunQueue: | |||
| 1247 | if not self.rqdata.taskData[''].tryaltconfigs: | 1241 | if not self.rqdata.taskData[''].tryaltconfigs: |
| 1248 | raise bb.runqueue.TaskFailure(self.rqexe.failed_tids) | 1242 | raise bb.runqueue.TaskFailure(self.rqexe.failed_tids) |
| 1249 | for tid in self.rqexe.failed_tids: | 1243 | for tid in self.rqexe.failed_tids: |
| 1250 | (mc, fn, tn) = split_tid(tid) | 1244 | (mc, fn, tn, _) = split_tid_mcfn(tid) |
| 1251 | self.rqdata.taskData[mc].fail_fn(fn) | 1245 | self.rqdata.taskData[mc].fail_fn(fn) |
| 1252 | self.rqdata.reset() | 1246 | self.rqdata.reset() |
| 1253 | 1247 | ||
| @@ -1297,7 +1291,7 @@ class RunQueue: | |||
| 1297 | bb.note("Reparsing files to collect dependency data") | 1291 | bb.note("Reparsing files to collect dependency data") |
| 1298 | bb_cache = bb.cache.NoCache(self.cooker.databuilder) | 1292 | bb_cache = bb.cache.NoCache(self.cooker.databuilder) |
| 1299 | for tid in self.rqdata.runtaskentries: | 1293 | for tid in self.rqdata.runtaskentries: |
| 1300 | fn = taskfn_fromtid(tid) | 1294 | fn = fn_from_tid(tid) |
| 1301 | if fn not in done: | 1295 | if fn not in done: |
| 1302 | the_data = bb_cache.loadDataFull(fn, self.cooker.collection.get_file_appends(fn)) | 1296 | the_data = bb_cache.loadDataFull(fn, self.cooker.collection.get_file_appends(fn)) |
| 1303 | done.add(fn) | 1297 | done.add(fn) |
| @@ -1319,8 +1313,7 @@ class RunQueue: | |||
| 1319 | valid_new = set() | 1313 | valid_new = set() |
| 1320 | 1314 | ||
| 1321 | for tid in self.rqdata.runtaskentries: | 1315 | for tid in self.rqdata.runtaskentries: |
| 1322 | (mc, fn, taskname) = split_tid(tid) | 1316 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 1323 | taskfn = taskfn_fromtid(tid) | ||
| 1324 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] | 1317 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] |
| 1325 | 1318 | ||
| 1326 | if 'noexec' in taskdep and taskname in taskdep['noexec']: | 1319 | if 'noexec' in taskdep and taskname in taskdep['noexec']: |
| @@ -1408,7 +1401,7 @@ class RunQueue: | |||
| 1408 | 1401 | ||
| 1409 | 1402 | ||
| 1410 | for tid in invalidtasks: | 1403 | for tid in invalidtasks: |
| 1411 | (mc, fn, taskname) = split_tid(tid) | 1404 | (mc, fn, taskname, _) = split_tid_mcfn(tid) |
| 1412 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] | 1405 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] |
| 1413 | h = self.rqdata.runtaskentries[tid].hash | 1406 | h = self.rqdata.runtaskentries[tid].hash |
| 1414 | matches = bb.siggen.find_siginfo(pn, taskname, [], self.cfgData) | 1407 | matches = bb.siggen.find_siginfo(pn, taskname, [], self.cfgData) |
| @@ -1512,7 +1505,7 @@ class RunQueueExecute: | |||
| 1512 | taskdata = {} | 1505 | taskdata = {} |
| 1513 | taskdeps.add(task) | 1506 | taskdeps.add(task) |
| 1514 | for dep in taskdeps: | 1507 | for dep in taskdeps: |
| 1515 | (mc, fn, taskname) = split_tid(dep) | 1508 | (mc, fn, taskname, _) = split_tid_mcfn(dep) |
| 1516 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] | 1509 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] |
| 1517 | taskdata[dep] = [pn, taskname, fn] | 1510 | taskdata[dep] = [pn, taskname, fn] |
| 1518 | call = self.rq.depvalidate + "(task, taskdata, notneeded, d)" | 1511 | call = self.rq.depvalidate + "(task, taskdata, notneeded, d)" |
| @@ -1569,8 +1562,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1569 | tasknames = {} | 1562 | tasknames = {} |
| 1570 | fns = {} | 1563 | fns = {} |
| 1571 | for tid in self.rqdata.runtaskentries: | 1564 | for tid in self.rqdata.runtaskentries: |
| 1572 | (mc, fn, taskname) = split_tid(tid) | 1565 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 1573 | taskfn = taskfn_fromtid(tid) | ||
| 1574 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] | 1566 | taskdep = self.rqdata.dataCaches[mc].task_deps[taskfn] |
| 1575 | fns[tid] = taskfn | 1567 | fns[tid] = taskfn |
| 1576 | tasknames[tid] = taskname | 1568 | tasknames[tid] = taskname |
| @@ -1589,9 +1581,8 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1589 | covered_remove = bb.utils.better_eval(call, locs) | 1581 | covered_remove = bb.utils.better_eval(call, locs) |
| 1590 | 1582 | ||
| 1591 | def removecoveredtask(tid): | 1583 | def removecoveredtask(tid): |
| 1592 | (mc, fn, taskname) = split_tid(tid) | 1584 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 1593 | taskname = taskname + '_setscene' | 1585 | taskname = taskname + '_setscene' |
| 1594 | taskfn = taskfn_fromtid(tid) | ||
| 1595 | bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn) | 1586 | bb.build.del_stamp(taskname, self.rqdata.dataCaches[mc], taskfn) |
| 1596 | self.rq.scenequeue_covered.remove(tid) | 1587 | self.rq.scenequeue_covered.remove(tid) |
| 1597 | 1588 | ||
| @@ -1617,7 +1608,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1617 | for mc in self.rqdata.dataCaches: | 1608 | for mc in self.rqdata.dataCaches: |
| 1618 | target_pairs = [] | 1609 | target_pairs = [] |
| 1619 | for tid in self.rqdata.target_tids: | 1610 | for tid in self.rqdata.target_tids: |
| 1620 | (tidmc, fn, taskname) = split_tid(tid) | 1611 | (tidmc, fn, taskname, _) = split_tid_mcfn(tid) |
| 1621 | if tidmc == mc: | 1612 | if tidmc == mc: |
| 1622 | target_pairs.append((fn, taskname)) | 1613 | target_pairs.append((fn, taskname)) |
| 1623 | 1614 | ||
| @@ -1713,7 +1704,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1713 | if self.rqdata.setscenewhitelist: | 1704 | if self.rqdata.setscenewhitelist: |
| 1714 | # Check tasks that are going to run against the whitelist | 1705 | # Check tasks that are going to run against the whitelist |
| 1715 | def check_norun_task(tid, showerror=False): | 1706 | def check_norun_task(tid, showerror=False): |
| 1716 | (mc, fn, taskname) = split_tid(tid) | 1707 | (mc, fn, taskname, _) = split_tid_mcfn(tid) |
| 1717 | # Ignore covered tasks | 1708 | # Ignore covered tasks |
| 1718 | if tid in self.rq.scenequeue_covered: | 1709 | if tid in self.rq.scenequeue_covered: |
| 1719 | return False | 1710 | return False |
| @@ -1761,8 +1752,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1761 | 1752 | ||
| 1762 | task = self.sched.next() | 1753 | task = self.sched.next() |
| 1763 | if task is not None: | 1754 | if task is not None: |
| 1764 | (mc, fn, taskname) = split_tid(task) | 1755 | (mc, fn, taskname, taskfn) = split_tid_mcfn(task) |
| 1765 | taskfn = taskfn_fromtid(task) | ||
| 1766 | 1756 | ||
| 1767 | if task in self.rq.scenequeue_covered: | 1757 | if task in self.rq.scenequeue_covered: |
| 1768 | logger.debug(2, "Setscene covered task %s", task) | 1758 | logger.debug(2, "Setscene covered task %s", task) |
| @@ -1842,8 +1832,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
| 1842 | while next: | 1832 | while next: |
| 1843 | additional = [] | 1833 | additional = [] |
| 1844 | for revdep in next: | 1834 | for revdep in next: |
| 1845 | (mc, fn, taskname) = split_tid(revdep) | 1835 | (mc, fn, taskname, taskfn) = split_tid_mcfn(revdep) |
| 1846 | taskfn = taskfn_fromtid(revdep) | ||
| 1847 | pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn] | 1836 | pn = self.rqdata.dataCaches[mc].pkg_fn[taskfn] |
| 1848 | deps = self.rqdata.runtaskentries[revdep].depends | 1837 | deps = self.rqdata.runtaskentries[revdep].depends |
| 1849 | provides = self.rqdata.dataCaches[mc].fn_provides[taskfn] | 1838 | provides = self.rqdata.dataCaches[mc].fn_provides[taskfn] |
| @@ -1986,7 +1975,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
| 1986 | # e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene" | 1975 | # e.g. do_sometask_setscene[depends] = "targetname:do_someothertask_setscene" |
| 1987 | # Note that anything explicitly depended upon will have its reverse dependencies removed to avoid circular dependencies | 1976 | # Note that anything explicitly depended upon will have its reverse dependencies removed to avoid circular dependencies |
| 1988 | for tid in self.rqdata.runq_setscene_tids: | 1977 | for tid in self.rqdata.runq_setscene_tids: |
| 1989 | (mc, fn, taskname) = split_tid(tid) | 1978 | (mc, fn, taskname, _) = split_tid_mcfn(tid) |
| 1990 | realtid = fn + ":" + taskname + "_setscene" | 1979 | realtid = fn + ":" + taskname + "_setscene" |
| 1991 | idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends | 1980 | idepends = self.rqdata.taskData[mc].taskentries[realtid].idepends |
| 1992 | for (depname, idependtask) in idepends: | 1981 | for (depname, idependtask) in idepends: |
| @@ -2050,8 +2039,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
| 2050 | noexec = [] | 2039 | noexec = [] |
| 2051 | stamppresent = [] | 2040 | stamppresent = [] |
| 2052 | for tid in self.sq_revdeps: | 2041 | for tid in self.sq_revdeps: |
| 2053 | (mc, fn, taskname) = split_tid(tid) | 2042 | (mc, fn, taskname, taskfn) = split_tid_mcfn(tid) |
| 2054 | taskfn = taskfn_fromtid(tid) | ||
| 2055 | 2043 | ||
| 2056 | taskdep = self.rqdata.dataCaches[mc].task_deps[fn] | 2044 | taskdep = self.rqdata.dataCaches[mc].task_deps[fn] |
| 2057 | 2045 | ||
| @@ -2122,7 +2110,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
| 2122 | def check_taskfail(self, task): | 2110 | def check_taskfail(self, task): |
| 2123 | if self.rqdata.setscenewhitelist: | 2111 | if self.rqdata.setscenewhitelist: |
| 2124 | realtask = task.split('_setscene')[0] | 2112 | realtask = task.split('_setscene')[0] |
| 2125 | (mc, fn, taskname) = split_tid(realtask) | 2113 | (mc, fn, taskname, _) = split_tid_mcfn(realtask) |
| 2126 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] | 2114 | pn = self.rqdata.dataCaches[mc].pkg_fn[fn] |
| 2127 | if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist): | 2115 | if not check_setscene_enforce_whitelist(pn, taskname, self.rqdata.setscenewhitelist): |
| 2128 | logger.error('Task %s.%s failed' % (pn, taskname + "_setscene")) | 2116 | logger.error('Task %s.%s failed' % (pn, taskname + "_setscene")) |
| @@ -2186,8 +2174,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
| 2186 | task = nexttask | 2174 | task = nexttask |
| 2187 | break | 2175 | break |
| 2188 | if task is not None: | 2176 | if task is not None: |
| 2189 | (mc, fn, taskname) = split_tid(task) | 2177 | (mc, fn, taskname, taskfn) = split_tid_mcfn(task) |
| 2190 | taskfn = taskfn_fromtid(task) | ||
| 2191 | taskname = taskname + "_setscene" | 2178 | taskname = taskname + "_setscene" |
| 2192 | if self.rq.check_stamp_task(task, taskname_from_tid(task), recurse = True, cache=self.stampcache): | 2179 | if self.rq.check_stamp_task(task, taskname_from_tid(task), recurse = True, cache=self.stampcache): |
| 2193 | logger.debug(2, 'Stamp for underlying task %s is current, so skipping setscene variant', task) | 2180 | logger.debug(2, 'Stamp for underlying task %s is current, so skipping setscene variant', task) |
