* GNU Shepherd 1.0.0 released
@ 2024-12-09 16:25 Ludovic Courtès
0 siblings, 0 replies; only message in thread
From: Ludovic Courtès @ 2024-12-09 16:25 UTC (permalink / raw)
To: guix-devel, guile-sources, guile-user, info-gnu
[-- Attachment #1: Type: text/plain, Size: 7271 bytes --]
We are thrilled to announce version 1.0.0 of the Shepherd, no less than
twenty-one years after its initial alpha release! We believe Shepherd
has become a solid tool, meeting the kind of user experience one has
come to expect since systemd. Check out the web site to learn more:
https://gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/
• 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
“init” system (PID 1) and also by unprivileged users to manage
per-user daemons—e.g., gpg-agent, tor, privoxy. It supports several
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 GNU Guix project; it is
used as the init system of Guix System and service manager of
Guix Home.
https://www.gnu.org/software/shepherd/
• Download
Here are the compressed sources and a GPG detached signature:
https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.0.tar.gz
https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.0.tar.gz.sig
Here are the SHA1 and SHA256 checksums:
bc9dc75b3b79e8a9dc26e50c02479ae7f59ebd3d shepherd-1.0.0.tar.gz
e8e6af33b02790cc0a5480d759a4211a86d141d073acd3c9346b4cf010ed9e7c shepherd-1.0.0.tar.gz
Verify the integrity of the tarball with ‘cksum -a sha256 --check’.
Authenticate the code by downloading the corresponding .sig file:
gpg --verify shepherd-0.10.5.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-0.10.5.tar.gz.sig
This tarball was bootstrapped with the following tools:
Autoconf 2.71
Automake 1.16.5
Gettext 0.21
Makeinfo 7.1.1
It is bit-for-bit reproducible from a checkout of the ‘v1.0.0’ tag of
the Git repository.
• Changes since version 0.10.5
** ‘herd status SERVICE’ shows high-level info about services
In previous version, ‘herd status SERVICE’ would print the “running value” of
SERVICE: an integer denoting the PID of its main process, or a socket for
inetd or systemd services.
The output is now clearer, showing the “main PID”, listening endpoints, and so
on.
** ‘herd status SERVICE’ shows recently logged messages and log files
The command now lists recently-logged messages (choose the number of messages
shown with the ‘-n’ option) as well as the file(s) it is logged to, if any.
** ‘herd status SERVICE’ shows custom actions
When a service defines custom actions, these actions are now shown directly in
‘herd status SERVICE’, making it easier to discover them.
** ‘herd status SERVICE’ shows whether a replacement is available
When a replacement is available for a service, this is now shown in the output
of ‘herd status SERVICE’. Run ‘herd restart SERVICE’ to upgrade it and
install the replacement in its stead.
** ‘herd status root’ shows information about the ‘root’ service itself
It used to be that ‘herd status’ was synonymous with ‘herd status root’ and
both would show the status of all registered services. This is no longer the
case: ‘herd status root’ now shows information about the ‘root’ service
itself, including recently-logged messages.
** Support for timed services
The new ‘make-timer-constructor’ procedure lets you define a service that runs
periodically—e.g., every day at noon, every Sunday at 10PM. The resulting
service can be started, stopped, and triggered; it has its output logged like
any other service. It is comparable to the venerable cron and its variants
but hopefully much more convenient to use. See “Timers” in the manual.
** New log rotation service
The ‘log-rotation’ service defined in (shepherd service log-rotation) defines
a simple log rotation service, similar to the venerable rottlog and logrotate
programs, which periodically compresses, moves around, and eventually deletes
old log files. See “Log Rotation Service” in the manual for details.
** New system log service
The ‘system-log’ service is a substitute for good’ol ‘syslogd’: it listens for
messages written by applications on the /dev/log Unix-domain socket and
dispatches them to log files according to administrator-provided rules.
See “System Log” in the manual.
** New timer service
The venerable ‘at’ command, to request the delayed execution of a command,
also got a replacement in the form of the ‘timer’ service. See “Timers” in
the manual.
** New transient service maker
The new service called ‘transient’ lets you run commands in the background,
and it does so by wrapping them in transient services. It is similar in
spirit to ‘systemd-run’. See “Transient Service Maker” in the manual.
** Linux kexec support
On GNU/Linux, the ‘root’ service has a new ‘kexec’ action that can be invoked
with the ‘reboot -k’ command; it reboots straight into a new kernel previously
loaded with the ‘kexec -l IMAGE’ command. See “Invoking reboot” in the
manual.
** ‘shepherd’ honors ‘--silent’
Previously the ‘--silent’ option of ‘shepherd’ was, well, silently ignored.
This is no longer the case.
** ‘shepherd’ now logs deprecation warnings
Using deprecated interfaces leads to warnings that are now logged by shepherd
and visible in its log file.
** GOOPS
The GOOPS programming interface of shepherd, which was deprecated in 0.10.x,
is now gone. See “Legacy GOOPS Interface” for more information.
** Reproducible source tarball
The ‘shepherd-1.0.0.tar.gz’ file distributed at ftp.gnu.org is now bit-for-bit
reproducible from the corresponding Git tag. This was prompted by
vulnerabilities that propped up in the XZ package in April 2024
(CVE-2024-3094); code itself borrows from what Janneke Nieuwenhuizen did for
Guix.
** Updated requirements: Guile, gzip, zstd
Guile 2.2 is no longer supported; Guile 3.0.x is required.
The log rotation service can use the ‘gzip’ and ‘zstd’ commands. Use the
‘--with-gzip’ and ‘--with-zstd’ configure options to specify the file name of
the commands to use.
** Translations
This version is fully translated in German, Romanian, Swedish, and Ukranian;
it is partially translated in eight other languages. Check out
https://translationproject.org/domain/shepherd.html to help translate it into
your language!
Please report bugs to bug-guix@gnu.org.
Join guix-devel@gnu.org for discussions.
Ludovic, on behalf of the Shepherd herd.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 853 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-12-09 16:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-09 16:25 GNU Shepherd 1.0.0 released Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).