shepherd: Add #:supplementary-groups.

To support the argument introduced in Shepherd 0.9.0 when defining
container-bound services.

* gnu/build/shepherd.scm (exec-command*)
(make-forkexec-constructor/container): Add '#:supplementary-groups'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Leo Nikkilä 2022-04-11 01:00:08 +03:00 committed by Ludovic Courtès
parent 8805c7eab1
commit e1f0c88ea2
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org> ;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -120,6 +121,7 @@ (define* (read-pid-file/container pid pid-file #:key (max-delay 5))
pid))) pid)))
(define* (exec-command* command #:key user group log-file pid-file (define* (exec-command* command #:key user group log-file pid-file
(supplementary-groups '())
(directory "/") (environment-variables (environ))) (directory "/") (environment-variables (environ)))
"Like 'exec-command', but first restore signal handles modified by "Like 'exec-command', but first restore signal handles modified by
shepherd (PID 1)." shepherd (PID 1)."
@ -135,6 +137,7 @@ (define* (exec-command* command #:key user group log-file pid-file
(exec-command command (exec-command command
#:user user #:user user
#:group group #:group group
#:supplementary-groups supplementary-groups
#:log-file log-file #:log-file log-file
#:directory directory #:directory directory
#:environment-variables environment-variables)) #:environment-variables environment-variables))
@ -146,6 +149,7 @@ (define* (make-forkexec-constructor/container command
(mappings '()) (mappings '())
(user #f) (user #f)
(group #f) (group #f)
(supplementary-groups '())
(log-file #f) (log-file #f)
pid-file pid-file
(pid-file-timeout 5) (pid-file-timeout 5)
@ -192,6 +196,8 @@ (define mounts
(exec-command* command (exec-command* command
#:user user #:user user
#:group group #:group group
#:supplementary-groups
supplementary-groups
#:pid-file pid-file #:pid-file pid-file
#:log-file log-file #:log-file log-file
#:directory directory #:directory directory