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-----
--=-=-=--