commit:     2869bb0fcd77e99b4a75630576b8252757c40bfd
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 18 23:03:53 2021 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Thu Nov 18 23:08:27 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2869bb0f

sys-auth/elogind: 246.10-r2: introduce cgroup-hybrid.

Drop the code that probes for /etc/rc.conf configuration during build
time, with a proper solution utilizing  USE flag cgroup-hybrid.

The new flag matches the one from sys-apps/systemd andapp-emulation/snapd.

Closes: https://bugs.gentoo.org/807349
Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 sys-auth/elogind/elogind-246.10-r2.ebuild | 146 ++++++++++++++++++++++++++++++
 sys-auth/elogind/metadata.xml             |   3 +
 2 files changed, 149 insertions(+)

diff --git a/sys-auth/elogind/elogind-246.10-r2.ebuild 
b/sys-auth/elogind/elogind-246.10-r2.ebuild
new file mode 100644
index 000000000000..d4aa96426afb
--- /dev/null
+++ b/sys-auth/elogind/elogind-246.10-r2.ebuild
@@ -0,0 +1,146 @@
+# 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 +cgroup-hybrid 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() {
+       if use cgroup-hybrid; then
+               cgroupmode="hybrid"
+       else
+               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/metadata.xml b/sys-auth/elogind/metadata.xml
index 160c728b5cf8..858ca09dddce 100644
--- a/sys-auth/elogind/metadata.xml
+++ b/sys-auth/elogind/metadata.xml
@@ -11,6 +11,9 @@
                <email>slashbe...@gentoo.org</email>
                <name>Piotr Karbowski</name>
        </maintainer>
+       <use>
+               <flag name="cgroup-hybrid">Use hybrid cgroup hierarchy 
(OpenRC's default) instead of unified.</flag>
+       </use>
        <upstream>
                <remote-id type="github">elogind/elogind</remote-id>
        </upstream>

Reply via email to