Subject: Re: bug#48323: guix-daemon.service and guix-publish.service use deprecated StandardError/StandardOutput features

From: Vagrant Cascadian <[email-masked]>
Date: Thu, 20 Jul 2023 12:35:33 -0700

On 2022-04-29, Ludovic Courtès wrote:
> Vagrant Cascadian <[email-masked]> skribis:
>
>> Both guix-daemon.service and guix-publish.service make use of
>> StandardError=syslog and StandardOutput=syslog.
>
> [...]
>
>> So apparently need to switch the .service files to use "journal". I am
>> not sure what implications that would have for installing guix on a
>> foreign distro, such as minimum systemd version, or if anything needs
>> significant changes.
>
> Could you confirm that setting those to “journal” works on Debian?
>
> If it does, it’s probably safe now to make this change, so feel free to
> commit it in Guix.

So, I finally got around to testing this...

Feels a little odd just pushing after testing over a year later,
although the patch is fairly trivial...

Patch attached!

live well,
  vagrant
From 2c3a09314b0223531ab41407d619bcf300b4f422 Mon Sep 17 00:00:00 2001
From: Vagrant Cascadian <[email-masked]>
Date: Thu, 20 Jul 2023 12:13:55 -0700
Subject: [PATCH] etc: systemd services: switch to "journal" for output and
 error logging.

The "syslog" method has been deprecated for years, and issues a warning:

  Standard output type syslog is obsolete, automatically updating to
  journal. Please update your unit file, and consider removing the setting
  altogether.

Fixes: #48323

* etc/guix-daemon.service.in (StandardOutput): Use "journal"
(StandardError): Likewise.
* etc/guix-publish.service.in (StandardOutput): Likewise.
(StandardError): Likewise.
---
 etc/guix-daemon.service.in  | 4 ++--
 etc/guix-publish.service.in | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in
index 9dbc3b5678..5e75379b5e 100644
--- a/etc/guix-daemon.service.in
+++ b/etc/guix-daemon.service.in
@@ -9,8 +9,8 @@ Description=Build daemon for GNU Guix
 ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon \
     --build-users-group=guixbuild --discover=no
 Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
-StandardOutput=syslog
-StandardError=syslog
+StandardOutput=journal
+StandardError=journal
 
 # Work around a nasty systemd ‘feature’ that kills the entire process tree
 # (including the daemon!) if any child, such as cc1plus, runs out of memory.
diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in
index b8fd3b4c03..0d82e73d94 100644
--- a/etc/guix-publish.service.in
+++ b/etc/guix-publish.service.in
@@ -11,8 +11,8 @@ After=guix-daemon.service
 [Service]
 ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181
 Environment='GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale' LC_ALL=en_US.utf8
-StandardOutput=syslog
-StandardError=syslog
+StandardOutput=journal
+StandardError=journal
 
 # Despite the name, this is rate-limited: a broken daemon will eventually fail.
 Restart=always

base-commit: 21b718f4d6c3ded8ef50d12f6e9ae6474f74620f
-- 
2.39.2