Your message dated Thu, 28 Aug 2025 12:27:03 -0400
with message-id <[email protected]>
and subject line Re: Bug#1112334: coreutils: systemd integration broke "who" in 
trixie/sysvinit --- workaround
has caused the Debian Bug report #1112334,
regarding coreutils: systemd integration broke "who" in trixie/sysvinit --- 
workaround
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1112334: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1112334
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: coreutils
Version: 9.7-3
Severity: normal
Tags: upstream

TLDR

$ who | wc -l
0
$ who /var/run/utmp | wc -l
0
$ who /var/run/./utmp | wc -l
10
$ alias who='who /run/utmp'
$ who /run/utmp | wc -l
10

/TLDR

In lib/readutmp.c (gnulib), read_utmp() invokes read_utmp_from_systemd()
instead of read_utmp_from_file() when the <file> parameter equals the
default utmp filename "/var/run/wtmp":

 1  int
 2  read_utmp (char const *file, idx_t *n_entries, STRUCT_UTMP **utmp_buf,
 3             int options)
 4  { 
 5  # if READUTMP_USE_SYSTEMD
 6      if (strcmp (file, UTMP_FILE) == 0)
 7          /* Imitate reading UTMP_FILE, using systemd and Linux APIs.  */
 8          return read_utmp_from_systemd (n_entries, utmp_buf, options);
 9  # endif

In turn read_utmp_from_systemd() ignores all entries from the utmp file,
at least when no seat manager is running, and possibly also in other
scenarios.

The READUTMP_USE_SYSTEMD macro is defined during the configure phase
(m4/readutmp.m4), depending on the test program

    #include <stdint.h>
    #include <systemd/sd-login.h>
    int main() {
        uint64_t st;
        sd_session_get_start_time ("1", &st);
    }

which fails to compile in bookworm (because sd_session_get_start_time()
is not available in libsystemd 252.38), but unfortunately succeeds in
trixie (libsystemd 257.7).

However, line 6 above permits a workaround: use a different filename
from the predefined UTMP_FILE.

RANT

Upstream made a number of decisions that IMHO are not very brilliant:

- entangle core utilities with a library belonging to a specific
  init/service-manager implementation

- change the behaviour of the (POSIX standard) "who" utility without making
  the change opt-in, or at least providing an option/env-var to restore the
  classic behaviour

- ignore user intent on "who <filename>" if filename happens to be the
  usual one or empty (default)

- accept the fact that `"who" needs to ask seat manager', because
  of course the best way to read a file is through an IPC to a daemon that 
  might not be running on the system.

/RANT

Best regards,
        g.b. (a greybeard)

-- System Information:
Debian Release: 13.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.41+deb13-amd64 (SMP w/8 CPU threads; PREEMPT)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages coreutils depends on:
ii  libacl1      2.3.2-2+b1
ii  libattr1     1:2.5.2-3
ii  libc6        2.41-12
ii  libcap2      1:2.75-10+b1
ii  libgmp10     2:6.3.0+dfsg-3
ii  libselinux1  3.8.1-1
ii  libssl3t64   3.5.1-1
ii  libsystemd0  257.7-1

coreutils recommends no packages.

coreutils suggests no packages.

-- no debconf information

--- End Message ---
--- Begin Message ---
On Thu, Aug 28, 2025 at 05:18:12PM +0200, g1 wrote:
Upstream made a number of decisions that IMHO are not very brilliant:

upstream didn't have a lot of options. I was in the same position, because even though I thought dropping utmp for trixie was a mistake, it happened anyway and even though some utilities are still writing utmp entries, most are not. I really wish that trixie had supported both options, but when systemd changed unilaterally this outcome was forced.
--- End Message ---

Reply via email to