From ab432800d362b61ac1fce99b98c5b2bdccdfd293 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 4 Jul 2020 11:24:57 +0100 Subject: Don't skip inserting builds where the system doesn't match Previously, some builds where skipped for things like fixed output derivations. If a aarch64-linux build already existed, the x86_64-linux build for the same output wouldn't be created. This has delayed some builds, because they're unnecessarily waiting. --- guix-build-coordinator/coordinator.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'guix-build-coordinator/coordinator.scm') 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?)) -- cgit v1.2.3