summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/physlock/APKBUILD28
-rw-r--r--user/physlock/utmps.patch33
2 files changed, 61 insertions, 0 deletions
diff --git a/user/physlock/APKBUILD b/user/physlock/APKBUILD
new file mode 100644
index 000000000..a2c4e471f
--- /dev/null
+++ b/user/physlock/APKBUILD
@@ -0,0 +1,28 @@
+# Contributor: Max Rees <maxcrees@me.com>
+# Maintainer: Max Rees <maxcrees@me.com>
+pkgname=physlock
+pkgver=11
+pkgrel=0
+pkgdesc="Lightweight Linux console-locking tool"
+url="https://github.com/muennich/physlock"
+arch="all"
+options="!check suid" # No test suite.
+license="GPL-2.0+"
+depends=""
+makedepends="linux-headers linux-pam-dev utmps-dev"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/muennich/physlock/archive/v$pkgver.tar.gz
+ utmps.patch"
+
+build() {
+ cd "$builddir"
+ make
+}
+
+package() {
+ cd "$builddir"
+ make PREFIX="/usr" DESTDIR="$pkgdir" install
+}
+
+sha512sums="d3badf5c99e4e3e16f4e7ec5c59ee8320c845f1b180463900d816206362ce1aa8652f2489453ad5e190cceee2ed61a90acc52e25bb6b4c4a9dc8c4ebd3054938 physlock-11.tar.gz
+d461b462dedfb7505f506ce1050d5140b8729f50a383157157e4f65465f63174cc11dc0a46cc1eed57cec0293006c5ec6cc6e96af9acab009ab3c9fe5e2381d5 utmps.patch"
diff --git a/user/physlock/utmps.patch b/user/physlock/utmps.patch
new file mode 100644
index 000000000..efae166a9
--- /dev/null
+++ b/user/physlock/utmps.patch
@@ -0,0 +1,33 @@
+--- physlock-11/auth.c 2017-07-13 07:23:52.000000000 +0000
++++ physlock-11/auth.c 2018-09-21 21:21:36.240024566 +0000
+@@ -16,13 +16,14 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
++#define _GNU_SOURCE
+ #include <paths.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <pwd.h>
+ #include <unistd.h>
+-#include <utmp.h>
++#include <utmpx.h>
+ #include <errno.h>
+ #include <security/pam_misc.h>
+
+@@ -41,12 +42,12 @@ static void get_pam(userinfo_t *uinfo) {
+
+ void get_user(userinfo_t *uinfo, int vt, uid_t owner) {
+ FILE *uf;
+- struct utmp r;
++ struct utmpx r;
+ struct passwd *pw;
+ char tty[16], name[UT_NAMESIZE+1];
+
+ uinfo->name = NULL;
+- while ((uf = fopen(_PATH_UTMP, "r")) == NULL && errno == EINTR);
++ while ((uf = fopen(UTMPX_FILE, "r")) == NULL && errno == EINTR);
+
+ if (uf != NULL) {
+ snprintf(tty, sizeof(tty), "tty%d", vt);