guix-daemon.service and guix-publish.service use deprecated StandardError/StandardOutput features

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Vagrant Cascadian
Owner
unassigned
Submitted by
Vagrant Cascadian
Severity
important
V
V
Vagrant Cascadian wrote on 9 May 2021 22:07
(address . bug-guix@gnu.org)
87tunbr7qt.fsf@yucca
Both guix-daemon.service and guix-publish.service make use of
StandardError=syslog and StandardOutput=syslog.

When building a guix 1.2.0 or 1.3.0rc* on Debian, I get the following
warnings when checking with lintian:

W: guix: systemd-service-file-uses-deprecated-syslog-facility lib/systemd/system/guix-daemon.service StandardError=syslog
N:
W: systemd-service-file-uses-deprecated-syslog-facility
N:
N: The specified systemd service file specifies StandardOutput= or
N: StandardError= that references syslog or syslog-console.
N:
N: This is discouraged, and systemd versions 246 and above will log a
N: warning about this.
N:
N: Refer to
N: for details.
N:
N: Severity: warning
N:
N: Check: systemd

Following the above link has this to say:

* StandardError= and StandardOutput= in unit files no longer support
the "syslog" and "syslog-console" switches. They were long removed
from the documentation, but will now result in warnings when used,
and be converted to "journal" and "journal+console"
automatically.

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.

Presumably at some point support for this Standard*=syslog will be
dropped entirely from systemd...


live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCYJhBCgAKCRDcUY/If5cW
qsO3AQD3X1GtTyZ0UOUXXa2jCZEDXFv2xArBoxWY3mDl+Pv8bwD+MqdjYR8uRS7f
bQbZFsa0TiOQluK/Q3J3r+3Zx2x0WQY=
=zXXv
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 11 May 2021 23:12
control message for bug #48323
(address . control@debbugs.gnu.org)
87r1idug8e.fsf@gnu.org
severity 48323 important
quit
L
L
Ludovic Courtès wrote on 29 Apr 2022 16:51
Re: bug#48323: guix-daemon.service and guix-publish.service use deprecated StandardError/StandardOutput features
(name . Vagrant Cascadian)(address . vagrant@debian.org)(address . 48323@debbugs.gnu.org)
87fslw6izp.fsf@gnu.org
Hi!

Vagrant Cascadian <vagrant@debian.org> skribis:

Toggle quote (3 lines)
> Both guix-daemon.service and guix-publish.service make use of
> StandardError=syslog and StandardOutput=syslog.

[...]

Toggle quote (5 lines)
> 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.

Thanks,
Ludo’.
V
V
Vagrant Cascadian wrote on 20 Jul 2023 21:35
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48323@debbugs.gnu.org)
87a5vq1im2.fsf@wireframe
On 2022-04-29, Ludovic Courtès wrote:
Toggle quote (17 lines)
> Vagrant Cascadian <vagrant@debian.org> 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 <vagrant@debian.org>
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(-)

Toggle diff (34 lines)
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
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZLmMhQAKCRDcUY/If5cW
qu3nAP99/RzWW16Vb2dyu44npNUOSw92hqB3zQ0WbBOfdQwR8AD/Th7vhuZeY/Ya
SiUYB5R3GisDwaF1Uq7Fdb77rgx6Ygs=
=cPVr
-----END PGP SIGNATURE-----

V
V
Vagrant Cascadian wrote on 11 Mar 22:52 +0100
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 48323-done@debbugs.gnu.org)
87v85ssag4.fsf@contorta
On 2023-07-20, Vagrant Cascadian wrote:
Toggle quote (23 lines)
> On 2022-04-29, Ludovic Courtès wrote:
>> Vagrant Cascadian <vagrant@debian.org> 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...

And finally pushed the patch, as
5f100c68a4a8ef9ed5599bb99c910018869bc6f3!

live well,
vagrant
-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQRlgHNhO/zFx+LkXUXcUY/If5cWqgUCZe99HAAKCRDcUY/If5cW
qlXFAP9BGCX8WvcGH99FAVD8hY15IE2kzcb8WVe7jQliLoNXeQEA8BTMK6/yf34T
wz2qdYHFPoL/55TMkFO4gJKFEK7bYwU=
=8QW6
-----END PGP SIGNATURE-----

Closed
?