Hello,
Since UTMPX_FILE is already defined I figure its W counterpart might
as well be defined.
>From a logical standpoint, updwtmpx(3) and utmpxname(3) requires the
path to the wtmp file as an argument, but the location of wtmp is
non-standard and varies by platform. Some packages use WTMPX_FILE as
the "portable" definition of this path.
>From a practical standpoint, the OpenSSH package relies on the
presence of this #define to enable its wtmpx update code during its
build configuration phase, and its wtmpx update code passes WTMPX_FILE
as the first argument to updwtmpx(3).
Despite their appearance the (U|W)TMPX_FILE macros may not be
GNU-isms. It looks like they were added to glibc for compatibility
with some *nix flavors. I found some references in some unexpected
places, such as SCO Unix [1] which puts them in /etc, and SGI Irix [2]
which puts them in /var/adm.
Here's a patch for your consideration:
--- utmps-0.1.0.0/src/include/utmps/utmpx.h 2020-12-28
11:33:23.000000000 +0100
+++ utmps-0.1.0.0/src/include/utmps/utmpx.h.new 2021-04-10
07:50:25.454249526 +0200
_at_@ -67,8 +67,9 @@
#define UT_NAMESIZE UTMPS_UT_NAMESIZE
#define UT_HOSTSIZE UTMPS_UT_HOSTSIZE
-/* Unused, but some packages (ex: procps-ng) require this macro to be
present */
+/* Unused, but some packages (ex: procps-ng) require these macros to
be present */
#define UTMPX_FILE "/run/utmps/utmp"
+#define WTMPX_FILE "/run/utmps/wtmp"
/* More old GNU/crap compatibility */
#define ut_name ut_user
--
Other than that OpenSSH builds and works fine (on Linux-musl) with
utmps without any code change on either side.
[1] <http://osr507doc.sco.com/en/man/html.F/utmpx.F.html>
[2] <https://nixdoc.net/man-pages/IRIX/man4/utmpx.4.html>
Received on Sat Apr 10 2021 - 18:28:38 UTC