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