summaryrefslogtreecommitdiff
path: root/repo/system/elogind
diff options
context:
space:
mode:
Diffstat (limited to 'repo/system/elogind')
-rw-r--r--repo/system/elogind/elogind.initd23
-rw-r--r--repo/system/elogind/elogind.xibuild93
-rw-r--r--repo/system/elogind/id-nobody.patch13
-rw-r--r--repo/system/elogind/mips.patch11
-rw-r--r--repo/system/elogind/ppc64-bad-tuple.patch25
-rw-r--r--repo/system/elogind/ppcle.patch25
6 files changed, 190 insertions, 0 deletions
diff --git a/repo/system/elogind/elogind.initd b/repo/system/elogind/elogind.initd
new file mode 100644
index 0000000..0c22ca9
--- /dev/null
+++ b/repo/system/elogind/elogind.initd
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+supervisor=supervise-daemon
+
+name="System login manager"
+description="System service that manages user logins"
+description_reload="Reload configuration without exiting"
+
+command=/usr/libexec/elogind/elogind
+
+depend() {
+ need dbus
+
+ # Make sure we start before any other display manager
+ before display-manager
+}
+
+extra_started_commands="reload"
+
+reload() {
+ ebegin "Reloading configuration"
+ $supervisor $RC_SVCNAME --signal HUP
+ eend $?
+}
diff --git a/repo/system/elogind/elogind.xibuild b/repo/system/elogind/elogind.xibuild
new file mode 100644
index 0000000..c5f1774
--- /dev/null
+++ b/repo/system/elogind/elogind.xibuild
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+MAKEDEPS="make docbook4-xml docbook-xsl docbook-dtd libxslt util-linux glib acl m4"
+DEPS="pam gperf eudev"
+
+PKG_VER=246.10
+SOURCE=https://github.com/elogind/elogind/archive/v$PKG_VER/elogind-$PKG_VER.tar.gz
+ADDITIONAL="
+id-nobody.patch
+mips.patch
+ppc64-bad-tuple.patch
+ppcle.patch
+elogind.initd
+"
+DESC="The standalone logind daemon"
+
+prepare () {
+ sed -i '/Disable polkit/,+8 d' meson.build
+
+ for p in *.patch; do
+ patch -Np1 -i $p
+ done
+
+ # skip the check that the source tree is "too far"
+ # (the assert_cc line)
+ sed -i '83d' src/basic/log.h
+
+ # remove -v options
+ sed -i 's/-v/-/g' tools/meson-symlink_headers.sh
+}
+
+build () {
+ # TODO re-enable BUILD_MANS
+ meson \
+ -Dcgroup-controller=elogind \
+ -Dhalt-path=/sbin/halt \
+ -Drootlibexecdir=/usr/libexec/elogind \
+ -Dreboot-path=/sbin/reboot \
+ -Ddefault-hierarchy=hybrid \
+ -Ddefault-kill-user-processes=false \
+ -Dpolkit=false \
+ -Dman=false \
+ build
+
+ ninja -C build
+
+}
+
+package () {
+ DESTDIR="$PKG_DEST" meson install --no-rebuild -C build
+
+ ln -sf libelogind.pc $PKG_DEST/usr/lib/pkgconfig/libsystemd.pc &&
+ ln -sf elogind $PKG_DEST/usr/include/systemd
+
+ install -Dm755 elogind.initd $PKG_DEST/etc/init.d/elogind
+
+
+ sed -e '/\[Login\]/a KillUserProcesses=no' \
+ -i $PKG_DEST/etc/elogind/logind.conf
+
+ cat >> $PKG_DEST/etc/pam.d/system-session << "EOF" &&
+# Begin elogind addition
+
+session required pam_loginuid.so
+session optional pam_elogind.so
+
+# End elogind addition
+EOF
+ cat > $PKG_DEST/etc/pam.d/elogind-user << "EOF"
+# Begin /etc/pam.d/elogind-user
+
+account required pam_access.so
+account include system-account
+
+session required pam_env.so
+session required pam_limits.so
+session required pam_unix.so
+session required pam_loginuid.so
+session optional pam_keyinit.so force revoke
+session optional pam_elogind.so
+
+auth required pam_deny.so
+password required pam_deny.so
+
+# End /etc/pam.d/elogind-user
+EOF
+
+
+}
+
+postinstall () {
+ rc-update add elogind
+}
diff --git a/repo/system/elogind/id-nobody.patch b/repo/system/elogind/id-nobody.patch
new file mode 100644
index 0000000..5e9e5cd
--- /dev/null
+++ b/repo/system/elogind/id-nobody.patch
@@ -0,0 +1,13 @@
+--- a/src/basic/user-util.h
++++ b/src/basic/user-util.h
+@@ -70,8 +70,8 @@ int take_etc_passwd_lock(const char *root);
+ #define UID_INVALID ((uid_t) -1)
+ #define GID_INVALID ((gid_t) -1)
+
+-#define UID_NOBODY ((uid_t) 65534U)
+-#define GID_NOBODY ((gid_t) 65534U)
++#define UID_NOBODY ((uid_t) 99U)
++#define GID_NOBODY ((gid_t) 99U)
+
+ #define ETC_PASSWD_LOCK_PATH "/etc/.pwd.lock"
+
diff --git a/repo/system/elogind/mips.patch b/repo/system/elogind/mips.patch
new file mode 100644
index 0000000..ca1c097
--- /dev/null
+++ b/repo/system/elogind/mips.patch
@@ -0,0 +1,11 @@
+--- a/src/basic/missing_syscall.h 2021-01-15 08:12:02.000000000 +0100
++++ b/src/basic/missing_syscall.h 2021-02-24 07:20:32.026355819 +0100
+@@ -11,7 +11,7 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+
+-#ifdef ARCH_MIPS
++#if defined(_MIPSEL) || defined(_MIPSEB)
+ #include <asm/sgidefs.h>
+ #endif
+
diff --git a/repo/system/elogind/ppc64-bad-tuple.patch b/repo/system/elogind/ppc64-bad-tuple.patch
new file mode 100644
index 0000000..f6237ff
--- /dev/null
+++ b/repo/system/elogind/ppc64-bad-tuple.patch
@@ -0,0 +1,25 @@
+From 0ce8ef86e8bfc872b40bc090fea9873fa1f51836 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Thu, 21 Jan 2021 22:22:28 +0100
+Subject: [PATCH] fix ppc64 arch tuple
+
+---
+ src/basic/architecture.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git src/basic/architecture.h src/basic/architecture.h
+index 620b522..3ea6e52 100644
+--- a/src/basic/architecture.h
++++ b/src/basic/architecture.h
+@@ -77,7 +77,7 @@ int uname_architecture(void);
+ #elif defined(__powerpc64__)
+ # if __BYTE_ORDER == __BIG_ENDIAN
+ # define native_architecture() ARCHITECTURE_PPC64
+-# define LIB_ARCH_TUPLE "ppc64-linux-gnu"
++# define LIB_ARCH_TUPLE "powerpc64-linux-gnu"
+ # define SECONDARY_ARCHITECTURE ARCHITECTURE_PPC
+ # else
+ # define native_architecture() ARCHITECTURE_PPC64_LE
+--
+2.30.0
+
diff --git a/repo/system/elogind/ppcle.patch b/repo/system/elogind/ppcle.patch
new file mode 100644
index 0000000..b986b0f
--- /dev/null
+++ b/repo/system/elogind/ppcle.patch
@@ -0,0 +1,25 @@
+From 836f3efb84a703b3594906572a54616d25cecf5e Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Thu, 21 Jan 2021 21:59:12 +0100
+Subject: [PATCH] add ppcle arch tuple
+
+---
+ src/basic/architecture.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git src/basic/architecture.h src/basic/architecture.h
+index 620b522..afdff7a 100644
+--- a/src/basic/architecture.h
++++ b/src/basic/architecture.h
+@@ -94,7 +94,7 @@ int uname_architecture(void);
+ # endif
+ # else
+ # define native_architecture() ARCHITECTURE_PPC_LE
+-# error "Missing LIB_ARCH_TUPLE for PPCLE"
++# define LIB_ARCH_TUPLE "powerpcle-linux-gnu"
+ # endif
+ #elif defined(__ia64__)
+ # define native_architecture() ARCHITECTURE_IA64
+--
+2.30.0
+