unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* 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).