diff options
Diffstat (limited to 'repo/system/elogind')
-rw-r--r-- | repo/system/elogind/elogind.initd | 23 | ||||
-rw-r--r-- | repo/system/elogind/elogind.xibuild | 93 | ||||
-rw-r--r-- | repo/system/elogind/id-nobody.patch | 13 | ||||
-rw-r--r-- | repo/system/elogind/mips.patch | 11 | ||||
-rw-r--r-- | repo/system/elogind/ppc64-bad-tuple.patch | 25 | ||||
-rw-r--r-- | repo/system/elogind/ppcle.patch | 25 |
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 + |