GNU Shepherd 1.0.7 released

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

We are glad to announce version 1.0.7 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.7.tar.gz
    https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.7.tar.gz.sig

  Here are the SHA1 and SHA256 checksums:

    a892febba32995e55443698e13af8f38f1f8a938  shepherd-1.0.7.tar.gz
    325a9b7581ee83a15115dfbfbcc247c9eb510f752549a23f3ae912a8ec727597  sheph=
erd-1.0.7.tar.gz

  Authenticate the code by downloading the corresponding .sig file:

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

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


=E2=80=A2 Changes since version 1.0.6

  ** New #:input-port parameter for =E2=80=98make-forkexec-constructor=E2=
=80=99

  This allows users to specify what standard input to use for the new proce=
ss
  instead of the default /dev/null.  This is similar to the =E2=80=98Standa=
rdInput=3D=E2=80=99
  directive in systemd unit files.

  ** =E2=80=98make-forkexec-constructor=E2=80=99 terminates process when lo=
g is not created
     (<https://codeberg.org/shepherd/shepherd/issues/25>)

  =E2=80=98make-forkexec-constructor=E2=80=99 would mark the service as sto=
pped when its
  #:log-file could not be created, but the corresponding process would keep
  running.  This is now fixed: the process is terminated when its log file =
could
  not be created.

  ** Service being replaced does not leak control fiber upon respawn
     (<https://codeberg.org/shepherd/shepherd/issues/28>)

  When a service with a previously-registered replacement was respawned, it
  would previously leave behind it a controlling fiber that would no longer=
 be
  used.  This would constitute a (small) memory leak, which could be notice=
able
  on systems with long uptimes.

  ** Improve error reporting for wrong-type arguments
     (<https://codeberg.org/shepherd/shepherd/issues/30>)

  It is not uncommon to mistakenly pass arguments of the wrong type to publ=
ic
  procedures such as =E2=80=98make-forkexec-constructor=E2=80=99.  They are=
 now more nicely
  reported, both in the =E2=80=98shepherd=E2=80=99 log and on the output of=
 the =E2=80=98herd=E2=80=99 command
  when applicable.

  ** Avoid Bash-specific idiom in =E2=80=98./configure=E2=80=99 and in tests
     (<https://codeberg.org/shepherd/shepherd/issues/31>)

  Use of =E2=80=98type -P=E2=80=99, which shells such as Dash do not suppor=
t, has been replaced
  by the POSIXy =E2=80=98command -v=E2=80=99 in ./configure and in the test=
 suite.

  ** Translations

  This version is fully translated in French, German, Romanian, Slovak, Swe=
dish,
  and Ukrainian; it is partially translated in several other languages.  Ch=
eck
  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/cadtAz7CQsRmT2a67UFAmi4dHkNHGx1ZG9AZ251
Lm9yZwAKCRAJCxGZPZrrtakoEACnFCJty3bL0sYUMbW6CtbkhNuHPkJjUXfCbJGk
WAZ8shiA0Mk3kbJvuYNRPTw2z0IBBOuD2GhPBAc2y2IuXPaV9bnEbunKX/liVM0/
r4cE2EsfKi0azEGXR5smWpZfv0YutWjxjHAqKZ44LDosDmYx3r9zzpsfSO+JX7Pz
pJwdOMJ9HEZvJJzcBG/tlr0oGjQYWaxrMipj2naZIEQrPmuzG5a6xTBpEXdPLu5K
388t1acySxMKHsLtelbjpvuELJPitvWO9t+WnvoJZP8tfHMbCPKfIXdx2NXdNvXh
CBVF4YynIMORtw2PW/FODwkKhgvnN9CLFzG5JFstAFg1cmTYOfhFTqpxEoCYEVlz
KbH1AXpeo1vQjhTqoJ52yfHDBHdcLl/PRWrCQbK1/W9r0qdl+qF8mq8j3YRfyGeN
dNTrTVeNe1uqqmZxCUNFH+gBLiep6oRq5YwW/VkNXO3HEXQcRVo5ohG+rloGpYjG
8G/WSPfuIqVDkoYu5leHV8lAf9U3Ho0hx95r8um8s+A5oIt8QQhLf87cQegq6P5p
VIbPXMzU1Mor/tpO3sS4KhZs17TE0LBboTB1215WmDvIFp9EkX+ht9BVf6iwbINz
wHdw1KgVvRHRW8dPIIeDFOv5mwx/barNLRLC7xuqwPR+DPYSy1eDwDYWV+yaCrP+
ZjdaaA==
=XATQ
-----END PGP SIGNATURE-----
--=-=-=--