gnu: guix-configuration: Improve offload build-machines.
It’s currently difficult to programmatically add a build-machine, because the `service-extension' mechanism is the only facility which can do that. It relies on the `guix-service-type', ala: (service-extension guix-service-type (guix-extension (build-machines (list ...)))) ...but `guix-service-type' is already instantiated as part of `%base-services', and replacing it may lose other configuration, like substitute servers and authorized keys. Additionally, a default value of `#f' for the build-machines field requires guarding uses of the field with: (or (guix-build-machines config) '()) Changing the default to be the empty list avoids that. One can now add build-machines with code such as: (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (authorized-keys (cons %build-machine-key (guix-configuration-authorized-keys config))) (build-machines (cons #~(build-machine ...) (guix-configuration-build-machines config)))))) * gnu/services/base.scm (guix-configuration): Rename `guix-build-machines' to `guix-configuration-build-machines' and export it. Change the default from `#f' to the empty list. * gnu/services/base.scm (guix-activation): Update the build-machines test and reverse the conditions. Change-Id: I6780c6a5579fd9d4b4f22ee2b2bf7ba7a0454407 Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
dde37247fa
commit
ef8ab6ab66
|
@ -212,6 +212,7 @@
|
|||
guix-configuration-guix
|
||||
guix-configuration-build-group
|
||||
guix-configuration-build-accounts
|
||||
guix-configuration-build-machines
|
||||
guix-configuration-authorize-key?
|
||||
guix-configuration-authorized-keys
|
||||
guix-configuration-use-substitutes?
|
||||
|
@ -1848,8 +1849,8 @@ archive' public keys, with GUIX."
|
|||
(default #f))
|
||||
(tmpdir guix-tmpdir ;string | #f
|
||||
(default #f))
|
||||
(build-machines guix-build-machines ;list of gexps | #f
|
||||
(default #f))
|
||||
(build-machines guix-configuration-build-machines ;list of gexps | '()
|
||||
(default '()))
|
||||
(environment guix-configuration-environment ;list of strings
|
||||
(default '())))
|
||||
|
||||
|
@ -2044,10 +2045,10 @@ proxy of 'guix-daemon'...~%")
|
|||
#$(and channels (install-channels-file channels))
|
||||
|
||||
;; ... and /etc/guix/machines.scm.
|
||||
#$(if (guix-build-machines config)
|
||||
#$(if (null? (guix-configuration-build-machines config))
|
||||
#~#f
|
||||
(guix-machines-files-installation
|
||||
#~(list #$@(guix-build-machines config)))
|
||||
#~#f))))
|
||||
#~(list #$@(guix-configuration-build-machines config)))))))
|
||||
|
||||
(define-record-type* <guix-extension>
|
||||
guix-extension make-guix-extension
|
||||
|
@ -2093,9 +2094,9 @@ proxy of 'guix-daemon'...~%")
|
|||
(substitute-urls (append (guix-extension-substitute-urls extension)
|
||||
(guix-configuration-substitute-urls config)))
|
||||
(build-machines
|
||||
(and (or (guix-build-machines config)
|
||||
(and (or (guix-configuration-build-machines config)
|
||||
(pair? (guix-extension-build-machines extension)))
|
||||
(append (or (guix-build-machines config) '())
|
||||
(append (guix-configuration-build-machines config)
|
||||
(guix-extension-build-machines extension))))
|
||||
(chroot-directories
|
||||
(append (guix-extension-chroot-directories extension)
|
||||
|
|
Reference in New Issue