summary refs log tree commit diff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-05-09 16:16:54 +0100
committerChristopher Baines <mail@cbaines.net>2023-05-09 16:19:21 +0100
commita759cbffafbf67b3a03c80b5bdbe3f3478affc50 (patch)
tree051385d49599571b9baeec54fda0d7f06ec89a37
parentc1ffe2f21bd1b9ba6bd527bbabe130144a69af71 (diff)
downloadguix-a759cbffafbf67b3a03c80b5bdbe3f3478affc50.tar.gz
services: guix-build-coordinator: Support extra environment vars.
I'm looking at this because I need to do some debugging of Guile's GC, and
there are some useful environment variables for that, but it should be
generally useful.

* gnu/services/guix.scm (guix-build-coordinator-configuration-extra-environment-variables):
New procedure.
(guix-build-coordinator-shepherd-services): Pass the environment variables to
the shepherd.
* doc/guix.texi (Guix Services): Document it.
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/services/guix.scm12
2 files changed, 12 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index ca0d09a0dc..c69fde646d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -37222,6 +37222,9 @@ for the hook and the value is the number of threads to run.
 @item @code{guile} (default: @code{guile-3.0-latest})
 The Guile package with which to run the Guix Build Coordinator.
 
+@item @code{extra-environment-variables} (default: @var{'()})
+Extra environment variables to set via the shepherd service.
+
 @end table
 @end deftp
 
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 5aa8f8f1a2..b5740892c4 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -48,6 +48,7 @@
             guix-build-coordinator-configuration-hooks
             guix-build-coordinator-configuration-parallel-hooks
             guix-build-coordinator-configuration-guile
+            guix-build-coordinator-configuration-extra-environment-variables
 
             guix-build-coordinator-service-type
 
@@ -171,7 +172,10 @@
   (parallel-hooks                  guix-build-coordinator-configuration-parallel-hooks
                                    (default '()))
   (guile                           guix-build-coordinator-configuration-guile
-                                   (default guile-3.0-latest)))
+                                   (default guile-3.0-latest))
+  (extra-environment-variables
+   guix-build-coordinator-configuration-extra-environment-variables
+   (default '())))
 
 (define-record-type* <guix-build-coordinator-agent-configuration>
   guix-build-coordinator-agent-configuration
@@ -331,7 +335,8 @@
              allocation-strategy
              hooks
              parallel-hooks
-             guile)
+             guile
+             extra-environment-variables)
     (list
      (shepherd-service
       (documentation "Guix Build Coordinator")
@@ -362,7 +367,8 @@
                      `(,(string-append
                          "GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
                        "LC_ALL=en_US.utf8"
-                       "PATH=/run/current-system/profile/bin") ; for hooks
+                       "PATH=/run/current-system/profile/bin" ; for hooks
+                       #$@extra-environment-variables)
                      #:log-file "/var/log/guix-build-coordinator/coordinator.log")
                     args))))
       (stop #~(make-kill-destructor))