aboutsummaryrefslogtreecommitdiffstats
path: root/testing/libutempter
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2017-07-24 10:35:56 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2017-07-24 10:36:00 +0000
commit1b194a5a32adb133491572e509b8b40cbcea4e9b (patch)
treee58142731a1361cec5832122455d88a09c982cd0 /testing/libutempter
parentd37cff4d33fd463a287edb932a3a523efde63cd6 (diff)
downloadaports-1b194a5a32adb133491572e509b8b40cbcea4e9b.tar.bz2
aports-1b194a5a32adb133491572e509b8b40cbcea4e9b.tar.xz
testing/libutempter: new aport
Diffstat (limited to 'testing/libutempter')
-rw-r--r--testing/libutempter/APKBUILD30
-rw-r--r--testing/libutempter/libutempter-remove-glibc-assumption.patch81
2 files changed, 111 insertions, 0 deletions
diff --git a/testing/libutempter/APKBUILD b/testing/libutempter/APKBUILD
new file mode 100644
index 0000000000..ee5f8d88c1
--- /dev/null
+++ b/testing/libutempter/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=libutempter
+pkgver=1.1.6
+pkgrel=0
+pkgdesc="Library interface to record user sessions in utmp/wtmp files"
+url="http://freecode.com/projects/libutempter"
+arch="all"
+license="LGPL-2.1"
+subpackages="$pkgname-dev $pkgname-doc"
+options="suid !check"
+pkggroups="utmp"
+source="ftp://ftp.altlinux.org/pub/people/ldv/utempter/$pkgname-$pkgver.tar.bz2
+ libutempter-remove-glibc-assumption.patch"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ chown root:$pkggroups "$pkgdir/usr/lib/utempter/utempter"
+ chmod 2755 "$pkgdir/usr/lib/utempter/utempter"
+}
+
+sha512sums="6ada410b981d157ae20b578de8ce20997ec0446ec6de6859549b080aa65976fc9900d211600dab09dc3d0d109daabad0994a648b093b8781b442ff26ca17fede libutempter-1.1.6.tar.bz2
+2d487a44ae3c84417f3dd55917ae707bee682b811ebe7aefe8b50aa9f309f879a7f9ed5cbce08119b6fea7dfddb97702348cfbb05ed45e79f95952d15f0366ff libutempter-remove-glibc-assumption.patch"
diff --git a/testing/libutempter/libutempter-remove-glibc-assumption.patch b/testing/libutempter/libutempter-remove-glibc-assumption.patch
new file mode 100644
index 0000000000..6ed93355bb
--- /dev/null
+++ b/testing/libutempter/libutempter-remove-glibc-assumption.patch
@@ -0,0 +1,81 @@
+diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c
+--- libutempter-1.1.6.orig/utempter.c 2010-11-04 13:14:53.000000000 -0400
++++ libutempter-1.1.6/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);
+ }