summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Volf <~@wolfsden.cz>2024-12-19 01:11:03 +0100
committerLudovic Courtès <ludo@gnu.org>2025-01-06 16:05:04 +0100
commitcc58b52e154a88de1ae4ff5dc7ca741cceffd87c (patch)
tree5dde45645dc505447b3315feac217f19a2f99d1c
parentc62d5e77e7c8fab0f1305432965a5e87af908aa1 (diff)
services: rootless-podman-service-type: Allow not installing podman.
Sometimes you would want to skip on actually installing the podman package in order to save disk space and bandwidth. Even without installing it globally, podman can still be fetched via guix shell when required. * gnu/services/containers.scm (package-or-#f?): New procedure. (rootless-podman-configuration)<podman>: Change type to package-or-#f. (rootless-podman-service-profile): Produce empty list if not podman package. * doc/guix.texi (Miscellaneous Services): Document the change. Change-Id: If533d913ea190558ce7e206d98ada4d805270594 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--doc/guix.texi3
-rw-r--r--gnu/services/containers.scm13
2 files changed, 11 insertions, 5 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index cc6ad13d6cc..caebe3b03c7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -41424,8 +41424,9 @@ BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
Available @code{rootless-podman-configuration} fields are:
@table @asis
-@item @code{podman} (default: @code{podman}) (type: package)
+@item @code{podman} (default: @code{podman}) (type: package-or-#f)
The Podman package that will be installed in the system profile.
+Pass @code{#f} to not install Podman.
@item @code{group-name} (default: @code{"cgroup"}) (type: string)
The name of the group that will own /sys/fs/cgroup resources. Users that
diff --git a/gnu/services/containers.scm b/gnu/services/containers.scm
index d8f533f44c0..a82fb64db3e 100644
--- a/gnu/services/containers.scm
+++ b/gnu/services/containers.scm
@@ -64,10 +64,15 @@
(define list-of-subid-ranges?
(list-of subid-range?))
+(define (package-or-#f? val)
+ (or (not val)
+ (package? val)))
+
(define-configuration/no-serialization rootless-podman-configuration
(podman
- (package podman)
- "The Podman package that will be installed in the system profile.")
+ (package-or-#f podman)
+ "The Podman package that will be installed in the system profile.
+@code{#f} can be passed to suppress the installation.")
(group-name
(string "cgroup")
"The name of the group that will own /sys/fs/cgroup resources. Users that
@@ -107,8 +112,8 @@ available for each configured user."))
(define rootless-podman-service-profile
(lambda (config)
- (list
- (rootless-podman-configuration-podman config))))
+ (or (and=> (rootless-podman-configuration-podman config) list)
+ (list))))
(define rootless-podman-service-etc
(lambda (config)