From 27f00963d31636eb94bb7f331989827f4782de78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 9 Aug 2021 12:28:17 +0200 Subject: [PATCH] self: Use default config variable values for derivations. The value of %localstatedir, %storedir, and %sysconfdir is known to have no impact on the compilation of the Guix modules. Thus, explicitly build those modules against a (guix config) module that uses all the default values. That way, a Guix installation that uses different config values can still benefit from substitutes. Reported by Ricardo Wurmus. * guix/self.scm (%default-config-variables): New variable. (make-config.scm): Add #:config-variables and honor it. (compiled-guix)[*core-modules*]: Pass #:config-variables to 'make-config.scm'. --- guix/self.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index 130f5d3492..79d93357a2 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -872,7 +872,9 @@ itself." ;; rebuilt when the version changes, which in turn means we ;; can have substitutes for it. #:extra-modules - `(((guix config) => ,(make-config.scm))) + `(((guix config) + => ,(make-config.scm + #:config-variables %default-config-variables))) ;; (guix man-db) is needed at build-time by (guix profiles) ;; but we don't need to compile it; not compiling it allows @@ -1084,10 +1086,17 @@ itself." (variables rest ...)))))) (variables %localstatedir %storedir %sysconfdir))) +(define %default-config-variables + ;; Default values of the configuration variables above. + `((%localstatedir . "/var") + (%storedir . "/gnu/store") + (%sysconfdir . "/etc"))) + (define* (make-config.scm #:key gzip xz bzip2 (package-name "GNU Guix") (package-version "0") (channel-metadata #f) + (config-variables %config-variables) (bug-report-address "bug-guix@gnu.org") (home-page-url "https://guix.gnu.org")) @@ -1117,7 +1126,7 @@ itself." #$@(map (match-lambda ((name . value) #~(define-public #$name #$value))) - %config-variables) + config-variables) (define %store-directory (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path)