GNU bug report logs -
#73494
[PATCH 0/2] tmpfs /run.
Previous Next
Full log
Message #95 received at 73494 <at> debbugs.gnu.org (full text, mbox):
Use ‘invoke’ for backtraces and avoid changing environment.
* gnu/services.scm (activation-script): Execute activation scripts in
‘invoke’.
Warn about failed activation scripts.
Change-Id: I89be31433fbb46d0c4a9dc6115ab167910840b6f
---
gnu/services.scm | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/gnu/services.scm b/gnu/services.scm
index 7805cae971..3a511a42e5 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -690,15 +690,28 @@ (define* (activation-service->script service)
(define (activation-script gexps)
"Return the system's activation script, which evaluates GEXPS."
(define actions
- (map (cut program-file "activate-service.scm" <>) gexps))
+ (map (lambda (action)
+ (program-file "activate-service.scm"
+ (with-imported-modules (source-module-closure
+ '((gnu build activation)
+ (guix build utils)))
+ #~(begin
+ (use-modules (gnu build activation)
+ (guix build utils))
+ #$action))))
+ gexps))
(program-file "activate.scm"
(with-imported-modules (source-module-closure
'((gnu build activation)
- (guix build utils)))
+ (guix build utils)
+ (guix diagnostics)
+ (guix i18n)))
#~(begin
(use-modules (gnu build activation)
- (guix build utils))
+ (guix build utils)
+ (guix diagnostics)
+ (guix i18n))
(mkdir-p "/var/run")
;; Make sure the user accounting database exists. If it
@@ -717,8 +730,17 @@ (define (activation-script gexps)
(activate-current-system)
;; Run the services' activation snippets.
- ;; TODO: Use 'load-compiled'.
- (for-each primitive-load '#$actions)))))
+ (for-each (lambda (action)
+ ;; Don't block activation process when one
+ ;; action fails.
+ (catch #t
+ (lambda ()
+ (invoke action))
+ (lambda _
+ (warning
+ (G_ "failed to activate '~a'.~%")
+ action))))
+ '#$actions)))))
(define (gexps->activation-gexp gexps)
"Return a gexp that runs the activation script containing GEXPS."
--
2.48.1
This bug report was last modified 34 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.