diff options
Diffstat (limited to 'build.py')
-rwxr-xr-x | build.py | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -59,29 +59,30 @@ def main(): with contextlib.closing(db.cursor()) as cur: cur.execute("BEGIN IMMEDIATE;") cur.execute(""" - SELECT d.source, d.version, d.architecture, r.id + SELECT d.source, d.version, d.hostarch, r.id FROM depstate AS d JOIN buildrequests AS r - ON ? = ifnull(r.buildarch, 'amd64') - AND d.architecture = ifnull(r.hostarch, d.architecture) + ON ? = ifnull(r.buildarch, d.buildarch) + AND d.hostarch = ifnull(r.hostarch, d.hostarch) AND d.source = r.source JOIN depcheck - ON d.architecture = depcheck.architecture + ON d.hostarch = depcheck.architecture WHERE d.satisfiable = 1 AND depcheck.giveback = 0 AND NOT EXISTS (SELECT 1 FROM building WHERE d.source = building.source OR (? = building.buildarch AND - d.architecture = building.hostarch)) + d.hostarch = building.hostarch)) ORDER BY r.priority DESC, r.requesttime ASC, random() LIMIT 1;""", (buildarch, buildarch)) row = cur.fetchone() if not row: cur.execute(""" - SELECT source, version, depstate.architecture, NULL + SELECT source, version, depstate.hostarch, NULL FROM depstate JOIN depcheck - ON depstate.architecture = depcheck.architecture - WHERE satisfiable = 1 AND giveback = 0 - ORDER BY random() LIMIT 1;""") + ON depstate.hostarch = depcheck.architecture + WHERE depstate.buildarch = ? AND satisfiable = 1 + AND giveback = 0 + ORDER BY random() LIMIT 1;""", (buildarch,)) row = cur.fetchone() if not row: cur.execute("ROLLBACK;") |