diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-05-12 08:30:35 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-06-02 08:24:02 +0100 |
commit | 0f2c59367a649de5f57acdccfb4f1fdba9cde730 (patch) | |
tree | 7a3558a3e08e690fbb0b5bdc4044316f9ab4bbcb /bitbake/lib/bb/runqueue.py | |
parent | ef1df516512587ad415f76a9626620992d660e45 (diff) | |
download | poky-0f2c59367a649de5f57acdccfb4f1fdba9cde730.tar.gz |
bitbake: bitbake: Convert to python 3
Various misc changes to convert bitbake to python3 which don't warrant
separation into separate commits.
(Bitbake rev: d0f904d407f57998419bd9c305ce53e5eaa36b24)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/runqueue.py')
-rw-r--r-- | bitbake/lib/bb/runqueue.py | 117 |
1 files changed, 56 insertions, 61 deletions
diff --git a/bitbake/lib/bb/runqueue.py b/bitbake/lib/bb/runqueue.py index 5ab7e97088..376c9f51e8 100644 --- a/bitbake/lib/bb/runqueue.py +++ b/bitbake/lib/bb/runqueue.py | |||
@@ -35,11 +35,7 @@ import bb | |||
35 | from bb import msg, data, event | 35 | from bb import msg, data, event |
36 | from bb import monitordisk | 36 | from bb import monitordisk |
37 | import subprocess | 37 | import subprocess |
38 | 38 | import pickle | |
39 | try: | ||
40 | import cPickle as pickle | ||
41 | except ImportError: | ||
42 | import pickle | ||
43 | 39 | ||
44 | bblogger = logging.getLogger("BitBake") | 40 | bblogger = logging.getLogger("BitBake") |
45 | logger = logging.getLogger("BitBake.RunQueue") | 41 | logger = logging.getLogger("BitBake.RunQueue") |
@@ -108,7 +104,7 @@ class RunQueueScheduler(object): | |||
108 | 104 | ||
109 | self.buildable = [] | 105 | self.buildable = [] |
110 | self.stamps = {} | 106 | self.stamps = {} |
111 | for taskid in xrange(self.numTasks): | 107 | for taskid in range(self.numTasks): |
112 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[taskid]] | 108 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[taskid]] |
113 | taskname = self.rqdata.runq_task[taskid] | 109 | taskname = self.rqdata.runq_task[taskid] |
114 | self.stamps[taskid] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn) | 110 | self.stamps[taskid] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn) |
@@ -127,12 +123,12 @@ class RunQueueScheduler(object): | |||
127 | if len(self.buildable) == 1: | 123 | if len(self.buildable) == 1: |
128 | taskid = self.buildable[0] | 124 | taskid = self.buildable[0] |
129 | stamp = self.stamps[taskid] | 125 | stamp = self.stamps[taskid] |
130 | if stamp not in self.rq.build_stamps.itervalues(): | 126 | if stamp not in self.rq.build_stamps.values(): |
131 | return taskid | 127 | return taskid |
132 | 128 | ||
133 | if not self.rev_prio_map: | 129 | if not self.rev_prio_map: |
134 | self.rev_prio_map = range(self.numTasks) | 130 | self.rev_prio_map = list(range(self.numTasks)) |
135 | for taskid in xrange(self.numTasks): | 131 | for taskid in range(self.numTasks): |
136 | self.rev_prio_map[self.prio_map[taskid]] = taskid | 132 | self.rev_prio_map[self.prio_map[taskid]] = taskid |
137 | 133 | ||
138 | best = None | 134 | best = None |
@@ -141,7 +137,7 @@ class RunQueueScheduler(object): | |||
141 | prio = self.rev_prio_map[taskid] | 137 | prio = self.rev_prio_map[taskid] |
142 | if bestprio is None or bestprio > prio: | 138 | if bestprio is None or bestprio > prio: |
143 | stamp = self.stamps[taskid] | 139 | stamp = self.stamps[taskid] |
144 | if stamp in self.rq.build_stamps.itervalues(): | 140 | if stamp in self.rq.build_stamps.values(): |
145 | continue | 141 | continue |
146 | bestprio = prio | 142 | bestprio = prio |
147 | best = taskid | 143 | best = taskid |
@@ -269,7 +265,7 @@ class RunQueueData: | |||
269 | 265 | ||
270 | 266 | ||
271 | def get_task_id(self, fnid, taskname): | 267 | def get_task_id(self, fnid, taskname): |
272 | for listid in xrange(len(self.runq_fnid)): | 268 | for listid in range(len(self.runq_fnid)): |
273 | if self.runq_fnid[listid] == fnid and self.runq_task[listid] == taskname: | 269 | if self.runq_fnid[listid] == fnid and self.runq_task[listid] == taskname: |
274 | return listid | 270 | return listid |
275 | return None | 271 | return None |
@@ -291,7 +287,7 @@ class RunQueueData: | |||
291 | """ | 287 | """ |
292 | lowest = 0 | 288 | lowest = 0 |
293 | new_chain = [] | 289 | new_chain = [] |
294 | for entry in xrange(len(chain)): | 290 | for entry in range(len(chain)): |
295 | if chain[entry] < chain[lowest]: | 291 | if chain[entry] < chain[lowest]: |
296 | lowest = entry | 292 | lowest = entry |
297 | new_chain.extend(chain[lowest:]) | 293 | new_chain.extend(chain[lowest:]) |
@@ -304,7 +300,7 @@ class RunQueueData: | |||
304 | """ | 300 | """ |
305 | if len(chain1) != len(chain2): | 301 | if len(chain1) != len(chain2): |
306 | return False | 302 | return False |
307 | for index in xrange(len(chain1)): | 303 | for index in range(len(chain1)): |
308 | if chain1[index] != chain2[index]: | 304 | if chain1[index] != chain2[index]: |
309 | return False | 305 | return False |
310 | return True | 306 | return True |
@@ -375,7 +371,7 @@ class RunQueueData: | |||
375 | deps_left = [] | 371 | deps_left = [] |
376 | task_done = [] | 372 | task_done = [] |
377 | 373 | ||
378 | for listid in xrange(numTasks): | 374 | for listid in range(numTasks): |
379 | task_done.append(False) | 375 | task_done.append(False) |
380 | weight.append(1) | 376 | weight.append(1) |
381 | deps_left.append(len(self.runq_revdeps[listid])) | 377 | deps_left.append(len(self.runq_revdeps[listid])) |
@@ -399,7 +395,7 @@ class RunQueueData: | |||
399 | 395 | ||
400 | # Circular dependency sanity check | 396 | # Circular dependency sanity check |
401 | problem_tasks = [] | 397 | problem_tasks = [] |
402 | for task in xrange(numTasks): | 398 | for task in range(numTasks): |
403 | if task_done[task] is False or deps_left[task] != 0: | 399 | if task_done[task] is False or deps_left[task] != 0: |
404 | problem_tasks.append(task) | 400 | problem_tasks.append(task) |
405 | logger.debug(2, "Task %s (%s) is not buildable", task, self.get_user_idstring(task)) | 401 | logger.debug(2, "Task %s (%s) is not buildable", task, self.get_user_idstring(task)) |
@@ -482,7 +478,7 @@ class RunQueueData: | |||
482 | if taskid is not None: | 478 | if taskid is not None: |
483 | depends.add(taskid) | 479 | depends.add(taskid) |
484 | 480 | ||
485 | for task in xrange(len(taskData.tasks_name)): | 481 | for task in range(len(taskData.tasks_name)): |
486 | depends = set() | 482 | depends = set() |
487 | fnid = taskData.tasks_fnid[task] | 483 | fnid = taskData.tasks_fnid[task] |
488 | fn = taskData.fn_index[fnid] | 484 | fn = taskData.fn_index[fnid] |
@@ -597,7 +593,7 @@ class RunQueueData: | |||
597 | for task in recursivetasks: | 593 | for task in recursivetasks: |
598 | extradeps[task].difference_update(recursivetasksselfref) | 594 | extradeps[task].difference_update(recursivetasksselfref) |
599 | 595 | ||
600 | for task in xrange(len(taskData.tasks_name)): | 596 | for task in range(len(taskData.tasks_name)): |
601 | # Add in extra dependencies | 597 | # Add in extra dependencies |
602 | if task in extradeps: | 598 | if task in extradeps: |
603 | self.runq_depends[task] = extradeps[task] | 599 | self.runq_depends[task] = extradeps[task] |
@@ -675,7 +671,7 @@ class RunQueueData: | |||
675 | 671 | ||
676 | maps = [] | 672 | maps = [] |
677 | delcount = 0 | 673 | delcount = 0 |
678 | for listid in xrange(len(self.runq_fnid)): | 674 | for listid in range(len(self.runq_fnid)): |
679 | if runq_build[listid-delcount] == 1: | 675 | if runq_build[listid-delcount] == 1: |
680 | maps.append(listid-delcount) | 676 | maps.append(listid-delcount) |
681 | else: | 677 | else: |
@@ -703,7 +699,7 @@ class RunQueueData: | |||
703 | 699 | ||
704 | # Remap the dependencies to account for the deleted tasks | 700 | # Remap the dependencies to account for the deleted tasks |
705 | # Check we didn't delete a task we depend on | 701 | # Check we didn't delete a task we depend on |
706 | for listid in xrange(len(self.runq_fnid)): | 702 | for listid in range(len(self.runq_fnid)): |
707 | newdeps = [] | 703 | newdeps = [] |
708 | origdeps = self.runq_depends[listid] | 704 | origdeps = self.runq_depends[listid] |
709 | for origdep in origdeps: | 705 | for origdep in origdeps: |
@@ -715,14 +711,14 @@ class RunQueueData: | |||
715 | logger.verbose("Assign Weightings") | 711 | logger.verbose("Assign Weightings") |
716 | 712 | ||
717 | # Generate a list of reverse dependencies to ease future calculations | 713 | # Generate a list of reverse dependencies to ease future calculations |
718 | for listid in xrange(len(self.runq_fnid)): | 714 | for listid in range(len(self.runq_fnid)): |
719 | for dep in self.runq_depends[listid]: | 715 | for dep in self.runq_depends[listid]: |
720 | self.runq_revdeps[dep].add(listid) | 716 | self.runq_revdeps[dep].add(listid) |
721 | 717 | ||
722 | # Identify tasks at the end of dependency chains | 718 | # Identify tasks at the end of dependency chains |
723 | # Error on circular dependency loops (length two) | 719 | # Error on circular dependency loops (length two) |
724 | endpoints = [] | 720 | endpoints = [] |
725 | for listid in xrange(len(self.runq_fnid)): | 721 | for listid in range(len(self.runq_fnid)): |
726 | revdeps = self.runq_revdeps[listid] | 722 | revdeps = self.runq_revdeps[listid] |
727 | if len(revdeps) == 0: | 723 | if len(revdeps) == 0: |
728 | endpoints.append(listid) | 724 | endpoints.append(listid) |
@@ -740,7 +736,7 @@ class RunQueueData: | |||
740 | # Sanity Check - Check for multiple tasks building the same provider | 736 | # Sanity Check - Check for multiple tasks building the same provider |
741 | prov_list = {} | 737 | prov_list = {} |
742 | seen_fn = [] | 738 | seen_fn = [] |
743 | for task in xrange(len(self.runq_fnid)): | 739 | for task in range(len(self.runq_fnid)): |
744 | fn = taskData.fn_index[self.runq_fnid[task]] | 740 | fn = taskData.fn_index[self.runq_fnid[task]] |
745 | if fn in seen_fn: | 741 | if fn in seen_fn: |
746 | continue | 742 | continue |
@@ -905,7 +901,7 @@ class RunQueueData: | |||
905 | Dump some debug information on the internal data structures | 901 | Dump some debug information on the internal data structures |
906 | """ | 902 | """ |
907 | logger.debug(3, "run_tasks:") | 903 | logger.debug(3, "run_tasks:") |
908 | for task in xrange(len(self.rqdata.runq_task)): | 904 | for task in range(len(self.rqdata.runq_task)): |
909 | logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, | 905 | logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, |
910 | taskQueue.fn_index[self.rqdata.runq_fnid[task]], | 906 | taskQueue.fn_index[self.rqdata.runq_fnid[task]], |
911 | self.rqdata.runq_task[task], | 907 | self.rqdata.runq_task[task], |
@@ -914,7 +910,7 @@ class RunQueueData: | |||
914 | self.rqdata.runq_revdeps[task]) | 910 | self.rqdata.runq_revdeps[task]) |
915 | 911 | ||
916 | logger.debug(3, "sorted_tasks:") | 912 | logger.debug(3, "sorted_tasks:") |
917 | for task1 in xrange(len(self.rqdata.runq_task)): | 913 | for task1 in range(len(self.rqdata.runq_task)): |
918 | if task1 in self.prio_map: | 914 | if task1 in self.prio_map: |
919 | task = self.prio_map[task1] | 915 | task = self.prio_map[task1] |
920 | logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, | 916 | logger.debug(3, " (%s)%s - %s: %s Deps %s RevDeps %s", task, |
@@ -982,8 +978,8 @@ class RunQueue: | |||
982 | "time" : self.cfgData.getVar("TIME", True), | 978 | "time" : self.cfgData.getVar("TIME", True), |
983 | } | 979 | } |
984 | 980 | ||
985 | worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>") | 981 | worker.stdin.write(b"<cookerconfig>" + pickle.dumps(self.cooker.configuration) + b"</cookerconfig>") |
986 | worker.stdin.write("<workerdata>" + pickle.dumps(workerdata) + "</workerdata>") | 982 | worker.stdin.write(b"<workerdata>" + pickle.dumps(workerdata) + b"</workerdata>") |
987 | worker.stdin.flush() | 983 | worker.stdin.flush() |
988 | 984 | ||
989 | return worker, workerpipe | 985 | return worker, workerpipe |
@@ -993,8 +989,9 @@ class RunQueue: | |||
993 | return | 989 | return |
994 | logger.debug(1, "Teardown for bitbake-worker") | 990 | logger.debug(1, "Teardown for bitbake-worker") |
995 | try: | 991 | try: |
996 | worker.stdin.write("<quit></quit>") | 992 | worker.stdin.write(b"<quit></quit>") |
997 | worker.stdin.flush() | 993 | worker.stdin.flush() |
994 | worker.stdin.close() | ||
998 | except IOError: | 995 | except IOError: |
999 | pass | 996 | pass |
1000 | while worker.returncode is None: | 997 | while worker.returncode is None: |
@@ -1245,7 +1242,7 @@ class RunQueue: | |||
1245 | stamppresent = [] | 1242 | stamppresent = [] |
1246 | valid_new = set() | 1243 | valid_new = set() |
1247 | 1244 | ||
1248 | for task in xrange(len(self.rqdata.runq_fnid)): | 1245 | for task in range(len(self.rqdata.runq_fnid)): |
1249 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] | 1246 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] |
1250 | taskname = self.rqdata.runq_task[task] | 1247 | taskname = self.rqdata.runq_task[task] |
1251 | taskdep = self.rqdata.dataCache.task_deps[fn] | 1248 | taskdep = self.rqdata.dataCache.task_deps[fn] |
@@ -1287,7 +1284,7 @@ class RunQueue: | |||
1287 | valid_new.add(dep) | 1284 | valid_new.add(dep) |
1288 | 1285 | ||
1289 | invalidtasks = set() | 1286 | invalidtasks = set() |
1290 | for task in xrange(len(self.rqdata.runq_fnid)): | 1287 | for task in range(len(self.rqdata.runq_fnid)): |
1291 | if task not in valid_new and task not in noexec: | 1288 | if task not in valid_new and task not in noexec: |
1292 | invalidtasks.add(task) | 1289 | invalidtasks.add(task) |
1293 | 1290 | ||
@@ -1346,7 +1343,7 @@ class RunQueue: | |||
1346 | match = m | 1343 | match = m |
1347 | if match is None: | 1344 | if match is None: |
1348 | bb.fatal("Can't find a task we're supposed to have written out? (hash: %s)?" % h) | 1345 | bb.fatal("Can't find a task we're supposed to have written out? (hash: %s)?" % h) |
1349 | matches = {k : v for k, v in matches.iteritems() if h not in k} | 1346 | matches = {k : v for k, v in iter(matches.items()) if h not in k} |
1350 | if matches: | 1347 | if matches: |
1351 | latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1] | 1348 | latestmatch = sorted(matches.keys(), key=lambda f: matches[f])[-1] |
1352 | prevh = __find_md5__.search(latestmatch).group(0) | 1349 | prevh = __find_md5__.search(latestmatch).group(0) |
@@ -1395,17 +1392,15 @@ class RunQueueExecute: | |||
1395 | return True | 1392 | return True |
1396 | 1393 | ||
1397 | def finish_now(self): | 1394 | def finish_now(self): |
1398 | |||
1399 | for worker in [self.rq.worker, self.rq.fakeworker]: | 1395 | for worker in [self.rq.worker, self.rq.fakeworker]: |
1400 | if not worker: | 1396 | if not worker: |
1401 | continue | 1397 | continue |
1402 | try: | 1398 | try: |
1403 | worker.stdin.write("<finishnow></finishnow>") | 1399 | worker.stdin.write(b"<finishnow></finishnow>") |
1404 | worker.stdin.flush() | 1400 | worker.stdin.flush() |
1405 | except IOError: | 1401 | except IOError: |
1406 | # worker must have died? | 1402 | # worker must have died? |
1407 | pass | 1403 | pass |
1408 | |||
1409 | if len(self.failed_fnids) != 0: | 1404 | if len(self.failed_fnids) != 0: |
1410 | self.rq.state = runQueueFailed | 1405 | self.rq.state = runQueueFailed |
1411 | return | 1406 | return |
@@ -1468,7 +1463,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
1468 | initial_covered = self.rq.scenequeue_covered.copy() | 1463 | initial_covered = self.rq.scenequeue_covered.copy() |
1469 | 1464 | ||
1470 | # Mark initial buildable tasks | 1465 | # Mark initial buildable tasks |
1471 | for task in xrange(self.stats.total): | 1466 | for task in range(self.stats.total): |
1472 | self.runq_running.append(0) | 1467 | self.runq_running.append(0) |
1473 | self.runq_complete.append(0) | 1468 | self.runq_complete.append(0) |
1474 | if len(self.rqdata.runq_depends[task]) == 0: | 1469 | if len(self.rqdata.runq_depends[task]) == 0: |
@@ -1481,7 +1476,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
1481 | found = True | 1476 | found = True |
1482 | while found: | 1477 | while found: |
1483 | found = False | 1478 | found = False |
1484 | for task in xrange(self.stats.total): | 1479 | for task in range(self.stats.total): |
1485 | if task in self.rq.scenequeue_covered: | 1480 | if task in self.rq.scenequeue_covered: |
1486 | continue | 1481 | continue |
1487 | logger.debug(1, 'Considering %s (%s): %s' % (task, self.rqdata.get_user_idstring(task), str(self.rqdata.runq_revdeps[task]))) | 1482 | logger.debug(1, 'Considering %s (%s): %s' % (task, self.rqdata.get_user_idstring(task), str(self.rqdata.runq_revdeps[task]))) |
@@ -1496,7 +1491,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
1496 | covered_remove = set() | 1491 | covered_remove = set() |
1497 | if self.rq.setsceneverify: | 1492 | if self.rq.setsceneverify: |
1498 | invalidtasks = [] | 1493 | invalidtasks = [] |
1499 | for task in xrange(len(self.rqdata.runq_task)): | 1494 | for task in range(len(self.rqdata.runq_task)): |
1500 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] | 1495 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]] |
1501 | taskname = self.rqdata.runq_task[task] | 1496 | taskname = self.rqdata.runq_task[task] |
1502 | taskdep = self.rqdata.dataCache.task_deps[fn] | 1497 | taskdep = self.rqdata.dataCache.task_deps[fn] |
@@ -1684,10 +1679,10 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
1684 | logger.critical("Failed to spawn fakeroot worker to run %s:%s: %s" % (fn, taskname, str(exc))) | 1679 | logger.critical("Failed to spawn fakeroot worker to run %s:%s: %s" % (fn, taskname, str(exc))) |
1685 | self.rq.state = runQueueFailed | 1680 | self.rq.state = runQueueFailed |
1686 | return True | 1681 | return True |
1687 | self.rq.fakeworker.stdin.write("<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + "</runtask>") | 1682 | self.rq.fakeworker.stdin.write(b"<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + b"</runtask>") |
1688 | self.rq.fakeworker.stdin.flush() | 1683 | self.rq.fakeworker.stdin.flush() |
1689 | else: | 1684 | else: |
1690 | self.rq.worker.stdin.write("<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + "</runtask>") | 1685 | self.rq.worker.stdin.write(b"<runtask>" + pickle.dumps((fn, task, taskname, False, self.cooker.collection.get_file_appends(fn), taskdepdata)) + b"</runtask>") |
1691 | self.rq.worker.stdin.flush() | 1686 | self.rq.worker.stdin.flush() |
1692 | 1687 | ||
1693 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn) | 1688 | self.build_stamps[task] = bb.build.stampfile(taskname, self.rqdata.dataCache, fn) |
@@ -1706,7 +1701,7 @@ class RunQueueExecuteTasks(RunQueueExecute): | |||
1706 | return True | 1701 | return True |
1707 | 1702 | ||
1708 | # Sanity Checks | 1703 | # Sanity Checks |
1709 | for task in xrange(self.stats.total): | 1704 | for task in range(self.stats.total): |
1710 | if self.runq_buildable[task] == 0: | 1705 | if self.runq_buildable[task] == 0: |
1711 | logger.error("Task %s never buildable!", task) | 1706 | logger.error("Task %s never buildable!", task) |
1712 | if self.runq_running[task] == 0: | 1707 | if self.runq_running[task] == 0: |
@@ -1764,14 +1759,14 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1764 | # therefore aims to collapse the huge runqueue dependency tree into a smaller one | 1759 | # therefore aims to collapse the huge runqueue dependency tree into a smaller one |
1765 | # only containing the setscene functions. | 1760 | # only containing the setscene functions. |
1766 | 1761 | ||
1767 | for task in xrange(self.stats.total): | 1762 | for task in range(self.stats.total): |
1768 | self.runq_running.append(0) | 1763 | self.runq_running.append(0) |
1769 | self.runq_complete.append(0) | 1764 | self.runq_complete.append(0) |
1770 | self.runq_buildable.append(0) | 1765 | self.runq_buildable.append(0) |
1771 | 1766 | ||
1772 | # First process the chains up to the first setscene task. | 1767 | # First process the chains up to the first setscene task. |
1773 | endpoints = {} | 1768 | endpoints = {} |
1774 | for task in xrange(len(self.rqdata.runq_fnid)): | 1769 | for task in range(len(self.rqdata.runq_fnid)): |
1775 | sq_revdeps.append(copy.copy(self.rqdata.runq_revdeps[task])) | 1770 | sq_revdeps.append(copy.copy(self.rqdata.runq_revdeps[task])) |
1776 | sq_revdeps_new.append(set()) | 1771 | sq_revdeps_new.append(set()) |
1777 | if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene: | 1772 | if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene: |
@@ -1833,7 +1828,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1833 | newendpoints[dep] = tasks | 1828 | newendpoints[dep] = tasks |
1834 | if len(newendpoints) != 0: | 1829 | if len(newendpoints) != 0: |
1835 | process_endpoints2(newendpoints) | 1830 | process_endpoints2(newendpoints) |
1836 | for task in xrange(len(self.rqdata.runq_fnid)): | 1831 | for task in range(len(self.rqdata.runq_fnid)): |
1837 | sq_revdeps2.append(copy.copy(self.rqdata.runq_revdeps[task])) | 1832 | sq_revdeps2.append(copy.copy(self.rqdata.runq_revdeps[task])) |
1838 | sq_revdeps_new2.append(set()) | 1833 | sq_revdeps_new2.append(set()) |
1839 | if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene: | 1834 | if (len(self.rqdata.runq_revdeps[task]) == 0) and task not in self.rqdata.runq_setscene: |
@@ -1844,7 +1839,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1844 | if sq_revdeps_new2[task]: | 1839 | if sq_revdeps_new2[task]: |
1845 | self.unskippable.append(self.rqdata.runq_setscene.index(task)) | 1840 | self.unskippable.append(self.rqdata.runq_setscene.index(task)) |
1846 | 1841 | ||
1847 | for task in xrange(len(self.rqdata.runq_fnid)): | 1842 | for task in range(len(self.rqdata.runq_fnid)): |
1848 | if task in self.rqdata.runq_setscene: | 1843 | if task in self.rqdata.runq_setscene: |
1849 | deps = set() | 1844 | deps = set() |
1850 | for dep in sq_revdeps_new[task]: | 1845 | for dep in sq_revdeps_new[task]: |
@@ -1883,7 +1878,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1883 | for dep in self.sq_harddeps[task]: | 1878 | for dep in self.sq_harddeps[task]: |
1884 | sq_revdeps_squash[dep].add(task) | 1879 | sq_revdeps_squash[dep].add(task) |
1885 | 1880 | ||
1886 | #for task in xrange(len(sq_revdeps_squash)): | 1881 | #for task in range(len(sq_revdeps_squash)): |
1887 | # realtask = self.rqdata.runq_setscene[task] | 1882 | # realtask = self.rqdata.runq_setscene[task] |
1888 | # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task])) | 1883 | # bb.warn("Task %s: %s_setscene is %s " % (task, self.rqdata.get_user_idstring(realtask) , sq_revdeps_squash[task])) |
1889 | 1884 | ||
@@ -1891,13 +1886,13 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1891 | self.sq_revdeps = sq_revdeps_squash | 1886 | self.sq_revdeps = sq_revdeps_squash |
1892 | self.sq_revdeps2 = copy.deepcopy(self.sq_revdeps) | 1887 | self.sq_revdeps2 = copy.deepcopy(self.sq_revdeps) |
1893 | 1888 | ||
1894 | for task in xrange(len(self.sq_revdeps)): | 1889 | for task in range(len(self.sq_revdeps)): |
1895 | self.sq_deps.append(set()) | 1890 | self.sq_deps.append(set()) |
1896 | for task in xrange(len(self.sq_revdeps)): | 1891 | for task in range(len(self.sq_revdeps)): |
1897 | for dep in self.sq_revdeps[task]: | 1892 | for dep in self.sq_revdeps[task]: |
1898 | self.sq_deps[dep].add(task) | 1893 | self.sq_deps[dep].add(task) |
1899 | 1894 | ||
1900 | for task in xrange(len(self.sq_revdeps)): | 1895 | for task in range(len(self.sq_revdeps)): |
1901 | if len(self.sq_revdeps[task]) == 0: | 1896 | if len(self.sq_revdeps[task]) == 0: |
1902 | self.runq_buildable[task] = 1 | 1897 | self.runq_buildable[task] = 1 |
1903 | 1898 | ||
@@ -1910,7 +1905,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1910 | sq_task = [] | 1905 | sq_task = [] |
1911 | noexec = [] | 1906 | noexec = [] |
1912 | stamppresent = [] | 1907 | stamppresent = [] |
1913 | for task in xrange(len(self.sq_revdeps)): | 1908 | for task in range(len(self.sq_revdeps)): |
1914 | realtask = self.rqdata.runq_setscene[task] | 1909 | realtask = self.rqdata.runq_setscene[task] |
1915 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]] | 1910 | fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]] |
1916 | taskname = self.rqdata.runq_task[realtask] | 1911 | taskname = self.rqdata.runq_task[realtask] |
@@ -1947,7 +1942,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
1947 | for v in valid: | 1942 | for v in valid: |
1948 | valid_new.append(sq_task[v]) | 1943 | valid_new.append(sq_task[v]) |
1949 | 1944 | ||
1950 | for task in xrange(len(self.sq_revdeps)): | 1945 | for task in range(len(self.sq_revdeps)): |
1951 | if task not in valid_new and task not in noexec: | 1946 | if task not in valid_new and task not in noexec: |
1952 | realtask = self.rqdata.runq_setscene[task] | 1947 | realtask = self.rqdata.runq_setscene[task] |
1953 | logger.debug(2, 'No package found, so skipping setscene task %s', | 1948 | logger.debug(2, 'No package found, so skipping setscene task %s', |
@@ -2024,7 +2019,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
2024 | task = None | 2019 | task = None |
2025 | if self.stats.active < self.number_tasks: | 2020 | if self.stats.active < self.number_tasks: |
2026 | # Find the next setscene to run | 2021 | # Find the next setscene to run |
2027 | for nexttask in xrange(self.stats.total): | 2022 | for nexttask in range(self.stats.total): |
2028 | if self.runq_buildable[nexttask] == 1 and self.runq_running[nexttask] != 1: | 2023 | if self.runq_buildable[nexttask] == 1 and self.runq_running[nexttask] != 1: |
2029 | if nexttask in self.unskippable: | 2024 | if nexttask in self.unskippable: |
2030 | logger.debug(2, "Setscene task %s is unskippable" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask])) | 2025 | logger.debug(2, "Setscene task %s is unskippable" % self.rqdata.get_user_idstring(self.rqdata.runq_setscene[nexttask])) |
@@ -2076,10 +2071,10 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
2076 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: | 2071 | if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not self.cooker.configuration.dry_run: |
2077 | if not self.rq.fakeworker: | 2072 | if not self.rq.fakeworker: |
2078 | self.rq.start_fakeworker(self) | 2073 | self.rq.start_fakeworker(self) |
2079 | self.rq.fakeworker.stdin.write("<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + "</runtask>") | 2074 | self.rq.fakeworker.stdin.write(b"<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + b"</runtask>") |
2080 | self.rq.fakeworker.stdin.flush() | 2075 | self.rq.fakeworker.stdin.flush() |
2081 | else: | 2076 | else: |
2082 | self.rq.worker.stdin.write("<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + "</runtask>") | 2077 | self.rq.worker.stdin.write(b"<runtask>" + pickle.dumps((fn, realtask, taskname, True, self.cooker.collection.get_file_appends(fn), None)) + b"</runtask>") |
2083 | self.rq.worker.stdin.flush() | 2078 | self.rq.worker.stdin.flush() |
2084 | 2079 | ||
2085 | self.runq_running[task] = 1 | 2080 | self.runq_running[task] = 1 |
@@ -2091,7 +2086,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute): | |||
2091 | self.rq.read_workers() | 2086 | self.rq.read_workers() |
2092 | return self.rq.active_fds() | 2087 | return self.rq.active_fds() |
2093 | 2088 | ||
2094 | #for task in xrange(self.stats.total): | 2089 | #for task in range(self.stats.total): |
2095 | # if self.runq_running[task] != 1: | 2090 | # if self.runq_running[task] != 1: |
2096 | # buildable = self.runq_buildable[task] | 2091 | # buildable = self.runq_buildable[task] |
2097 | # revdeps = self.sq_revdeps[task] | 2092 | # revdeps = self.sq_revdeps[task] |
@@ -2227,7 +2222,7 @@ class runQueuePipe(): | |||
2227 | if pipeout: | 2222 | if pipeout: |
2228 | pipeout.close() | 2223 | pipeout.close() |
2229 | bb.utils.nonblockingfd(self.input) | 2224 | bb.utils.nonblockingfd(self.input) |
2230 | self.queue = "" | 2225 | self.queue = b"" |
2231 | self.d = d | 2226 | self.d = d |
2232 | self.rq = rq | 2227 | self.rq = rq |
2233 | self.rqexec = rqexec | 2228 | self.rqexec = rqexec |
@@ -2251,7 +2246,7 @@ class runQueuePipe(): | |||
2251 | 2246 | ||
2252 | start = len(self.queue) | 2247 | start = len(self.queue) |
2253 | try: | 2248 | try: |
2254 | self.queue = self.queue + self.input.read(102400) | 2249 | self.queue = self.queue + (self.input.read(102400) or b"") |
2255 | except (OSError, IOError) as e: | 2250 | except (OSError, IOError) as e: |
2256 | if e.errno != errno.EAGAIN: | 2251 | if e.errno != errno.EAGAIN: |
2257 | raise | 2252 | raise |
@@ -2259,8 +2254,8 @@ class runQueuePipe(): | |||
2259 | found = True | 2254 | found = True |
2260 | while found and len(self.queue): | 2255 | while found and len(self.queue): |
2261 | found = False | 2256 | found = False |
2262 | index = self.queue.find("</event>") | 2257 | index = self.queue.find(b"</event>") |
2263 | while index != -1 and self.queue.startswith("<event>"): | 2258 | while index != -1 and self.queue.startswith(b"<event>"): |
2264 | try: | 2259 | try: |
2265 | event = pickle.loads(self.queue[7:index]) | 2260 | event = pickle.loads(self.queue[7:index]) |
2266 | except ValueError as e: | 2261 | except ValueError as e: |
@@ -2268,9 +2263,9 @@ class runQueuePipe(): | |||
2268 | bb.event.fire_from_worker(event, self.d) | 2263 | bb.event.fire_from_worker(event, self.d) |
2269 | found = True | 2264 | found = True |
2270 | self.queue = self.queue[index+8:] | 2265 | self.queue = self.queue[index+8:] |
2271 | index = self.queue.find("</event>") | 2266 | index = self.queue.find(b"</event>") |
2272 | index = self.queue.find("</exitcode>") | 2267 | index = self.queue.find(b"</exitcode>") |
2273 | while index != -1 and self.queue.startswith("<exitcode>"): | 2268 | while index != -1 and self.queue.startswith(b"<exitcode>"): |
2274 | try: | 2269 | try: |
2275 | task, status = pickle.loads(self.queue[10:index]) | 2270 | task, status = pickle.loads(self.queue[10:index]) |
2276 | except ValueError as e: | 2271 | except ValueError as e: |
@@ -2278,7 +2273,7 @@ class runQueuePipe(): | |||
2278 | self.rqexec.runqueue_process_waitpid(task, status) | 2273 | self.rqexec.runqueue_process_waitpid(task, status) |
2279 | found = True | 2274 | found = True |
2280 | self.queue = self.queue[index+11:] | 2275 | self.queue = self.queue[index+11:] |
2281 | index = self.queue.find("</exitcode>") | 2276 | index = self.queue.find(b"</exitcode>") |
2282 | return (end > start) | 2277 | return (end > start) |
2283 | 2278 | ||
2284 | def close(self): | 2279 | def close(self): |