From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Newsgroups: gmane.lisp.guile.sources,gmane.comp.gnu.guix.devel,gmane.lisp.guile.user Subject: GNU Shepherd 1.0.0 released Followup-To: gmane.comp.gnu.guix.devel Date: Mon, 09 Dec 2024 17:25:15 +0100 Message-ID: <87ttbcn7ro.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="20396"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: guix-devel@gnu.org, guile-sources@gnu.org, guile-user@gnu.org, info-gnu@gnu.org Original-X-From: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Mon Dec 09 17:25:52 2024 Return-path: Envelope-to: guile-sources@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1tKga0-00056k-1D for guile-sources@m.gmane-mx.org; Mon, 09 Dec 2024 17:25:52 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tKgZc-0008PP-Cd; Mon, 09 Dec 2024 11:25:28 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tKgZY-0008EF-S0; Mon, 09 Dec 2024 11:25:25 -0500 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tKgZY-0003DD-Ge; Mon, 09 Dec 2024 11:25:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=dl+KqTqtVWwu8nCLMN3GWQSOy3dDoYTzwq5FjF5aQK8=; b=Zcp7VydqP53v1p eaWQ+pjLHe8HAVBDlz7SGBbs0DAHSF9OsW3LJMzKh2+YdQ9D5GSXS5bl0JET0ZkzUYrdNti395M+E vR7NM54U91hTzzwhchf5XhxAIb3CEFuTZXp8M8lfFLfBr9Ii3ytRpoYPOsmjtn0s0b2G2/1c8/jKM k+wIlPdHgenslW0io837KOMJ7QMTTT6bc6ZfXG8dLJWRxLMnb0uoM43mkqGPvyzbeClTG0Vj6xBXw RdjPPSi1J3YPfUfn/wvswF2osdMeRBx3jGNmU+XoCby6KQqoV4mCCzmfDIiwBD+MFRqAxq62tHhV6 hfj8h4j/MXSiRxOh7Sow==; Mail-Followup-To: guix-devel@gnu.org X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 19 Frimaire an 233 de la =?utf-8?Q?R=C3=A9vol?= =?utf-8?Q?ution=2C?= jour de la Sabine X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu X-BeenThere: guile-sources@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Guile source code postings and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Original-Sender: guile-sources-bounces+guile-sources=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.sources:623 gmane.comp.gnu.guix.devel:71839 gmane.lisp.guile.user:19953 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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-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 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/ =E2=80=A2 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 sheph= erd-1.0.0.tar.gz Verify the integrity of the tarball with =E2=80=98cksum -a sha256 --check= =E2=80=99. 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 =E2=80=98v1.0.0=E2= =80=99 tag of the Git repository. =E2=80=A2 Changes since version 0.10.5 ** =E2=80=98herd status SERVICE=E2=80=99 shows high-level info about serv= ices In previous version, =E2=80=98herd status SERVICE=E2=80=99 would print th= e =E2=80=9Crunning value=E2=80=9D 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 =E2=80=9Cmain PID=E2=80=9D, listen= ing endpoints, and so on. ** =E2=80=98herd status SERVICE=E2=80=99 shows recently logged messages a= nd log files The command now lists recently-logged messages (choose the number of mess= ages shown with the =E2=80=98-n=E2=80=99 option) as well as the file(s) it is = logged to, if any. ** =E2=80=98herd status SERVICE=E2=80=99 shows custom actions When a service defines custom actions, these actions are now shown direct= ly in =E2=80=98herd status SERVICE=E2=80=99, making it easier to discover them. ** =E2=80=98herd status SERVICE=E2=80=99 shows whether a replacement is a= vailable When a replacement is available for a service, this is now shown in the o= utput of =E2=80=98herd status SERVICE=E2=80=99. Run =E2=80=98herd restart SERV= ICE=E2=80=99 to upgrade it and install the replacement in its stead. ** =E2=80=98herd status root=E2=80=99 shows information about the =E2=80= =98root=E2=80=99 service itself It used to be that =E2=80=98herd status=E2=80=99 was synonymous with =E2= =80=98herd status root=E2=80=99 and both would show the status of all registered services. This is no longer= the case: =E2=80=98herd status root=E2=80=99 now shows information about the = =E2=80=98root=E2=80=99 service itself, including recently-logged messages. ** Support for timed services The new =E2=80=98make-timer-constructor=E2=80=99 procedure lets you defin= e a service that runs periodically=E2=80=94e.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 varian= ts but hopefully much more convenient to use. See =E2=80=9CTimers=E2=80=9D = in the manual. ** New log rotation service The =E2=80=98log-rotation=E2=80=99 service defined in (shepherd service l= og-rotation) defines a simple log rotation service, similar to the venerable rottlog and logro= tate programs, which periodically compresses, moves around, and eventually del= etes old log files. See =E2=80=9CLog Rotation Service=E2=80=9D in the manual = for details. ** New system log service The =E2=80=98system-log=E2=80=99 service is a substitute for good=E2=80= =99ol =E2=80=98syslogd=E2=80=99: 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 =E2=80=9CSystem Log=E2=80=9D in the manual. ** New timer service The venerable =E2=80=98at=E2=80=99 command, to request the delayed execut= ion of a command, also got a replacement in the form of the =E2=80=98timer=E2=80=99 service= . See =E2=80=9CTimers=E2=80=9D in the manual. ** New transient service maker The new service called =E2=80=98transient=E2=80=99 lets you run commands = in the background, and it does so by wrapping them in transient services. It is similar in spirit to =E2=80=98systemd-run=E2=80=99. See =E2=80=9CTransient Service = Maker=E2=80=9D in the manual. ** Linux kexec support On GNU/Linux, the =E2=80=98root=E2=80=99 service has a new =E2=80=98kexec= =E2=80=99 action that can be invoked with the =E2=80=98reboot -k=E2=80=99 command; it reboots straight into a = new kernel previously loaded with the =E2=80=98kexec -l IMAGE=E2=80=99 command. See =E2=80=9CI= nvoking reboot=E2=80=9D in the manual. ** =E2=80=98shepherd=E2=80=99 honors =E2=80=98--silent=E2=80=99 Previously the =E2=80=98--silent=E2=80=99 option of =E2=80=98shepherd=E2= =80=99 was, well, silently ignored. This is no longer the case. ** =E2=80=98shepherd=E2=80=99 now logs deprecation warnings Using deprecated interfaces leads to warnings that are now logged by shep= herd and visible in its log file. ** GOOPS The GOOPS programming interface of shepherd, which was deprecated in 0.10= .x, is now gone. See =E2=80=9CLegacy GOOPS Interface=E2=80=9D for more infor= mation. ** Reproducible source tarball The =E2=80=98shepherd-1.0.0.tar.gz=E2=80=99 file distributed at ftp.gnu.o= rg 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 =E2=80=98gzip=E2=80=99 and =E2=80=98= zstd=E2=80=99 commands. Use the =E2=80=98--with-gzip=E2=80=99 and =E2=80=98--with-zstd=E2=80=99 configure= options to specify the file name of the commands to use. ** Translations This version is fully translated in German, Romanian, Swedish, and Ukrani= an; 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. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAmdXGesNHGx1ZG9AZ251 Lm9yZwAKCRAJCxGZPZrrtaFAD/9zUiDWaR8D14oF7wMbC6qKzka/I5HSdtdzFi+e Z/8Q+FwtPLNg8/glYtG6HI/IMEiR1vPzqT8UiG1U2ioQF2QXFvmme/Btodk2tqSK n2vEJtwe1RoEXIsOdPq2uJkuBnd9NZh+3A8K9jeLK8Pg1qk0zhKTEc9fo8yHgJ1l KEHOqDjUr7hKgcW2ic4HaLiPF8c9iewbaw17apSmS/WdMRUndMosnZRDnPKIVw9i MeLgmkXAE3K4NWu5qUyMaiievnzU5rY+Ty0SdSmahckLAL3Aun78OTQ6HsiqC5zp 1PZkYA3/G4Bcy8j/bJTW2STeu/8r271kmk/HjWikd1J4fhIgeRWodFj9BsWSWR7a d41QJsi+NwafE5HHMYHpmHaNYTdiHt7S0xhmm9znymG7HwxlWBwrchnzlUKT1XOf WNXloVREtOZT93XRkGeTlyDigIz69yObpuwSrGY+e/Fi64gvg0s9Sx66cYzuF3X4 ZM2JRs1urBWZ8A70SHM2PjLI789i8wRuksydwP1ZhpZ3Z7Wvj4dErUhP3va+Nubq Qp3o28+cIQBYTPjsYeEzLytSfug3CAZ0ku1BXQTSAJPS2qSTvXsI0wnk58WxTmE3 34fCWQTk0zJuvk1XBvYHX8e2l5pvfPKmfgBtpbq7LEXNTfjDyWp8909h03W6zfo6 5lma6w== =Jb0l -----END PGP SIGNATURE----- --=-=-=--