diff --git a/gnu/local.mk b/gnu/local.mk index 686595cd58..b0196c7313 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1086,8 +1086,6 @@ dist_patch_DATA = \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/shadow-CVE-2018-7169.patch \ - %D%/packages/patches/shepherd-close-fds.patch \ - %D%/packages/patches/shepherd-herd-status-sorted.patch \ %D%/packages/patches/shishi-fix-libgcrypt-detection.patch \ %D%/packages/patches/slim-session.patch \ %D%/packages/patches/slim-config.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 7a9f79ede0..6ed1c322fa 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -159,16 +159,14 @@ and provides a \"top-like\" mode (monitoring).") (define-public shepherd (package (name "shepherd") - (version "0.3.2") + (version "0.4.0") (source (origin (method url-fetch) - (uri (string-append "ftp://alpha.gnu.org/gnu/dmd/shepherd-" + (uri (string-append "https://alpha.gnu.org/gnu/shepherd/shepherd-" version ".tar.gz")) (sha256 (base32 - "174q1qg7yg6w1hfvlfv720hr6hid4h5xzw15y3ycfpspllzldhcb")) - (patches (search-patches "shepherd-close-fds.patch" - "shepherd-herd-status-sorted.patch")))) + "1lgmsbxn8i8xdasxzkdp2cml75n128pplw6icvmspl6s0n9xmw8n")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var"))) diff --git a/gnu/packages/patches/shepherd-close-fds.patch b/gnu/packages/patches/shepherd-close-fds.patch deleted file mode 100644 index 2078b15265..0000000000 --- a/gnu/packages/patches/shepherd-close-fds.patch +++ /dev/null @@ -1,36 +0,0 @@ -commit 3e346a2a84b099766ea8a3a4a4549f6172483062 -Author: Ludovic Courtès -Date: Sun Dec 3 22:30:03 2017 +0100 - - service: In 'exec-command', close open ports before 'execl'. - - This gets rid of annoying "Bad file descriptor" warnings from shepherd. - - * modules/shepherd/service.scm (exec-command): In 'loop', invoke - 'close-port' and the ports returned by (fdes->ports i). - -diff --git a/modules/shepherd/service.scm b/modules/shepherd/service.scm -index b2d8bc5..0ad28a0 100644 ---- a/modules/shepherd/service.scm -+++ b/modules/shepherd/service.scm -@@ -1,5 +1,5 @@ - ;; service.scm -- Representation of services. --;; Copyright (C) 2013, 2014, 2015, 2016 Ludovic Courtès -+;; Copyright (C) 2013, 2014, 2015, 2016, 2017 Ludovic Courtès - ;; Copyright (C) 2002, 2003 Wolfgang Järling - ;; Copyright (C) 2014 Alex Sassmannshausen - ;; Copyright (C) 2016 Alex Kost -@@ -744,6 +744,14 @@ false." - - (let loop ((i 3)) - (when (< i max-fd) -+ ;; First try to close any ports associated with file descriptor I. -+ ;; Otherwise the finalization thread might get around to closing -+ ;; those ports eventually, which will raise an EBADF exception (on -+ ;; 2.2), leading to messages like "error in the finalization -+ ;; thread: Bad file descriptor". -+ (for-each (lambda (port) -+ (catch-system-error (close-port port))) -+ (fdes->ports i)) - (catch-system-error (close-fdes i)) - (loop (+ i 1))))) diff --git a/gnu/packages/patches/shepherd-herd-status-sorted.patch b/gnu/packages/patches/shepherd-herd-status-sorted.patch deleted file mode 100644 index c6b9d870eb..0000000000 --- a/gnu/packages/patches/shepherd-herd-status-sorted.patch +++ /dev/null @@ -1,79 +0,0 @@ -From cc9564586729a5bb90dd5d2722b543fdde9ab821 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= -Date: Sun, 4 Feb 2018 21:56:36 +0100 -Subject: [PATCH] herd: 'herd status' now sorts the result. - -Partly fixes . -Reported by Mark H Weaver . - -Previously 'tests/basic.sh' could occasionally fail on: - - test "`$herd status`" == "$pristine_status" - -because the order of stopped services were not always the same. Indeed, -those services come from 'service-list' on the shepherd side, which uses -'hash-fold' to traverse the service hash table, and the traversal order -of 'hash-fold' is undefined. - -* modules/shepherd/scripts/herd.scm (display-status-summary)[service -+;; Copyright (C) 2013, 2014, 2016, 2018 Ludovic Courtès - ;; Copyright (C) 2002, 2003 Wolfgang Jährling - ;; - ;; This file is part of the GNU Shepherd. -@@ -46,13 +46,17 @@ of pairs." - - (define (display-status-summary services) - "Display a summary of the status of all of SERVICES." -+ (define (servicestring (service-canonical-name service1)) -+ (symbol->string (service-canonical-name service2)))) -+ - (define (display-services header bullet services) - (unless (null? services) - (display header) - (for-each (lambda (service) - (format #t " ~a ~a~%" bullet - (service-canonical-name service))) -- services))) -+ (sort services service -+;; Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès - ;; Copyright (C) 2002, 2003 Wolfgang Järling - ;; Copyright (C) 2014 Alex Sassmannshausen - ;; Copyright (C) 2016 Alex Kost -@@ -949,7 +949,8 @@ Return #f if service is not found." - %services)) - - (define (service-list) -- "Return the list of services currently defined." -+ "Return the list of services currently defined. Note: The order of the list -+returned in unspecified." - (hash-fold (lambda (name services result) - (let ((service (lookup-canonical-service name services))) - (if service --- -2.16.1 - diff --git a/gnu/services/admin.scm b/gnu/services/admin.scm index 95d055f83d..aaf0b904fd 100644 --- a/gnu/services/admin.scm +++ b/gnu/services/admin.scm @@ -105,7 +105,7 @@ read))) (kill pid SIGHUP)))) (log-rotation - (files '("/var/log/shepherd.log" "/var/log/guix-daemon.log"))))) + (files '("/var/log/guix-daemon.log"))))) (define (log-rotation->config rotation) "Return a string-valued gexp representing the rottlog configuration snippet