From d23d8fcee99e7b127f9e649925caca9cf0d36e76 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 27 May 2023 19:29:33 +0200 Subject: services: herd: "Resolve" transient services only when needed. This allows us to get rid of the "eval root" actions, which in turn would lead to confusing "Evaluating user expression" messages. Fixes . * gnu/services/herd.scm (resolve-transients): In 'values', avoid 'eval-there' call when UNRESOLVED is empty. --- gnu/services/herd.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'gnu/services') diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index 48594015fc..c24a403935 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -242,12 +242,13 @@ service is transient." ;; for all of SERVICES. (let* ((unresolved (filter (compose unspecified? live-service-transient?) services)) - (values (or (eval-there - `(and (defined? 'transient?) ;shepherd >= 0.9.0 - (map (compose transient? lookup-running) - ',(map (compose first - live-service-provision) - unresolved)))) + (values (or (and (pair? unresolved) + (eval-there + `(and (defined? 'transient?) ;shepherd >= 0.9.0 + (map (compose transient? lookup-running) + ',(map (compose first + live-service-provision) + unresolved))))) (make-list (length unresolved) #f))) (resolved (map (lambda (unresolved transient?) (cons unresolved -- cgit 1.4.1