GNU Shepherd 1.0.6 released

Ludovic Courtès <[email protected]> Wed, 09 Jul 2025 11:25:40 +0200
Newsgroups gmane.lisp.guile.sources,gmane.comp.gnu.guix.devel,gmane.lisp.guile.user
Message-ID <[email protected]>
--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

We are glad to announce version 1.0.6 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://gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-release=
d/

=E2=80=A2 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
  =E2=80=9Cinit=E2=80=9D system (PID 1) and also by unprivileged users to m=
anage
  per-user daemons=E2=80=94e.g., gpg-agent, tor, privoxy.  It supports seve=
ral
  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/

=E2=80=A2 Download

  Here are the compressed sources and a GPG detached signature:
    https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.6.tar.gz
    https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.6.tar.gz.sig

  Here are the SHA1 and SHA256 checksums:

    f5296ae2b896c619c3856fcecadcf74ad8d9b1de  shepherd-1.0.6.tar.gz
    fc74dfda499a695e650fc5839d39ad538e2e323949b8904afcfaffa34171be33  sheph=
erd-1.0.6.tar.gz

  Authenticate the code by downloading the corresponding .sig file:

    gpg --verify shepherd-1.0.6.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.6.tar.gz.sig

  It is bit-for-bit reproducible from a checkout of the =E2=80=98v1.0.6=E2=
=80=99 tag of
  the Git repository.


=E2=80=A2 Changes since version 1.0.5

  ** =E2=80=98shepherd=E2=80=99 reacts to deletion of its listening socket
     (<https://issues.guix.gnu.org/76998>)

  If the listening socket of =E2=80=98shepherd=E2=80=99 is deleted, it beco=
mes impossible to
  control it.  Thus, upon deletion, =E2=80=98shepherd=E2=80=99 tries to reo=
pen it (when running
  as PID=C2=A01) or stops itself (when running as an unprivileged user).

  The latter behavior is useful when the listening socket is under /run/use=
r/UID
  (the default) since that directory is usually deleted as soon as the user
  session terminates.

  ** =E2=80=98shepherd=E2=80=99 and =E2=80=98herd=E2=80=99 honor the =E2=80=
=98SHEPHERD_SOCKET=E2=80=99 environment variable
     (<https://codeberg.org/shepherd/shepherd/issues/11>)

  Both =E2=80=98shepherd=E2=80=99 and =E2=80=98herd=E2=80=99 now honor the =
new =E2=80=98SHEPHERD_SOCKET=E2=80=99 environment
  variable, which specifies the socket file to listen to or to connect to w=
hen
  the =E2=80=98--socket=E2=80=99 option is omitted.  The =E2=80=98reboot=E2=
=80=99 and =E2=80=98halt=E2=80=99 commands do not
  honor it as this usually makes little sense.

  ** =E2=80=98herd status=E2=80=99 shows clearer information for timers
     (<https://codeberg.org/shepherd/shepherd/issues/6>)

  Previously, the output of =E2=80=98herd status TIMER=E2=80=99 would start=
 with =E2=80=9CIt is running
  since=E2=80=A6=E2=80=9D, as is the case with other services.  This messag=
e could be
  misinterpreted as meaning that the timer=E2=80=99s action is currently ru=
nning, when
  it in fact referred to the fact that the timer was =E2=80=9Cactive=E2=80=
=9D, possibly just
  awaiting the next alarm.

  ** New Fish completion

  This version comes with completion of the =E2=80=98herd=E2=80=99 command =
for the Fish shell.

  ** Translations

  This version is fully translated in German, Romanian, Swedish, and Ukrain=
ian;
  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.

--=-=-=
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmhuNZUNHGx1ZG9AZ251
Lm9yZwAKCRAJCxGZPZrrtZU7D/0d7gQm0g4DA0p1dCaUaEK4wKboDJSy0+nEtKli
ldsVVWnqNGbUilXD8drJB3mXMPdxdqTWlLRTmX51biC0EEEMfPrW6Iglqt1nAvSn
Phrv2QVJrUpAaud9OxPkgpx0bx0XK//wi/aY3YUGFRasrj4fmOYtR8RzHpJKf8B8
6eHDI0oPGB6Dy7hBMhw3+S+Iz42gwQzIltMrLhZ1XN69RcWZOCMHX/cpC2DAhJ9V
jGYrWy+A4YprzQ2ZFO6RdoXeEbaqMrz2gwRwXOWqxbQZ5cb0cetX2+K8AgNXphjG
XMHH8R9TfKFUYMB4bOXSUO1RI1+nr746mjwipcJpvE3q7k/trNhe/TdGHfKLDOVu
VsJlHoOp30mbEfhX9mdixASxEbKgpg7T9ycNRAQxE16SxsvaN8cmC6nOomst70F3
UKpD9sCg/0CilUlSdj8L81tW+5CNOCamxZsBJGah0PfZDiUfTqYju0JN56Bf7v4D
hYgYXlsNKlctkymjwNaJSn2MLJHn8MVc0Fdw9IPGD8kBBI2TMzhB9crYqgXbH+NX
cLj/pcayc9PtJj+fuewHYMzDM6/3HVqKuDMsdLTp7adhoXD0yevk52PZUBImkR7l
0/8g4YMRuV4CtCWWGCrH+pG6bvlenNStjZltKdsiQjc0F0dhvX5DjjD0MracNmQY
fiGqvw==
=MGEh
-----END PGP SIGNATURE-----
--=-=-=--