[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU Shepherd 1.0.2 released
From: |
Ludovic Courtès |
Subject: |
GNU Shepherd 1.0.2 released |
Date: |
Wed, 12 Feb 2025 11:08:10 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
We are glad to announce version 1.0.2 of the Shepherd, the second
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-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 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.2.tar.gz
https://ftp.gnu.org/gnu/shepherd/shepherd-1.0.2.tar.gz.sig
Here are the SHA1 and SHA256 checksums:
2af0ab3c090ae39c7a21e2b1aa550938b8299d64 shepherd-1.0.2.tar.gz
df4bac04b4b0476fa8f9ed138292ac2cc54b4304b5eefd859ed4892d4f9924bf
shepherd-1.0.2.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-1.0.2.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.2.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.2’ tag of
the Git repository.
• Changes since version 1.0.1
** ‘daemonize’ action preserves replacement bindings for ‘sleep’ etc.
(<https://issues.guix.gnu.org/75460>)
The shepherd process replaces bindings for ‘sleep’, ‘system*’, ‘system’, and
other core Guile procedures with cooperative variants thereof—for instance, it
replaces ‘sleep’ with Fibers’ own ‘sleep’ procedure, which does not block.
Previously, the ‘daemonize’ action would remove those binding replacements,
which could lead to blocking in shepherd, with symptoms such as ‘herd status’
not responding. This is now fixed.
** Gracefully handle failure to create a service’s log file
(<https://issues.guix.gnu.org/76130>)
If the file passed as #:log-file to ‘make-forkexec-constructor’ & co. could
not be created, ‘herd status’ and similar commands would hang. This is now
fixed in two ways: by attempting to create the parent directory of the log
file if it does not exist, and by reporting the failure and keeping the
service ‘stopped’ in other cases.
** Timers honor daylight saving time (DST) changes
(<https://issues.guix.gnu.org/75622>)
Previously, timers would always sleep a fixed amount of time between two
consecutive calendar events—e.g., 24h between two occurrences of a daily
event—regardless of whether both events occur in the same timezone or DST
setting. Timers now correctly honor DST changes—e.g., sleeping for 25h
between two daily events if the first one occurs on CEST (Central European
Summer Time, or UTC+2) and the second one occurs on CET (Central European
Time, or UTC+1).
** ‘cron-string->calendar-event’ can now interpret things like “*/2”
(<https://issues.guix.gnu.org/75843>)
Until now, ‘cron-string->calendar-event’ would fail to interpret
specifications like "0 */2 * * *" (meaning: every two hours). This is now
fixed.
** ‘cron-string->calendar-event’ properly interprets stars for hours
(<https://issues.guix.gnu.org/75836>)
Previously, using a star for the hours in a cron specification such as
"* * * * *" (meaning: every minute) would lead ‘cron-string->calendar-event’
to erroneously report an error. This is now fixed.
** ‘timer-service’ and ‘transient-service’ now honor #:requirement
Previously they would both ignore it, returning a service that depends on
nothing but the root service (which is probably acceptable most of the time).
** ‘default-message-destination-procedure’ is now exported
That procedure of (shepherd service system-log) was documented but not
exported. This is now fixed.
** Translations
This version is fully translated in German, Romanian, Slovak, Swedish, and
Ukranian; it is partially translated in seven 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.
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- GNU Shepherd 1.0.2 released,
Ludovic Courtès <=