From 6f9d844d2ece7b369d17bbe678978462425f869c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 20 Mar 2024 18:48:38 +0100 Subject: services: shepherd: Load each service file in a fresh module. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . * gnu/home/services/shepherd.scm (home-shepherd-configuration-file)[config]: Define ‘make-user-module’. Call ‘load’ in ‘save-module-excursion’. * gnu/services/shepherd.scm (shepherd-configuration-file): Likewise. Reported-by: Attila Lendvai Change-Id: I7df11c81b5bbbf2b24a8daa02502a000e0826fe0 --- gnu/home/services/shepherd.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'gnu/home/services/shepherd.scm') diff --git a/gnu/home/services/shepherd.scm b/gnu/home/services/shepherd.scm index 176f4575cb..962e633618 100644 --- a/gnu/home/services/shepherd.scm +++ b/gnu/home/services/shepherd.scm @@ -77,7 +77,19 @@ as shepherd package." (use-modules (srfi srfi-34) (system repl error-handling)) - (register-services (map load '#$files)) + (define (make-user-module) + ;; Copied from (shepherd support), where it's private. + (let ((m (make-fresh-user-module))) + (module-use! m (resolve-interface '(shepherd service))) + m)) + + (register-services + (map (lambda (file) + (save-module-excursion + (lambda () + (set-current-module (make-user-module)) + (load file)))) + '#$files)) #$@(if daemonize? `((action 'root 'daemonize)) -- cgit v1.2.3