void-packages/srcpkgs/libutempter/patches/libutempter-remove-glibc-assumption.patch
2015-05-14 10:40:35 +02:00

81 lines
1.7 KiB
Diff

diff -Naur utempter.c.orig utempter.c
--- utempter.c.orig 2010-11-04 13:14:53.000000000 -0400
+++ utempter.c 2014-06-20 16:37:09.762403323 -0400
@@ -34,13 +34,7 @@
#include <sys/stat.h>
#include <utmp.h>
-#ifdef __GLIBC__
# include <pty.h>
-#elif defined(__FreeBSD__)
-# include <libutil.h>
-#else
-# error Unsupported platform
-#endif /* __GLIBC__ || __FreeBSD__ */
#define DEV_PREFIX "/dev/"
#define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1)
@@ -106,17 +100,12 @@
static int
write_uwtmp_record(const char *user, const char *term, const char *host,
-#ifdef __GLIBC__
pid_t pid,
-#endif
int add)
{
struct utmp ut;
struct timeval tv;
-
-#ifdef __GLIBC__
size_t offset;
-#endif
memset(&ut, 0, sizeof(ut));
@@ -128,8 +117,6 @@
if (host)
strncpy(ut.ut_host, host, sizeof(ut.ut_host));
-#ifdef __GLIBC__
-
offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 :
strlen(term) - sizeof(ut.ut_id);
strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id));
@@ -156,27 +143,6 @@
(void) updwtmp(_PATH_WTMP, &ut);
-#elif defined(__FreeBSD__)
-
- ut.ut_time = tv.tv_sec;
-
- if (add)
- {
- login(&ut);
- } else
- {
- if (logout(term) != 1)
- {
-#ifdef UTEMPTER_DEBUG
- fprintf(stderr, "utempter: logout: %s\n",
- strerror(errno));
-#endif
- exit(EXIT_FAILURE);
- }
- }
-
-#endif /* __GLIBC__ || __FreeBSD__ */
-
#ifdef UTEMPTER_DEBUG
fprintf(stderr,
"utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n",
@@ -255,8 +221,6 @@
validate_device(device);
return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host,
-#ifdef __GLIBC__
pid,
-#endif
add);
}