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'.
parent
30289f4d46
commit
27f00963d3
|
@ -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)
|
||||
|
|
Reference in New Issue