summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-03-24 19:22:39 +0100
committerLudovic Courtès <ludo@gnu.org>2023-03-26 23:24:23 +0200
commit547965aa27b6a09cadf42130b7ec7db3f1aee61f (patch)
tree78c77f883cfff82f1395d2cb4cf5796a52dd59dd /gnu
parent67a7eaa13dcd33c61ff0ec71b1f5e38c65f439ad (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.scm24
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