GNU Shepherd 0.10.1 released

Ludovic Courtès <[email protected]> Mon, 29 May 2023 22:34:51 +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 pleased to announce the GNU Shepherd version 0.10.1, a bug-fix
release of the new 0.10.x series, representing 14 commits over 16 days.

The 0.10.x series is a major overhaul towards 1.0, addressing shortcomings
and providing new features that help comprehend system state.


=E2=80=A2 About

  The GNU 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., tor, privoxy, mcron.  It supports several
  daemon startup mechanisms, including inetd and systemd-style socket
  activation.  The GNU 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 GNU Shepherd is developed jointly with the GNU Guix project; it is
  used as the init system of Guix, GNU=E2=80=99s advanced GNU/Linux distrib=
ution.

  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-0.10.1.tar.gz
    https://ftp.gnu.org/gnu/shepherd/shepherd-0.10.1.tar.gz.sig

  Use a mirror for higher download bandwidth:
    https://ftpmirror.gnu.org/shepherd/shepherd-0.10.1.tar.gz
    https://ftpmirror.gnu.org/shepherd/shepherd-0.10.1.tar.gz.sig

  Here are the SHA1 and SHA256 checksums:

  b0bdd9eda7a44f14d9ef4502263e4a7a2b8d4725  shepherd-0.10.1.tar.gz
  3CfSFEodr7TJJvxa3uOgUJo5WB7yg00I/5c8yNxnQJw  shepherd-0.10.1.tar.gz

  The SHA256 checksum is base64 encoded, instead of the
  hexadecimal encoding that most checksum tools default to.

  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.10.1.tar.gz.sig

  The signature should match the fingerprint of the following key:

    pub   rsa4096 2014-08-11 [SC]
          3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
    uid           [  full  ] Ludovic Court=C3=A8s <[email protected]>
    uid           [  full  ] Ludovic Court=C3=A8s <[email protected]>
    uid           [  full  ] Ludovic Court=C3=A8s (Inria) <ludovic.courtes@=
inria.fr>

  If that command fails because you don't have the required public key,
  or that public key has expired, try the following commands to retrieve
  or refresh it, and then rerun the 'gpg --verify' command.

    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-0.10.1.tar.gz.sig


  This release was bootstrapped with the following tools:
    Autoconf 2.71
    Automake 1.16.5
    Makeinfo 7.0.3
    Help2man 1.49.2


=E2=80=A2 Changes since version 0.10.0 (excerpt from the NEWS file)

  ** Configurable number of =E2=80=98bind=E2=80=99 attempts for endpoints

  The =E2=80=98endpoint=E2=80=99 procedure takes a new =E2=80=98#:bind-atte=
mpts=E2=80=99 parameter.  Its default
  value is (default-bind-attempts), itself a new SRFI-39 parameter.

  ** New =E2=80=98default-respawn-limit=E2=80=99 parameter

  This SRFI-39 parameter lets users configure the respawn limit for respawn=
able
  services.  See =E2=80=9CService De- and Constructors=E2=80=9D in the manu=
al.

  ** =E2=80=98herd restart SERVICE=E2=80=99 starts the replacement, not the=
 original service
     <https://issues.guix.gnu.org/63717>

  In 0.10.0, when a service had received a replacement (for instance via =
=E2=80=98guix
  system reconfigure=E2=80=99), using =E2=80=98herd restart=E2=80=99 would =
invoke the =E2=80=98start=E2=80=99 method of
  the original service while installing its replacement in the registry.

  This would lead to an inconsistency where the registry would show the new
  service (typically failing to start) while the original service would sti=
ll be
  running =E2=80=9Cin the shadows=E2=80=9D (responding to SIGCHLD or to inc=
oming connections,
  and so on).

  ** =E2=80=98herd restart SERVICE=E2=80=99 does not restart transient serv=
ices

  In 0.10.0, =E2=80=98herd restart=E2=80=99 could end up attempt to restart=
 transient services,
  which is bound to fail and could even lead to a deadlock since the servic=
e has
  been terminated.


Please report bugs to [email protected].
Join [email protected] for discussions.

Ludovic, on behalf of the Shepherd herd.

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

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

iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmR1DGsNHGx1ZG9AZ251
Lm9yZwAKCRAJCxGZPZrrtWBLD/40hTOz3DRex7EPNtByKFsEE8Y0E+hj6O/pcBJW
YqrzPffJwR8JfuJ7s8oF5tkw2m6aHfR+QuioBl0hpsWb9xVF9BrWl+I5DGgv/3sv
ccA3RxnUCE9OTU7fIGAExHcdg/MHkQkO56Nwh15ZxpF1K0s/cntsBDuSTPpnzqZA
h0/KirZJ6I99L/xp8uWV+mdh3R2BGQj0C+Wcq0vZFURXOGILE9JRgFSY8qoswte/
L+3/LnzPWQ6wcdE+wfM4Yp3MpqPG9bzYXanpObBtHHObYSAbdHN43loiC0BYuh5F
8Z9ttc07vNxnfD+WJYoUu4GSg9yN8D7OSP2kFu6yBvxNPtTLzWMGkGay5J44B0AJ
WUbozLh/pllVicbQuuUtxkJMct/9q7G2XznMsZmnw36EK9/U16ql6F1wTWjHrBP0
CrTVdBLWajLQcISXY8UTui9iEOOndRxUCaAO94aMYXwbLj7XG+KrMgD2Apkgs+XL
nxJVVlqT9NzzyVXwLxSehNMaeLgmlj1Wm+rlJ959GeMy4OazOf+jVKESyp6s96+s
RE41Z8ovo2gizcKLG5Or/Rh98t+31Mq9e/xBzApIYOGTNLxhRoTyq9sPRXfTxyFE
c+U9gWc/GXoNZCQRIxB+HgcaYBQUb0hpX9CwEnKyTGsgNYRMziKzzY+8cm5C5g55
Q9ElaQ==
=+pxM
-----END PGP SIGNATURE-----
--=-=-=--