diff options
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 20 | ||||
-rw-r--r-- | guix-build-coordinator/datastore/sqlite.scm | 5 |
2 files changed, 16 insertions, 9 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index bfbea73..1e54563 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -99,15 +99,17 @@ derivation-file)))) (define (build-for-output-already-exists?) - (any - (lambda (output-details) - (let ((builds-for-output - (datastore-list-builds-for-output - datastore - (assq-ref output-details 'output)))) - - (not (null? builds-for-output)))) - (datastore-find-derivation-outputs datastore derivation-file))) + (let ((system (datastore-find-derivation-system datastore + derivation-file))) + (any + (lambda (output-details) + (let ((builds-for-output + (datastore-list-builds-for-output-and-system + datastore + (assq-ref output-details 'output) + system))) + (not (null? builds-for-output)))) + (datastore-find-derivation-outputs datastore derivation-file)))) (if (and ignore-if-build-for-derivation-exists? (build-for-derivation-exists?)) diff --git a/guix-build-coordinator/datastore/sqlite.scm b/guix-build-coordinator/datastore/sqlite.scm index 801f895..b4c40a6 100644 --- a/guix-build-coordinator/datastore/sqlite.scm +++ b/guix-build-coordinator/datastore/sqlite.scm @@ -295,6 +295,8 @@ UNION ) SELECT DISTINCT related_derivations.name FROM related_derivations +INNER JOIN derivations + ON related_derivations.name = derivations.name INNER JOIN derivation_outputs ON related_derivations.name = derivation_outputs.derivation_name WHERE related_derivations.name != :derivation @@ -303,6 +305,9 @@ WHERE related_derivations.name != :derivation FROM derivation_outputs INNER JOIN builds ON derivation_outputs.derivation_name = builds.derivation_name + INNER JOIN derivations AS build_derivations + ON builds.derivation_name = build_derivations.name + WHERE build_derivations.system = derivations.system ) "))) |