We are glad to announce version 1.0.8 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/ Notice that the Shepherd has a new hut! https://shepherding.services/ • 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.8.tar.gz https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.8.tar.gz.sig Here are the SHA1 and SHA256 checksums: 4228d23cd9b13d4f9649bce7c696ec85b2419243 shepherd-1.0.8.tar.gz 3beb005370bf0339c567d068a7ad9fb69f0e8850894db01c34635955f7717ff5 shepherd-1.0.8.tar.gz Authenticate the code by downloading the corresponding .sig file: gpg --verify shepherd-1.0.8.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.8.tar.gz.sig It is bit-for-bit reproducible from a checkout of the ‘v1.0.8’ tag of the Git repository. • Changes since version 1.0.7 ** The Shepherd has a new home! The Shepherd’s web site is now available at https://shepherding.services. ** Avoid potential race condition in callback running value updates (https://codeberg.org/shepherd/shepherd/issues/54) A potential race condition when updating a service's running value via callback, such as when using SystemD-style services, has been fixed. ** Reduced ‘shepherd’ startup time by using ‘close_range’ (<https://codeberg.org/shepherd/shepherd/issues/41>) The startup time of ‘shepherd’ has been reduced by using close_range(2) on systems that support it. ** Remove more Bash-specific idioms from tests (<https://codeberg.org/shepherd/shepherd/pulls/44>) The test suite has now been tested with Dash, the default shell on Debian. ** Better support ‘halt’ and ‘poweroff’ on non-GNU systems (<https://codeberg.org/shepherd/shepherd/pulls/49>) The ‘configure’ script now guesses more appropriate values to halt and to power off the system on FreeBSD, OpenBSD, NetBSD, illumos, and Darwin. ** Fix memory leak associated with one-shot services (<https://codeberg.org/shepherd/shepherd/issues/63>) One-shot services would never terminate their “logger”—the fiber responsible for logging their output. Consequently, each time a one-shot service is started or replaced, a small amount of memory would be leaked, which could contribute to unbounded heap growth on long-running systems. This is now fixed. ** Avoid potential memory leak when logging internally at a high rate (<https://codeberg.org/shepherd/shepherd/issues/40>) When ‘shepherd’ itself is logging messages very quickly, as can happen for instance when it keeps spawning inetd services in response to a high rate of incoming connections, a memory leak could be triggered. We believe this is now fixed. ** Fix misbehavior when starting systemd services with several endpoints (<https://codeberg.org/shepherd/shepherd/issues/47>) When starting a service that uses ‘make-systemd-constructor’ with multiple endpoints, internal startup code for the service could sometimes fire several times, leading to a harmless backtrace with ‘fcntl’ reporting: “Wrong type (expecting exact integer): #<closed: file …>”. This is now fixed. ** ‘system-log’ service ignores empty lines read from the kernel log (<https://codeberg.org/shepherd/shepherd/issues/46>) The ‘system-log’ service no longer logs empty lines read from the kernel log, as can be seen with /dev/klog on the Hurd. ** ‘system-log’ service correctly identifies messages form the kernel log (<https://codeberg.org/shepherd/shepherd/issues/46>) When the ‘system-log’ service encounters a message without facility information from the kernel log, it now treats it as a kernel message and prefixes it as such in the log file(s). This is the case with kernel messages from /dev/klog on the Hurd. ** ‘--socket’ option of shepherd no longer accepts ‘-’ While ‘shepherd’ was documented as being able to read commands from standard input when started with ‘--socket=-’, this (dubious) feature had actually been unsupported throughout the 1.0.x series. It is now officially dropped. ** Translations This version is fully translated in 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
