We are pleased to announce the GNU Shepherd version 0.9.1. This is a bug-fix release, including a backward-compatible interface change, representing 18 commits by 2 people over 6 weeks. • About The GNU Daemon Shepherd or GNU Shepherd is a service manager written in Guile that looks after the herd of system services. It provides a replacement for the service-managing capabilities of SysV-init (or any other init) with a dependency-based system with a convenient interface. The GNU Shepherd may also be used by unprivileged users to manage per-user daemons (e.g., tor, privoxy, mcron, etc.) It is written in Guile Scheme, and is configured and extended using Guile. The GNU Shepherd is developed jointly with the GNU Guix project; it is used as the init system of Guix, GNU’s advanced GNU/Linux distribution. https://www.gnu.org/software/shepherd/ • Download Here are the compressed sources and a GPG detached signature[*]: https://ftp.gnu.org/gnu/shepherd/shepherd-0.9.1.tar.gz https://ftp.gnu.org/gnu/shepherd/shepherd-0.9.1.tar.gz.sig Use a mirror for higher download bandwidth: https://ftpmirror.gnu.org/shepherd/shepherd-0.9.1.tar.gz https://ftpmirror.gnu.org/shepherd/shepherd-0.9.1.tar.gz.sig Here are the SHA1 and SHA256 checksums: 52bcd330ba7b4c77d4183d58d0a8d1b798761ff6 shepherd-0.9.1.tar.gz 66b447fbfeed6b0b96f7efc671b146b686bde9f5b6c39b6647887bfd8ccd4a50 shepherd-0.9.1.tar.gz [*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify shepherd-0.9.1.tar.gz.sig If that command fails because you don't have the required public key, then run this command to import it: gpg --keyserver keys.openpgp.org \ --recv-keys 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 and rerun the 'gpg --verify' command. This release was bootstrapped with the following tools: Autoconf 2.71 Automake 1.16.5 Makeinfo 6.7 Help2man 1.48.5 • Changes since version 0.9.0 (excerpt from the NEWS file) ** ‘make-inetd-constructor’ now accepts a list of endpoints In 0.9.0, ‘make-inetd-constructor’ would take a single address as returned by ‘make-socket-address’. This was insufficiently flexible since it didn’t let you have an inetd service with multiple endpoints. ‘make-inetd-constructor’ now takes a list of endpoints, similar to what ‘make-systemd-constructor’ already did. For compatibility with 0.9.0, if the second argument to ‘make-systemd-constructor’ is an address, it is automatically converted to a list of endpoints. This behavior will be preserved for at least the whole 0.9.x series. ** ‘AF_INET6’ endpoints are now interpreted as IPv6-only In 0.9.0, using an ‘AF_INET6’ endpoint for ‘make-systemd-constructor’ would usually have the effect of making the service available on both IPv6 and IPv4. This is due to the default behavior of Linux, which is to bind IPv6 addresses as IPv4 as well (the default behavior can be changed by running ‘sysctl net.ipv6.bindv6only 1’). ‘AF_INET6’ endpoints are now interpreted as IPv6-only. Thus, if a service is to be made available both as IPv6 and IPv4, two endpoints must be used. ** ‘shepherd’ reports whether a service is transient ** ‘herd status’ shows whether a service is transient ** Fix possible file descriptor leak in ‘make-inetd-constructor’ () ** Fix value of ‘LISTEN_FDNAMES’ variable set by ‘make-systemd-constructor’ ** Fix crash when logging IPv6 addresses ** ‘start-in-the-background’ returns *unspecified* instead of zero values Please report bugs to bug-guix@gnu.org. Join guix-devel@gnu.org for discussions. Ludovic, on behalf of the Shepherd herd.