summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-05-29 22:15:39 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2021-05-29 23:16:22 +0200
commit5f6b0a2e892790e3dfdb313fe5bb544753cb1133 (patch)
tree371cd44731353bcf1d8b4408c0cba14369ab5f02 /sys-auth/elogind
parentkde-plasma/breeze: Drop 5.21.5 (r0) (diff)
downloadgentoo-5f6b0a2e892790e3dfdb313fe5bb544753cb1133.tar.gz
gentoo-5f6b0a2e892790e3dfdb313fe5bb544753cb1133.tar.bz2
gentoo-5f6b0a2e892790e3dfdb313fe5bb544753cb1133.zip
sys-auth/elogind: Revert polkit automagic
Thanks-to: Lars Wendler <polynomial-c@gentoo.org> Package-Manager: Portage-3.0.19, Repoman-3.0.3 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'sys-auth/elogind')
-rw-r--r--sys-auth/elogind/elogind-246.10-r1.ebuild149
-rw-r--r--sys-auth/elogind/files/elogind-246.10-revert-polkit-automagic.patch38
2 files changed, 187 insertions, 0 deletions
diff --git a/sys-auth/elogind/elogind-246.10-r1.ebuild b/sys-auth/elogind/elogind-246.10-r1.ebuild
new file mode 100644
index 000000000000..0a496b26e71a
--- /dev/null
+++ b/sys-auth/elogind/elogind-246.10-r1.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+if [[ ${PV} = *9999* ]]; then
+ EGIT_BRANCH="v241-stable"
+ EGIT_REPO_URI="https://github.com/elogind/elogind.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+inherit linux-info meson pam udev xdg-utils
+
+DESCRIPTION="The systemd project's logind, extracted to a standalone package"
+HOMEPAGE="https://github.com/elogind/elogind"
+
+LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
+SLOT="0"
+IUSE="+acl audit debug doc +pam +policykit selinux"
+
+BDEPEND="
+ app-text/docbook-xml-dtd:4.2
+ app-text/docbook-xml-dtd:4.5
+ app-text/docbook-xsl-stylesheets
+ dev-util/gperf
+ dev-util/intltool
+ virtual/pkgconfig
+"
+DEPEND="
+ audit? ( sys-process/audit )
+ sys-apps/util-linux
+ sys-libs/libcap
+ virtual/libudev:=
+ acl? ( sys-apps/acl )
+ pam? ( sys-libs/pam )
+ selinux? ( sys-libs/libselinux )
+"
+RDEPEND="${DEPEND}
+ !sys-apps/systemd
+"
+PDEPEND="
+ sys-apps/dbus
+ policykit? ( sys-auth/polkit )
+"
+
+DOCS=( README.md src/libelogind/sd-bus/GVARIANT-SERIALIZATION )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-243.7-nodocs.patch"
+ "${FILESDIR}/${PN}-241.4-broken-test.patch" # bug 699116
+ "${FILESDIR}/${P}-revert-polkit-automagic.patch"
+)
+
+pkg_setup() {
+ local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
+
+ use kernel_linux && linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+}
+
+src_configure() {
+ local rccgroupmode="$(grep rc_cgroup_mode ${EPREFIX}/etc/rc.conf | cut -d '"' -f 2)"
+ local cgroupmode="legacy"
+
+ if [[ "xhybrid" = "x${rccgroupmode}" ]] ; then
+ cgroupmode="hybrid"
+ elif [[ "xunified" = "x${rccgroupmode}" ]] ; then
+ cgroupmode="unified"
+ fi
+
+ local emesonargs=(
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
+ -Dpamlibdir=$(getpam_mod_dir)
+ -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ -Drootlibdir="${EPREFIX}"/$(get_libdir)
+ -Drootlibexecdir="${EPREFIX}"/$(get_libdir)/elogind
+ -Drootprefix="${EPREFIX}/"
+ -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
+ -Dman=auto
+ -Dsmack=true
+ -Dcgroup-controller=openrc
+ -Ddefault-hierarchy=${cgroupmode}
+ -Ddefault-kill-user-processes=false
+ -Dacl=$(usex acl true false)
+ -Daudit=$(usex audit true false)
+ --buildtype $(usex debug debug release)
+ -Dhtml=$(usex doc auto false)
+ -Dpam=$(usex pam true false)
+ -Dselinux=$(usex selinux true false)
+ -Dutmp=$(usex elibc_musl false true)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ DOCS+=( src/libelogind/sd-bus/GVARIANT-SERIALIZATION )
+
+ meson_src_install
+
+ newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
+
+ sed -e "s/@libdir@/$(get_libdir)/" "${FILESDIR}"/${PN}.conf.in > ${PN}.conf || die
+ newconfd ${PN}.conf ${PN}
+}
+
+pkg_postinst() {
+ if ! use pam; then
+ ewarn "${PN} will not be managing user logins/seats without USE=\"pam\"!"
+ ewarn "In other words, it will be useless for most applications."
+ ewarn
+ fi
+ if ! use policykit; then
+ ewarn "loginctl will not be able to perform privileged operations without"
+ ewarn "USE=\"policykit\"! That means e.g. no suspend or hibernate."
+ ewarn
+ fi
+ if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
+ elog "elogind is currently started from boot runlevel."
+ elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
+ ewarn "elogind is currently started from default runlevel."
+ ewarn "Please remove elogind from the default runlevel and"
+ ewarn "add it to the boot runlevel by:"
+ ewarn "# rc-update del elogind default"
+ ewarn "# rc-update add elogind boot"
+ else
+ elog "elogind is currently not started from any runlevel."
+ elog "You may add it to the boot runlevel by:"
+ elog "# rc-update add elogind boot"
+ elog
+ elog "Alternatively, you can leave elogind out of any"
+ elog "runlevel. It will then be started automatically"
+ if use pam; then
+ elog "when the first service calls it via dbus, or"
+ elog "the first user logs into the system."
+ else
+ elog "when the first service calls it via dbus."
+ fi
+ fi
+}
diff --git a/sys-auth/elogind/files/elogind-246.10-revert-polkit-automagic.patch b/sys-auth/elogind/files/elogind-246.10-revert-polkit-automagic.patch
new file mode 100644
index 000000000000..5237b7abe72a
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-246.10-revert-polkit-automagic.patch
@@ -0,0 +1,38 @@
+From 715ce0a6459e418f92e74c7ce52df3244c18f383 Mon Sep 17 00:00:00 2001
+From: Sven Eden <sven.eden@prydeworx.com>
+Date: Mon, 8 Mar 2021 08:40:08 +0100
+Subject: [PATCH] Revert "Disable polkit support if libpolkit is not installed"
+
+This reverts commit 1194dec4f8f2d1b8bd14e1625f34418ecfce817e.
+
+Removing polkit support with -Dpolkit=auto when libpolkit is not
+installed, removes the whole interface. This makes it impossible to
+add polkit support as a runtime dependency.
+
+Bug: #167
+Closes: #206
+Signed-off-by: Sven Eden <sven.eden@prydeworx.com>
+---
+ meson.build | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2dd05db3c..f38551f55 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1157,15 +1157,6 @@ if want_polkit != 'false' and not skip_deps
+ message('Old polkit detected, will install pkla files')
+ install_polkit_pkla = true
+ endif
+-#if 1 /// Disable polkit completely if libpolkit is not there. See elogind issue #167
+- if not libpolkit.found()
+- if want_polkit != 'auto'
+- error('Polkit requested but libpolkit was not found.')
+- endif
+- install_polkit = false
+- want_polkit = false
+- endif
+-#endif // 1
+ endif
+ conf.set10('ENABLE_POLKIT', install_polkit)
+