We are glad to announce version 1.0.2 of the Shepherd, the second bug-fix release in the 1.0.x series.
Check out the web site to learn more about the Shepherd 1.0.x series: https://gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/ • About The Shepherd is a service manager written in Guile that looks after the herd of daemons running on the system. It can be used as an “init” system (PID 1) and also by unprivileged users to manage per-user daemons—e.g., gpg-agent, tor, privoxy. It supports several daemon startup mechanisms, including inetd, systemd-style socket activation, and timers. The Shepherd is configured in Guile Scheme and can be extended in the same language. It builds on a simple memory-safe and callback-free programming model. The Shepherd is developed jointly with the Guix project; it is used as the init system of Guix System and service manager of Guix Home. https://www.gnu.org/software/shepherd/ • Download Here are the compressed sources and a GPG detached signature: https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.2.tar.gz https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.2.tar.gz.sig Here are the SHA1 and SHA256 checksums: 2af0ab3c090ae39c7a21e2b1aa550938b8299d64 shepherd-1.0.2.tar.gz df4bac04b4b0476fa8f9ed138292ac2cc54b4304b5eefd859ed4892d4f9924bf shepherd-1.0.2.tar.gz Verify the integrity of the tarball with ‘cksum -a sha256 --check’. Authenticate the code by downloading the corresponding .sig file: gpg --verify shepherd-1.0.2.tar.gz.sig The signing key can be retrieved with: gpg --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 As a last resort to find the key, you can try the official GNU keyring: wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg gpg --keyring gnu-keyring.gpg --verify shepherd-1.0.2.tar.gz.sig This tarball was bootstrapped with the following tools: Autoconf 2.71 Automake 1.16.5 Gettext 0.21 Makeinfo 7.1.1 It is bit-for-bit reproducible from a checkout of the ‘v1.0.2’ tag of the Git repository. • Changes since version 1.0.1 ** ‘daemonize’ action preserves replacement bindings for ‘sleep’ etc. (<https://issues.guix.gnu.org/75460>) The shepherd process replaces bindings for ‘sleep’, ‘system*’, ‘system’, and other core Guile procedures with cooperative variants thereof—for instance, it replaces ‘sleep’ with Fibers’ own ‘sleep’ procedure, which does not block. Previously, the ‘daemonize’ action would remove those binding replacements, which could lead to blocking in shepherd, with symptoms such as ‘herd status’ not responding. This is now fixed. ** Gracefully handle failure to create a service’s log file (<https://issues.guix.gnu.org/76130>) If the file passed as #:log-file to ‘make-forkexec-constructor’ & co. could not be created, ‘herd status’ and similar commands would hang. This is now fixed in two ways: by attempting to create the parent directory of the log file if it does not exist, and by reporting the failure and keeping the service ‘stopped’ in other cases. ** Timers honor daylight saving time (DST) changes (<https://issues.guix.gnu.org/75622>) Previously, timers would always sleep a fixed amount of time between two consecutive calendar events—e.g., 24h between two occurrences of a daily event—regardless of whether both events occur in the same timezone or DST setting. Timers now correctly honor DST changes—e.g., sleeping for 25h between two daily events if the first one occurs on CEST (Central European Summer Time, or UTC+2) and the second one occurs on CET (Central European Time, or UTC+1). ** ‘cron-string->calendar-event’ can now interpret things like “*/2” (<https://issues.guix.gnu.org/75843>) Until now, ‘cron-string->calendar-event’ would fail to interpret specifications like "0 */2 * * *" (meaning: every two hours). This is now fixed. ** ‘cron-string->calendar-event’ properly interprets stars for hours (<https://issues.guix.gnu.org/75836>) Previously, using a star for the hours in a cron specification such as "* * * * *" (meaning: every minute) would lead ‘cron-string->calendar-event’ to erroneously report an error. This is now fixed. ** ‘timer-service’ and ‘transient-service’ now honor #:requirement Previously they would both ignore it, returning a service that depends on nothing but the root service (which is probably acceptable most of the time). ** ‘default-message-destination-procedure’ is now exported That procedure of (shepherd service system-log) was documented but not exported. This is now fixed. ** Translations This version is fully translated in German, Romanian, Slovak, Swedish, and Ukranian; it is partially translated in seven other languages. Check out https://translationproject.org/domain/shepherd.html to help translate it into your language! Please report bugs to bug-g...@gnu.org. Join guix-devel@gnu.org for discussions. Ludovic, on behalf of the Shepherd herd.
signature.asc
Description: PGP signature