On Mon, 27 May 2024 at 03:29:53 +0100, Luca Boccassi wrote:
> In Bookworm we enabled persistent journald by default, which was the
> right choice. The problem is that some packages declare a dependency on
> the virtual package system-log-daemon, which we cannot add on systemd
> given it would make rsyslog and other packages that also declare it
> uninstallable, which is not nice.

Expanding on that a little, because it isn't 100% obvious:

rsyslog and other system-log-daemon implementations have
Provides/Conflicts system-log-daemon. I believe the idea is that this
is required in order to avoid having more than one system-log-daemon
implementation try to listen on the same AF_UNIX socket (/dev/log)
on non-systemd systems, which would not work.

On systemd systems, if I understand correctly it's always the Journal
that listens on that socket, and the system-log-daemon is responsible
for switching into a mode where it receives messages from the Journal -
is that correct? (But this probably still only works for a single
system-log-daemon at a time, and having more than one wouldn't make sense
even if it does work, because they'd fight over filenames like
/var/log/syslog.)

systemd(-sysv) could add Provides: system-log-daemon and it would satisfy
the Depends by the packages mentioned in this MBF, but that would still
make rsyslog uninstallable, because the Conflicts is still effective
even if only one side of the conflict declares it.

We presumably want rsyslog etc. to remain installable on systemd systems,
because some sysadmins don't want to rely on the persistent Journal as
their only log destination, and would prefer to have a text version that
can remain somewhat readable even in the presence of file corruption, or
would prefer to have a text version because their other tools consume it.

So the only remaining choice is the status quo: systemd(-sysv) *do not*
have a Provides: system-log-daemon. But then most of the dependent
packages need to change, if we want the persistent Journal to be enough
to satisfy their dependencies (which makes sense).

Is that all correct?

    smcv

Reply via email to