diff --git a/configure.ac b/configure.ac index 7952277..a50d90b 100644 --- a/configure.ac +++ b/configure.ac @@ -35,6 +35,8 @@ guilemoduledir="${datarootdir}/guile/site/${GUILE_EFFECTIVE_VERSION}" AC_SUBST([guilemoduledir]) AC_SUBST([GUILE_EFFECTIVE_VERSION]) +AC_PATH_PROG([guix], [guix]) + AC_PATH_PROG([sqitch], [sqitch]) AC_PATH_PROG([psql], [psql]) diff --git a/guix-data-service/config.scm.in b/guix-data-service/config.scm.in index 12572c2..20323c6 100644 --- a/guix-data-service/config.scm.in +++ b/guix-data-service/config.scm.in @@ -33,6 +33,8 @@ (host . "localhost") (port . 8765) + (guix . "@guix@") + (sqitch . "@sqitch@") (sqitch-psql . "@psql@") (sqitch-plan . ,(let ((installed-plan diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index c51e91e..5ce8c4c 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -12,6 +12,7 @@ #:use-module (guix packages) #:use-module (guix derivations) #:use-module (guix build utils) + #:use-module (guix-data-service config) #:use-module (guix-data-service model package) #:use-module (guix-data-service model git-repository) #:use-module (guix-data-service model guix-revision) @@ -245,18 +246,27 @@ (if (and store-path (file-exists? store-path)) store-path - (begin - (invalidate-derivation-caches!) - (hash-clear! (@@ (guix packages) %derivation-cache)) - (let* ((guix-package (@ (gnu packages package-management) - guix)) - (derivation (package-derivation store guix-package))) - (build-derivations store (list derivation)) + (let ((config-guix (%config 'guix))) + (if (and (file-exists? config-guix) + (string-prefix? "/gnu/store/" config-guix)) + (begin + (set! store-path + (dirname + (dirname + (%config 'guix)))) + store-path) + (begin + (invalidate-derivation-caches!) + (hash-clear! (@@ (guix packages) %derivation-cache)) + (let* ((guix-package (@ (gnu packages package-management) + guix)) + (derivation (package-derivation store guix-package))) + (build-derivations store (list derivation)) - (let ((new-store-path - (derivation->output-path derivation))) - (set! store-path new-store-path) - new-store-path))))))) + (let ((new-store-path + (derivation->output-path derivation))) + (set! store-path new-store-path) + new-store-path))))))))) (define (nss-certs-store-path store) (let* ((nss-certs-package (@ (gnu packages certs)