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-g...@gnu.org.
Join guix-devel@gnu.org for discussions.

Ludovic, on behalf of the Shepherd herd.

Attachment: signature.asc
Description: PGP signature

  • GNU Shepherd 1.0.... Ludovic Courtès

Reply via email to