GNU bug report logs - #64954
GNU 'uptime' on OpenBSD always prints "0 users"

Previous Next

Package: coreutils;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Sun, 30 Jul 2023 14:45:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#64954: closed (GNU 'uptime' on OpenBSD always prints "0 users")
Date: Mon, 31 Jul 2023 16:30:03 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 31 Jul 2023 09:29:09 -0700
with message-id <9bfee489-03ae-706d-b9f6-de2bc51e6a22 <at> cs.ucla.edu>
and subject line Re: bug#64954: GNU 'uptime' on OpenBSD always prints "0 users"
has caused the debbugs.gnu.org bug report #64954,
regarding GNU 'uptime' on OpenBSD always prints "0 users"
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
64954: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64954
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Bruno Haible <bruno <at> clisp.org>
To: bug-coreutils <at> gnu.org
Subject: GNU 'uptime' on OpenBSD always prints "0 users"
Date: Sun, 30 Jul 2023 16:44:25 +0200
[Message part 3 (text/plain, inline)]
Hi,

GNU coreutils-9.3 'uptime', on OpenBSD 7.2, prints

 16:24:53  up 14 days 13:33,  0 users,  load average: 0.04, 0.44, 0.59

whereas the OpenBSD /usr/bin/uptime prints

 4:24PM  up 14 days, 13:33, 1 user, load averages: 0.04, 0.44, 0.59

The utmp file contain these entries:

    Time (GMT)           User          PID     Term Exit Boot User Process
------------------- --------------- ---------- ---- ---- ---- ------------
1970-01-01 00:00:00                          0   0    0            
1970-01-01 00:00:00                          0   0    0            
2023-07-16 00:52:00 bruno                    0   0    0            

The readutmp.h code, in particular the IS_USER_PROCESS macro, works fine.
(UT_TYPE_USER_PROCESS (U) expands to 0, and UT_TYPE_NOT_DEFINED expands to 1.)

The problem is that the readutmp code is entirely disabled on this platform.
Which is not appropriate.

When I revert the coreutils commit 2984e47c789ebc39f55a3b1cb20b943de88eeedc,
the coreutils 'uptime' program prints "1 user", as expected.

The rationale of that commit was wrong:
"Following gnulib commit 9041103 HAVE_UTMP_H will always be defined."
No, what that gnulib commit did is to create an <utmp.h> replacement
if the package imports the 'login_tty' module. But the HAVE_UTMP_H
is *still* only defined if the platform provides it.
Proof: On FreeBSD 13.2, which does not have <utmp.h> (it has <utmpx.h>
instead), configuring coreutils-9.3 produces the attached config.h,
which has

#define HAVE_UTMPX_H 1
/* #undef HAVE_UTMP_H */

So, find attached the fix of the bug.

[freebsd-13.2-config.h (text/x-chdr, attachment)]
[0001-uptime-Print-the-correct-number-of-users-on-OpenBSD.patch (text/x-patch, attachment)]
[Message part 6 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Bruno Haible <bruno <at> clisp.org>, Pádraig Brady
 <P <at> draigbrady.com>
Cc: 64954-done <at> debbugs.gnu.org, bug-gnulib <at> gnu.org
Subject: Re: bug#64954: GNU 'uptime' on OpenBSD always prints "0 users"
Date: Mon, 31 Jul 2023 09:29:09 -0700
Thanks, I propagated that into Coreutils and installed the simplified 
patch I mentioned yesterday. Closing the coreutils bug report.


This bug report was last modified 1 year and 358 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.