diff options
Diffstat (limited to 'guix-data-service/jobs/load-new-guix-revision.scm')
-rw-r--r-- | guix-data-service/jobs/load-new-guix-revision.scm | 34 |
1 files changed, 22 insertions, 12 deletions
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 ((new-store-path - (derivation->output-path derivation))) - (set! store-path new-store-path) - new-store-path))))))) + (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))))))))) (define (nss-certs-store-path store) (let* ((nss-certs-package (@ (gnu packages certs) |