civodul pushed a commit to branch master
in repository guix.
commit a75b2d614a405b7ba11797377d6eb140519b84ee
Author: Giacomo Leidi <[email protected]>
AuthorDate: Mon Dec 23 15:33:20 2024 +0100
services: rootless-podman: Fix PATH lookup for Shepherd services.
One-shot Shepherd services required to correctly setup Podman in the
Guix System, are failing to find executables upon boot. This patch
changes the executable references to absolute paths to avoid PATH
lookup.
* gnu/services/containers.scm (cgroups-fs-owner-entrypoint): Hardcode
bash path;
(rootless-podman-cgroups-fs-owner-service): Ditto;
(rootless-podman-fs-entrypoint): Hardcode mount path.
Change-Id: Id6a27cadf51326ce57af93f57809b77e28dbeaef
Signed-off-by: Ludovic Courtès <[email protected]>
---
gnu/services/containers.scm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gnu/services/containers.scm b/gnu/services/containers.scm
index 03f0649c0d..d8f533f44c 100644
--- a/gnu/services/containers.scm
+++ b/gnu/services/containers.scm
@@ -17,6 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services containers)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages containers)
#:use-module (gnu packages file-systems)
#:use-module (gnu services)
@@ -134,7 +135,7 @@ available for each configured user."))
(rootless-podman-configuration-group-name config))
(program-file "cgroups2-fs-owner-entrypoint"
#~(system*
- "bash" "-c"
+ (string-append #+bash-minimal "/bin/bash") "-c"
(string-append "echo Setting /sys/fs/cgroup "
"group ownership to " #$group " && chown -v "
"root:" #$group " /sys/fs/cgroup && "
@@ -166,7 +167,7 @@ available for each configured user."))
(define cgroups-limits-entrypoint
(program-file "cgroups2-limits-entrypoint"
#~(system*
- "bash" "-c"
+ (string-append #+bash-minimal "/bin/bash") "-c"
(string-append "echo Setting cgroups v2 limits && "
"echo +cpu +cpuset +memory +pids"
" >>
/sys/fs/cgroup/cgroup.subtree_control"))))
@@ -194,7 +195,7 @@ pids.")
(define rootless-podman-shared-root-fs-entrypoint
(program-file "rootless-podman-shared-root-fs-entrypoint"
#~(system*
- "mount" "--make-shared" "/")))
+ "/run/privileged/bin/mount" "--make-shared" "/")))
(define (rootless-podman-shared-root-fs-service config)
(shepherd-service (provision '(rootless-podman-shared-root-fs))