guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

22/22: gnu: guix-configuration: Improve offload build-machines.


From: guix-commits
Subject: 22/22: gnu: guix-configuration: Improve offload build-machines.
Date: Sat, 4 May 2024 13:16:04 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit ef8ab6ab66c4d629699d175938ef1912941d4dce
Author: Ian Eure <ian@retrospec.tv>
AuthorDate: Sun Apr 7 12:20:59 2024 -0700

    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>
---
 gnu/services/base.scm | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 3f912225a0..5cf6083821 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]