GNU Shepherd 0.10.2 released
Ludovic Courtès <[email protected]> Mon, 17 Jul 2023 19:49:41 +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 pleased to announce the GNU Shepherd version 0.10.2, a bug-fix
release of the new 0.10.x series, representing 28 commits over 7 weeks.
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.2.tar.gz
https://ftp.gnu.org/gnu/shepherd/shepherd-0.10.2.tar.gz.sig
Use a mirror for higher download bandwidth:
https://ftpmirror.gnu.org/shepherd/shepherd-0.10.2.tar.gz
https://ftpmirror.gnu.org/shepherd/shepherd-0.10.2.tar.gz.sig
Here are the SHA1 and SHA256 checksums:
d0ea3e212eb62b98f6ea9567be66069571747d41 shepherd-0.10.2.tar.gz
knKDrUjHjs8YAWB6Ex9IGUegum5zOYCG8uU2vF5qNG0 shepherd-0.10.2.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.2.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.2.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.1 (excerpt from the NEWS file)
** =E2=80=98shepherd=E2=80=99 loads configuration file asynchronously
Up to 0.10.1, =E2=80=98shepherd=E2=80=99 would load the user-provided con=
figuration file
synchronously: it would write its PID file and start listening for incomi=
ng
connections only after the configuration file has been loaded. The
configuration file is now loaded in the background, letting users interact
with shepherd (using the =E2=80=98herd=E2=80=99 command) early on.
** =E2=80=98shepherd=E2=80=99 keeps going upon configuration file errors
(<https://issues.guix.gnu.org/63982>)
Up to 0.10.1, =E2=80=98shepherd=E2=80=99 would abruptly exit when an erro=
r would occur while
loading the configuration file=E2=80=94service startup failure, uncaught =
exception,
etc. It now reports the error but keeps going, again letting users fix a=
ny
problems dynamically.
** New #:respawn-limit parameter to =E2=80=98service=E2=80=99
The =E2=80=98service=E2=80=99 form supports a new #:respawn-limit paramet=
er to specify
per-service respawn limits.
** Disabled services are truly disabled
(<https://issues.guix.gnu.org/64008>)
Previously, manually running =E2=80=98herd disable SERVICE=E2=80=99 would=
not prevent SERVICE
from being respawned or even from being started. This is now fixed.
** Disabled flag is preserved when replacing a service
(<https://issues.guix.gnu.org/63869>)
When replacing a service, for instance by running =E2=80=98herd load root=
conf.scm=E2=80=99 or
by running =E2=80=98guix system reconfigure=E2=80=99, the service replace=
ment starts as
disabled if the original service was disabled.
** Signals are properly handled after =E2=80=98daemonize=E2=80=99
(<https://issues.guix.gnu.org/63982>)
Starting with version 0.9.0, calling the =E2=80=98daemonize=E2=80=99 acti=
on on the =E2=80=98root=E2=80=99
service would cause shepherd to miss signals; in particular, it would miss
SIGCHLD signals, making it hardly usable. This is now fixed.
** New =E2=80=98unregister-services=E2=80=99 procedure
(<https://issues.guix.gnu.org/64365>)
The (shepherd service) module now exports =E2=80=98unregister-services=E2=
=80=99.
** New Bash completion
A Bash completion file is now installed, providing tab completion for the
=E2=80=98herd=E2=80=99 command.
** =E2=80=98herd=E2=80=99 shows a hint when the service and action are li=
kely swapped
The hint is printed for instance when typing =E2=80=98herd foobar start=
=E2=80=99.
** Updated translations: de, ro, sv, uk
This release is fully translated to German, Romanian, Swedish, and Ukrain=
ian;
partial translations are available for a dozen of languages. To help mak=
e the
Shepherd speak your language, check out the Translation Project:
https://translationproject.org/domain/shepherd.html
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/cadtAz7CQsRmT2a67UFAmS1fzUNHGx1ZG9AZ251
Lm9yZwAKCRAJCxGZPZrrtQ+6D/9YUMT0ggcmIcNiLKz0Gtp9bSwd6EDZ3LiWhElq
P6pG29p1CVirY4Rd0C4KPYc273PYol5rs1tQxZIhlnA6p9+BnqGB5gae+fXhbak2
pz6T487YOXjgQXm1Z2c+ylNeQoGS1d3Ar/yAkFdvDcTCu24l7KK5s81tgVB5e7LL
ePDGr62yA+PxR7m12qlsUQ0KBpU9l7mEwQVs7kjvUlx9oJ2d4hP8+I8iGY9sxRgP
oDDZTSS/+PGwBXVkQQJX5ycs86l5S+ODnHWHTyLqaalApIMh56AbCYinL8hk9P1N
3wHL1CvmSiSoGOrARBzGmVrF9KhFSmE6uKZCzRR+dsDf+BywEUPHbpK6h7O1prWW
e0qnyp2t5UsH0/nP5aEsc9U9pdgN7ykdnMCaKPZFkMiTON84XApayuLTDQyHzSuQ
/Ffy3KqXq8G5rwKp3ZGsQXdid9BZe6JyfLGImFp5pbfPFueOYQfTm7blJqh0Xcij
uHH/PY1kIRa+/TtW2vtC1v+dVJbkcAMo/DmyDxbm90XB/YeP5AAgeOA7ZbBycX8w
xdU3WIt8xwZDMTsoGtKhQDRDmF1CGGTxt2Qy+B/+ww3MkIsS/LkhmiEnk5EsmEaM
EpotjJLl0HGxDxYtHo9rWryK7tDjagGvtcZ/Sz6MD86yt4zzsWgDXKnzWYek88aI
40JAOA==
=I/Kz
-----END PGP SIGNATURE-----
--=-=-=--