diff --git a/buildorder.py b/buildorder.py index 273a10d57..a515f1644 100755 --- a/buildorder.py +++ b/buildorder.py @@ -151,23 +151,21 @@ def buildorder(): pkg = pkg_queue.pop(0) if pkg.name in visited: continue - visited.add(pkg.name) # print("Processing {}:".format(pkg.name), pkg.needed_by) - + visited.add(pkg.name) build_order.append(pkg) for other_pkg in sorted(pkg.needed_by, key=lambda p: p.name): - # Mark this package as done + # Remove this pkg from deps remaining_deps[other_pkg.name].discard(pkg.name) - # ... and all its subpackages remaining_deps[other_pkg.name].difference_update( [subpkg.name for subpkg in pkg.subpkgs] ) - if not remaining_deps[other_pkg.name]: # all deps were pruned? - pkg_queue.append(other_pkg) + if not remaining_deps[other_pkg.name]: # all deps were already appended? + pkg_queue.append(other_pkg) # should be processed return build_order