diff options
Diffstat (limited to 'pcr/elogind')
-rw-r--r-- | pcr/elogind/PKGBUILD | 26 | ||||
-rw-r--r-- | pcr/elogind/elogind-219.12-runtime.patch | 43 | ||||
-rw-r--r-- | pcr/elogind/elogind.conf | 7 | ||||
-rw-r--r-- | pcr/elogind/elogind.init | 32 | ||||
-rw-r--r-- | pcr/elogind/elogind.install | 8 |
5 files changed, 59 insertions, 57 deletions
diff --git a/pcr/elogind/PKGBUILD b/pcr/elogind/PKGBUILD index dfc9c65ee..cbf5eb75e 100644 --- a/pcr/elogind/PKGBUILD +++ b/pcr/elogind/PKGBUILD @@ -3,14 +3,17 @@ pkgname=elogind pkgver=219.12 -pkgrel=2 +pkgrel=3 pkgdesc="The systemd project's logind, extracted to a standalone package" arch=('i686' 'x86_64' 'armv7h') -url="https://github.com/wingo/elogind" +url="https://github.com/elogind/elogind" license=('GPL') -depends=('dbus' 'polkit' 'libudev.so') -makedepends=('libcap' 'intltool' 'libtool' 'gperf' 'gtk-doc' 'libseccomp') -conflicts=('systemd-sysvcompat') +depends=('dbus' 'eudev-systemd') +makedepends=('libcap' 'intltool' 'libtool' 'gperf' 'gtk-doc' 'libseccomp' 'eudev') +optdepends=('polkit-elogind: polkit with elogind session tracking' + 'dbus-openrc: dbus openrc initscript' + 'elogind-openrc: elogind openrc initscript') +conflicts=('systemd-sysvcompat' 'consolekit') options=('!libtool') install=elogind.install source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz" @@ -20,8 +23,7 @@ source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/v${pkgver}.tar.gz" "elogind-219.12-login1-perms.patch" "elogind-219.12-gperf.patch" "elogind-219.12-glibc.patch" - "elogind.conf" - "elogind.init") + "elogind-219.12-runtime.patch") sha256sums=('80241494f5c794e8501ccf570ac805275ace368755780f38a18762fd06243f95' 'cafea7a13159dee700902e3837aab015d9521dfe122840faf2d909b5dc02229e' 'a9227ed4e97117ab5751de38c19813560a12f51379ccd882a89e7ef9842659ac' @@ -29,8 +31,7 @@ sha256sums=('80241494f5c794e8501ccf570ac805275ace368755780f38a18762fd06243f95' 'cef5dda99a51a42bc36d1a946d5a21a830bf0f44ed3f447542ec57c1424e0053' '9f6437abeba2f17d378482e262504f269998d54c6adb16eb16c4eda738065074' '5e7dfcf695c15a02d8151541c50e26c9e3140f5626d95bbec366aada5ce095d5' - '344db76bf8aadfba4363c63aacd93c945a647bd5e425d756cbfd9cb4453afc66' - '3e3ca3d384b9ced34360e697b2a6102b173731c8cf4f91e2901df68b33d73d44') + '78c5ae1461685634e975301abd521274a4c817ad7995cdfa81422e875f9146c1') prepare() { cd ${srcdir}/${pkgname}-${pkgver} @@ -40,7 +41,7 @@ prepare() { patch -Np 1 -i ${srcdir}/elogind-219.12-login1-perms.patch patch -Np 1 -i ${srcdir}/elogind-219.12-gperf.patch patch -Np 1 -i ${srcdir}/elogind-219.12-glibc.patch - + patch -Np 1 -i ${srcdir}/elogind-219.12-runtime.patch autoreconf -vim } @@ -50,6 +51,8 @@ build() { ./configure \ --sysconfdir=/etc \ --prefix=/usr \ + --enable-split-usr \ + --enable-smack \ --libexecdir=/usr/lib make @@ -58,7 +61,4 @@ build() { package() { cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR="${pkgdir}" install - - install -Dm755 ${srcdir}/elogind.init ${pkgdir}/etc/init.d/elogind - install -Dm755 ${srcdir}/elogind.conf ${pkgdir}/etc/conf.d/elogind } diff --git a/pcr/elogind/elogind-219.12-runtime.patch b/pcr/elogind/elogind-219.12-runtime.patch new file mode 100644 index 000000000..f14806c31 --- /dev/null +++ b/pcr/elogind/elogind-219.12-runtime.patch @@ -0,0 +1,43 @@ +From 276746896985c438d317fcae414e9c83a6dd3d76 Mon Sep 17 00:00:00 2001 +From: Sven Eden <yamakuzure@gmx.net> +Date: Fri, 20 Jan 2017 17:14:35 +0100 +Subject: [PATCH] Create /run/systemd as needed + +* src/login/logind.c (main): Also create /run/systemd at startup. +* Create /run/systemd/machines, so that the login monitor works. +* Fail if any of the needed directories could not be created. +* But do not fail if any of the needed directories exist. +--- + src/login/logind.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +diff --git a/src/login/logind.c b/src/login/logind.c +index 1ab50ec..07a77b1 100644 +--- a/src/login/logind.c ++++ b/src/login/logind.c +@@ -1131,10 +1131,21 @@ int main(int argc, char *argv[]) { + * existence of /run/systemd/seats/ to determine whether + * logind is available, so please always make sure this check + * stays in. */ +- mkdir_label("/run/systemd/seats", 0755); +- mkdir_label("/run/systemd/users", 0755); +- mkdir_label("/run/systemd/sessions", 0755); +- mkdir_label("/run/systemd/machines", 0755); ++ r = mkdir_label("/run/systemd", 0755); ++ if ( (r < 0) && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd : %m"); ++ r = mkdir_label("/run/systemd/seats", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/seats : %m"); ++ r = mkdir_label("/run/systemd/users", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/users : %m"); ++ r = mkdir_label("/run/systemd/sessions", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/sessions : %m"); ++ r = mkdir_label("/run/systemd/machines", 0755); ++ if ( r < 0 && (-EEXIST != r) ) ++ return log_error_errno(r, "Failed to create /run/systemd/machines : %m"); + + m = manager_new(); + if (!m) { diff --git a/pcr/elogind/elogind.conf b/pcr/elogind/elogind.conf deleted file mode 100644 index 167260a42..000000000 --- a/pcr/elogind/elogind.conf +++ /dev/null @@ -1,7 +0,0 @@ -# /etc/conf.d/elogind: config file for /etc/init.d/elogind - -# this is the elogind executable -ELOGIND_EXEC="/usr/lib/elogind/elogind" - -# this is where elogind will store its pid file -ELOGIND_PIDFILE="/run/elogind.pid" diff --git a/pcr/elogind/elogind.init b/pcr/elogind/elogind.init deleted file mode 100644 index 65a28e9c7..000000000 --- a/pcr/elogind/elogind.init +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/openrc-run -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -depend() { - need dbus - - # Make sure elogind is up before xdm starts any dm - before xdm -} - -start() { - ebegin "Starting elogind" - - # elogind needs a /run/systemd directory - if [[ ! -e /run/systemd ]]; then - mkdir -p /run/systemd - chmod 644 /run/systemd - fi - - start-stop-daemon --start --quiet --background \ - --make-pidfile --pidfile "${ELOGIND_PIDFILE}" \ - --exec "${ELOGIND_EXEC}" - eend $? -} - -stop() { - ebegin "Stopping elogind" - start-stop-daemon --stop --quiet --pidfile "${ELOGIND_PIDFILE}" - eend $? -} diff --git a/pcr/elogind/elogind.install b/pcr/elogind/elogind.install index 28cd5b59c..9a271f840 100644 --- a/pcr/elogind/elogind.install +++ b/pcr/elogind/elogind.install @@ -1,9 +1,7 @@ post_install() { - echo " ==> /etc/pam.d/system-login" - echo " ==> Replace pam_systemd.so in your pam config with:" - echo ' session optional pam_elogind.so' + sed -e 's|pam_systemd.so|pam_elogind.so|' -i etc/pam.d/system-login } -post_upgrade() { - post_install $1 +post_remove(){ + sed -e 's|pam_elogind.so|pam_systemd.so|' -i etc/pam.d/system-login } |