mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
self: Make (guix config) generation really stateless.
Previously the %CONFIG-VARIABLES list would be generated based on what the current (guix config) contains. Thus, it would include '%guix-register-program', which we recently removed, because existing (guix config) most likely contained that variable. Since its value could differ from machine to machine, the build farm could be building a different config.scm, thereby preventing people from getting substitutes. * guix/self.scm (%config-variables): Turn into a white list instead of taking all the remaining variables from the current (guix config). * build-aux/build-self.scm (%config-variables): Likewise.
This commit is contained in:
parent
870677cbb8
commit
45779fa676
2 changed files with 21 additions and 24 deletions
|
@ -63,17 +63,16 @@ (define %persona-variables
|
|||
%guix-home-page-url))
|
||||
|
||||
(define %config-variables
|
||||
;; (guix config) variables corresponding to Guix configuration (storedir,
|
||||
;; localstatedir, etc.)
|
||||
(sort (filter pair?
|
||||
(module-map (lambda (name var)
|
||||
(and (not (memq name %dependency-variables))
|
||||
(not (memq name %persona-variables))
|
||||
(cons name (variable-ref var))))
|
||||
(resolve-interface '(guix config))))
|
||||
(lambda (name+value1 name+value2)
|
||||
(string<? (symbol->string (car name+value1))
|
||||
(symbol->string (car name+value2))))))
|
||||
;; (guix config) variables corresponding to Guix configuration.
|
||||
(letrec-syntax ((variables (syntax-rules ()
|
||||
((_)
|
||||
'())
|
||||
((_ variable rest ...)
|
||||
(cons `(variable . ,variable)
|
||||
(variables rest ...))))))
|
||||
(variables %config-directory %localstatedir %state-directory
|
||||
%store-database-directory %store-directory
|
||||
%storedir %sysconfdir %system)))
|
||||
|
||||
(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2
|
||||
(package-name "GNU Guix")
|
||||
|
|
|
@ -26,9 +26,8 @@ (define-module (guix self)
|
|||
#:use-module (guix discovery)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix sets)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module ((guix build utils) #:select (find-files))
|
||||
#:use-module ((guix build compile) #:select (%lightweight-optimizations))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
|
@ -666,17 +665,16 @@ (define %persona-variables
|
|||
%guix-home-page-url))
|
||||
|
||||
(define %config-variables
|
||||
;; (guix config) variables corresponding to Guix configuration (storedir,
|
||||
;; localstatedir, etc.)
|
||||
(sort (filter pair?
|
||||
(module-map (lambda (name var)
|
||||
(and (not (memq name %dependency-variables))
|
||||
(not (memq name %persona-variables))
|
||||
(cons name (variable-ref var))))
|
||||
(resolve-interface '(guix config))))
|
||||
(lambda (name+value1 name+value2)
|
||||
(string<? (symbol->string (car name+value1))
|
||||
(symbol->string (car name+value2))))))
|
||||
;; (guix config) variables corresponding to Guix configuration.
|
||||
(letrec-syntax ((variables (syntax-rules ()
|
||||
((_)
|
||||
'())
|
||||
((_ variable rest ...)
|
||||
(cons `(variable . ,variable)
|
||||
(variables rest ...))))))
|
||||
(variables %config-directory %localstatedir %state-directory
|
||||
%store-database-directory %store-directory
|
||||
%storedir %sysconfdir %system)))
|
||||
|
||||
(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2
|
||||
(package-name "GNU Guix")
|
||||
|
|
Loading…
Reference in a new issue