summaryrefslogtreecommitdiff
path: root/build.py
diff options
context:
space:
mode:
Diffstat (limited to 'build.py')
-rwxr-xr-xbuild.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/build.py b/build.py
index 9bfa52c..7906615 100755
--- a/build.py
+++ b/build.py
@@ -62,24 +62,28 @@ def main():
SELECT d.source, d.version, d.hostarch, r.id
FROM depstate AS d
JOIN buildrequests AS r
- ON ? = ifnull(r.buildarch, d.buildarch)
+ ON d.buildarch = ifnull(r.buildarch, d.buildarch)
AND d.hostarch = ifnull(r.hostarch, d.hostarch)
AND d.source = r.source
JOIN depcheck
- ON d.hostarch = depcheck.architecture
- WHERE d.satisfiable = 1 AND depcheck.giveback = 0
+ ON d.buildarch = depcheck.buildarch
+ AND d.hostarch = depcheck.hostarch
+ WHERE d.buildarch = ?
+ AND d.satisfiable = 1
+ AND depcheck.giveback = 0
AND NOT EXISTS (SELECT 1 FROM building
WHERE d.source = building.source
- OR (? = building.buildarch AND
+ OR (d.buildarch = building.buildarch AND
d.hostarch = building.hostarch))
ORDER BY r.priority DESC, r.requesttime ASC, random()
- LIMIT 1;""", (buildarch, buildarch))
+ LIMIT 1;""", (buildarch,))
row = cur.fetchone()
if not row:
cur.execute("""
SELECT source, version, depstate.hostarch, NULL
FROM depstate JOIN depcheck
- ON depstate.hostarch = depcheck.architecture
+ ON depstate.buildarch = depcheck.buildarch
+ AND depstate.hostarch = depcheck.hostarch
WHERE depstate.buildarch = ? AND satisfiable = 1
AND giveback = 0
ORDER BY random() LIMIT 1;""", (buildarch,))
@@ -112,8 +116,8 @@ def main():
(requestid,))
if giveback:
cur.execute("""UPDATE depcheck SET giveback = 1
- WHERE architecture = ?;""",
- (hostarch,))
+ WHERE buildarch = ? AND architecture = ?;""",
+ (buildarch, hostarch,))
finally:
with contextlib.closing(db.cursor()) as cur:
cur.execute("DELETE FROM building WHERE pid = ?;", (os.getpid(),))