summaryrefslogtreecommitdiff
path: root/app-misc/screen/files/screen-4.4.0-utmp-musl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-misc/screen/files/screen-4.4.0-utmp-musl.patch')
-rw-r--r--app-misc/screen/files/screen-4.4.0-utmp-musl.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/app-misc/screen/files/screen-4.4.0-utmp-musl.patch b/app-misc/screen/files/screen-4.4.0-utmp-musl.patch
new file mode 100644
index 000000000000..990c73042cd0
--- /dev/null
+++ b/app-misc/screen/files/screen-4.4.0-utmp-musl.patch
@@ -0,0 +1,62 @@
+From 74fdc8988b55633cd05f8625390cd3f6a8102003 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Sat, 13 Jun 2015 17:52:46 +0200
+Subject: [PATCH] change checks for utmp/utmpx in header
+
+linuxes should've working utmpx, so this check was bit weird
+commit 2b1bdf96 mentions some "linux workaround", but nothing specific
+
+fixes build with musl libc
+---
+ os.h | 7 ++++---
+ utmp.c | 4 ++--
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/os.h b/os.h
+index 55de249..e827ac9 100644
+--- a/os.h
++++ b/os.h
+@@ -250,9 +250,11 @@ extern int errno;
+ #endif
+
+ #if defined(UTMPOK) || defined(BUGGYGETLOGIN)
+-# if defined(SVR4) && !defined(DGUX) && !defined(__hpux) && !defined(linux)
++# if defined(SVR4) && !defined(DGUX) && !defined(__hpux)
+ # include <utmpx.h>
+-# define UTMPFILE UTMPX_FILE
++# ifdef UTMPX_FILE /* GNU extension */
++# define UTMPFILE UTMPX_FILE
++# endif
+ # define utmp utmpx
+ # define getutent getutxent
+ # define getutid getutxid
+@@ -260,7 +262,6 @@ extern int errno;
+ # define pututline pututxline
+ # define setutent setutxent
+ # define endutent endutxent
+-# define ut_time ut_xtime
+ # else /* SVR4 */
+ # include <utmp.h>
+ # endif /* SVR4 */
+diff --git a/utmp.c b/utmp.c
+index fa8b87b..f5d7db8 100644
+--- a/utmp.c
++++ b/utmp.c
+@@ -631,7 +631,7 @@ int pid;
+ /* must use temp variable because of NetBSD/sparc64, where
+ * ut_xtime is long(64) but time_t is int(32) */
+ (void)time(&now);
+- u->ut_time = now;
++ u->ut_tv.tv_sec = now;
+ }
+
+ static slot_t
+@@ -743,7 +743,7 @@ int pid;
+ strncpy(u->ut_line, line, sizeof(u->ut_line));
+ strncpy(u->ut_name, user, sizeof(u->ut_name));
+ (void)time(&now);
+- u->ut_time = now;
++ u->ut_tv.tv_sec = now;
+ }
+
+ static slot_t