We are glad to announce version 1.0.9 of the Shepherd, the next 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://shepherding.services/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://shepherding.services/ • Download Here are the compressed sources and a GPG detached signature: https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.9.tar.gz https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.9.tar.gz.sig Here are the SHA1 and SHA256 checksums: 4885c51e6a1a1c81ee165fa0264ddfbbb15aa8b5 shepherd-1.0.9.tar.gz e488c585c8418df6e8f476dca81b72910f337c9cd3608fb467de5260004000d6 shepherd-1.0.9.tar.gz Authenticate the code by downloading the corresponding .sig file: gpg --verify shepherd-1.0.9.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.9.tar.gz.sig It is bit-for-bit reproducible from a checkout of the ‘v1.0.9’ tag of the Git repository. • Changes since version 1.0.8 ** ‘system-log’ creates parent directories of log files (<https://codeberg.org/shepherd/shepherd/issues/82>) If the ‘#:message-destination’ procedure of ‘system-log’ returns a log file whose parent directories do not exist, ‘system-log’ will now create them instead of merely reporting “No such file or directory” as it tries to open the log file. ** Fix memory leak in process monitor’s ‘fork/monitor’ (<https://codeberg.org/shepherd/shepherd/issues/40>) The ‘process-monitor’ event loop was recurring from inside a ‘catch’ expression in the ‘fork/monitor’ case, leaking memory associated with the exception handler. In the case of inetd services, this would cause a per-connection leak as new transient service instances were spawned. ** Fix bug that lead to service's stop procedure not being called if a dependent threw an error (<https://codeberg.org/shepherd/shepherd/pulls/89>) Stopping of dependents inside of stop-services didn't guard against errors coming from stop-service of dependents. This meant that if a service X tries to stop its dependent A and A throws an error, the stop of X is aborted completely and the shutdown-services logic reports that there has been an error when stopping X, instead of reporting that A has thrown an error. X's stop procedure is never called. This could have undesirable consequences on Guix System, such as causing file systems to not be properly unmounted in some cases. From now on, every shepherd service's stop procedure should get called even if dependents throw an error. ** Stopping a timer stops its entire process group (<https://codeberg.org/shepherd/shepherd/issues/83>) Running ‘herd stop TIMER’ now terminates the entire process group of any commands TIMER spawned and that are currently running. Previously, it would only terminate the main process, possibly leaving child processes behind. ** ‘exec-command’ no longer leaks /dev/null file descriptor (<https://codeberg.org/shepherd/shepherd/issues/19>) There used to be a race condition that could lead ‘exec-command’ to leak an open file descriptor to /dev/null in child processes. This is now fixed. ** Translations This version is fully translated in French, German, Romanian, Swedish, and Ukrainian; it is partially translated in several other languages. Check out https://translationproject.org/domain/shepherd.html to help translate it into your language! Please report bugs to <https://codeberg.org/shepherd/shepherd/issues>. Join [email protected] for discussions. Many thanks to everyone who reported bugs or contributed patches! Ludovic, on behalf of the Shepherd herd.
signature.asc
Description: PGP signature
