summaryrefslogtreecommitdiff
path: root/repo/system/elogind/elogind.xibuild
diff options
context:
space:
mode:
Diffstat (limited to 'repo/system/elogind/elogind.xibuild')
-rw-r--r--repo/system/elogind/elogind.xibuild93
1 files changed, 93 insertions, 0 deletions
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
+}