aports/main/util-linux/utmps.patch
Jakub Jirutka 03c38b93a1 main/util-linux: build with utmps
See 511351f2e01347483a8cdb8d4cecc4e3cea578fa
2021-12-20 20:28:48 +01:00

104 lines
3.3 KiB
Diff

From: Jakub Jirutka <jakub@jirutka.cz>
Date: Mon, 20 Dec 2021 18:52:00 +0100
Subject: [PATCH] Add support for utmps
Allow to link programs that use utmpx.h with utmps by passing relevant -I
and -l flags via variable UTMPX_CFLAGS and UTMPX_LIBS, respectively.
The following programs use utmpx.h: last, login, lslogins, agetty, wall, write.
Programs 'su' and 'runuser' include utmpx.h, but use only btmp which is not
supported on Alpine.
'utmpdump' includes utmpx.h, but doesn't log anything, just parses utmp/wtmp
files, so doesn't need to be linked with utmps.
--- a/include/pathnames.h
+++ b/include/pathnames.h
@@ -214,5 +214,13 @@
#define _PATH_DEV_RFKILL "/dev/rfkill"
#define _PATH_SYS_RFKILL "/sys/class/rfkill"
+#ifdef UTMPS_UTMPX_H
+/* override stub paths from <paths.h> with ones for utmps */
+# undef _PATH_UTMP
+# define _PATH_UTMP UTMPX_FILE
+# undef _PATH_WTMP
+# define _PATH_WTMP "/var/log/wtmp"
+#endif
+
#endif /* PATHNAMES_H */
--- a/login-utils/Makemodule.am
+++ b/login-utils/Makemodule.am
@@ -5,7 +5,8 @@
dist_noinst_DATA += login-utils/last.1.adoc
MANLINKS += login-utils/lastb.1
last_SOURCES = login-utils/last.c lib/monotonic.c
-last_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS)
+last_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
+last_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS) $(REALTIME_LIBS)
install-exec-hook-last:
cd $(DESTDIR)$(usrbin_execdir) && ln -sf last lastb
@@ -61,7 +62,9 @@
login-utils/login.c \
login-utils/logindefs.c \
login-utils/logindefs.h
-login_LDADD = $(LDADD) libcommon.la -lpam
+login_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
+login_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS) -lpam
+
if HAVE_LINUXPAM
login_LDADD += -lpam_misc
endif
@@ -237,8 +242,8 @@
login-utils/lslogins.c \
login-utils/logindefs.c \
login-utils/logindefs.h
-lslogins_LDADD = $(LDADD) libcommon.la libsmartcols.la
-lslogins_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
+lslogins_LDADD = $(LDADD) libcommon.la libsmartcols.la $(UTMPX_LIBS)
+lslogins_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS) -I$(ul_libsmartcols_incdir)
if HAVE_SELINUX
lslogins_LDADD += -lselinux
endif
--- a/term-utils/Makemodule.am
+++ b/term-utils/Makemodule.am
@@ -47,10 +47,11 @@
MANPAGES += term-utils/agetty.8
dist_noinst_DATA += term-utils/agetty.8.adoc
agetty_SOURCES = term-utils/agetty.c
+agetty_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
if USE_PLYMOUTH_SUPPORT
agetty_SOURCES += lib/plymouth-ctrl.c
endif
-agetty_LDADD = $(LDADD) libcommon.la
+agetty_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
if BSD
agetty_LDADD += -lutil
endif
@@ -91,9 +92,9 @@
term-utils/ttymsg.h
MANPAGES += term-utils/wall.1
dist_noinst_DATA += term-utils/wall.1.adoc
-wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) $(UTMPX_CFLAGS)
wall_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
-wall_LDADD = $(LDADD) libcommon.la
+wall_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
if USE_TTY_GROUP
if MAKEINSTALL_DO_CHOWN
install-exec-hook-wall::
@@ -111,9 +112,9 @@
MANPAGES += term-utils/write.1
dist_noinst_DATA += term-utils/write.1.adoc
write_SOURCES = term-utils/write.c
-write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) $(UTMPX_CFLAGS)
write_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
-write_LDADD = $(LDADD) libcommon.la
+write_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
if USE_TTY_GROUP
if MAKEINSTALL_DO_CHOWN