diff options
author | Ludovic Courtès <ludo@gnu.org> | 2023-03-24 19:22:39 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2023-03-26 23:24:23 +0200 |
commit | 547965aa27b6a09cadf42130b7ec7db3f1aee61f (patch) | |
tree | 78c77f883cfff82f1395d2cb4cf5796a52dd59dd /gnu | |
parent | 67a7eaa13dcd33c61ff0ec71b1f5e38c65f439ad (diff) |
services: herd: Remove workaround for Shepherd < 0.5.0.
* gnu/services/herd.scm (load-services/safe): Remove workaround for
Shepherd < 0.5.0, released in 2018.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/services/herd.scm | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/gnu/services/herd.scm b/gnu/services/herd.scm index a7c845b4b0..e489ce2b9a 100644 --- a/gnu/services/herd.scm +++ b/gnu/services/herd.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016-2019, 2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016-2019, 2022-2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -284,22 +284,12 @@ returns a shepherd <service> object." (define (load-services/safe files) "This is like 'load-services', but make sure only the subset of FILES that -can be safely reloaded is actually reloaded. - -This is done to accommodate the Shepherd < 0.15.0 where services lacked the -'replacement' slot, and where 'register-services' would throw an exception -when passed a service with an already-registered name." - (eval-there `(let* ((services (map primitive-load ',files)) - (slots (map slot-definition-name - (class-slots <service>))) - (can-replace? (memq 'replacement slots))) - (define (registered? service) - (not (null? (lookup-services (canonical-name service))))) - - (apply register-services - (if can-replace? - services - (remove registered? services)))))) +can be safely reloaded is actually reloaded." + (eval-there `(let ((services (map primitive-load ',files))) + ;; Since version 0.5.0 of the Shepherd, registering a service + ;; that has the same name as an already-registered service + ;; makes it a "replacement" of that previous service. + (apply register-services services)))) (define* (start-service name #:optional (arguments '())) (invoke-action name 'start arguments |