sys-auth/elogind: add 255.17

Closes: https://bugs.gentoo.org/953505
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
This commit is contained in:
Andreas Sturmlechner
2025-05-14 23:02:57 +02:00
parent 5e5b49ed5a
commit fe366cc745
3 changed files with 306 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST elogind-252.9.tar.gz 1922777 BLAKE2B dd566125e407b3479a44b007890f97c9c87a325b3fed2d3505499d2163f113affd998e14b1c1fc50b9b86b0d155b51dae344dcc1cddafb6a48c631d0a0f00c9a SHA512 eed620cbc2f03bfeae6a80c9a421c21d3293fa40adffb96c7e4d86508c06712041f6623fb2bac15ecbb85faca4b5674ea6423b3067840809fb27d023fd9e5ffd
DIST elogind-255.17.tar.gz 2183733 BLAKE2B d7d239e8ff946ed430df6245dba548fc39e7c9663b0cbcecbbf338fe9a13083f7143ddf34e493969dc183b17c3c986bf137bc8a8ce549c5bf10b73029fa7a8e7 SHA512 fb86f9d627792bbd1ab42e54345b2b670c073a077f65cdf860053ab0811c0892807c4f971820d7e703f7daa01f398cbd2dfb50ccdfc83cec1467308f7a4c2090
DIST elogind-255.5.tar.gz 2127126 BLAKE2B 395352fc24bc815d1e39c2d5722eb09c2e3378873e2ea4173d8c209cd66c28a9b94ebe62ab3efbd5dccd822d99b86a6c1a871620adefb1215cb6d4ceee78a9f9 SHA512 dd9494062ef18c3c4cddbaf70b394bf90f6da3ce49f85312e99eabde54b2fcdb5cfdde1bcbaa661031afc72853e9b138dae336e1caed72e927bfd61c8cb22895

View File

@@ -0,0 +1,197 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
if [[ ${PV} = *9999* ]]; then
EGIT_BRANCH="v255-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 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
fi
inherit eapi9-ver linux-info meson pam python-any-r1 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 test"
RESTRICT="!test? ( test )"
BDEPEND="
app-text/docbook-xml-dtd:4.2
app-text/docbook-xml-dtd:4.5
app-text/docbook-xsl-stylesheets
dev-util/gperf
virtual/pkgconfig
$(python_gen_any_dep 'dev-python/jinja2[${PYTHON_USEDEP}]')
$(python_gen_any_dep 'dev-python/lxml[${PYTHON_USEDEP}]')
"
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 )
PATCHES=(
# all downstream patches:
"${FILESDIR}/${PN}-252.9-nodocs.patch"
# See also:
# https://github.com/elogind/elogind/issues/285
"${FILESDIR}/${P}-revert-s2idle.patch" # bug 939042
)
python_check_deps() {
python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]" &&
python_has_version "dev-python/lxml[${PYTHON_USEDEP}]"
}
pkg_setup() {
local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
use kernel_linux && linux-info_pkg_setup
}
src_prepare() {
default
xdg_environment_reset
# don't cleanup /dev/shm/ on logout on logout
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=949698
sed -e "s/#RemoveIPC=yes/RemoveIPC=no/" \
-i src/login/logind.conf.in || die
}
src_configure() {
if use cgroup-hybrid; then
cgroupmode="hybrid"
else
cgroupmode="unified"
fi
python_setup
EMESON_BUILDTYPE="$(usex debug debug release)"
local emesonargs=(
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
-Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
-Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
--libexecdir="lib/elogind"
--localstatedir="${EPREFIX}"/var
-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 enabled disabled)
-Daudit=$(usex audit enabled disabled)
-Dhtml=$(usex doc auto disabled)
-Dpam=$(usex pam enabled disabled)
-Dpamlibdir="$(getpam_mod_dir)"
-Dselinux=$(usex selinux enabled disabled)
-Dtests=$(usex test true false)
-Dutmp=$(usex elibc_musl false true)
-Dmode=release
# Ensure consistency between merged-usr and split-usr (bug 945965)
-Dhalt-path="${EPREFIX}/sbin/halt"
-Dkexec-path="${EPREFIX}/usr/sbin/kexec"
-Dnologin-path="${EPREFIX}/sbin/nologin"
-Dpoweroff-path="${EPREFIX}/sbin/poweroff"
-Dreboot-path="${EPREFIX}/sbin/reboot"
)
meson_src_configure
}
src_install() {
meson_src_install
keepdir /var/lib/elogind
newinitd "${FILESDIR}"/${PN}.init-r1 ${PN}
newconfd "${FILESDIR}"/${PN}.conf ${PN}
}
pkg_postinst() {
udev_reload
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
if ver_replacing -lt 252.9; then
elog "Starting with release 252.9 the sleep configuration is now done"
elog "in the /etc/elogind/sleep.conf. Should you use non-default sleep"
elog "configuration remember to migrate those to new configuration file."
fi
local file files
# find custom hooks excluding known (nvidia-drivers, sys-power/tlp)
if [[ -d "${EROOT}"/$(get_libdir)/elogind/system-sleep ]]; then
readarray -t files < <(find "${EROOT}"/$(get_libdir)/elogind/system-sleep/ \
-type f \( -not -iname ".keep_dir" -a \
-not -iname "nvidia" -a \
-not -iname "49-tlp-sleep" \) || die)
fi
if [[ ${#files[@]} -gt 0 ]]; then
ewarn "*** Custom hooks in obsolete path detected ***"
for file in "${files[@]}"; do
ewarn " ${file}"
done
ewarn "Move these custom hooks to ${EROOT}/etc/elogind/system-sleep/ instead."
fi
}
pkg_postrm() {
udev_reload
}

View File

@@ -0,0 +1,108 @@
From 2b522bb0cd3872107335459d82b92f73f6a50bf7 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Tue, 12 Nov 2024 23:43:16 +0100
Subject: [PATCH 1/2] Revert "Re-Add sleep mode configuration"
This reverts commit 7707a30dfb2496a4c9c5939f0dd8bb39baebfecd.
---
src/shared/sleep-config.c | 8 --------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
index 053e908e6..5ddcb006f 100644
--- a/src/shared/sleep-config.c
+++ b/src/shared/sleep-config.c
@@ -42,11 +42,7 @@ static char* const* const sleep_default_state_table[_SLEEP_OPERATION_CONFIG_MAX]
};
static char* const* const sleep_default_mode_table[_SLEEP_OPERATION_CONFIG_MAX] = {
-#if 0 /// elogind supports suspend modes (deep s2idle) so we need defaults, too
/* Not used by SLEEP_SUSPEND */
-#else // 0
- [SLEEP_SUSPEND] = STRV_MAKE("deep", "s2idle"),
-#endif // 0
[SLEEP_HIBERNATE] = STRV_MAKE("platform", "shutdown"),
[SLEEP_HYBRID_SLEEP] = STRV_MAKE("suspend"),
};
@@ -172,11 +168,7 @@ int parse_sleep_config(SleepConfig **ret) {
{ "Sleep", "AllowHybridSleep", config_parse_tristate, 0, &allow_hybrid_sleep },
{ "Sleep", "SuspendState", config_parse_strv, 0, sc->states + SLEEP_SUSPEND },
-#if 0 /// elogind does support suspend modes
{ "Sleep", "SuspendMode", config_parse_warn_compat, DISABLED_LEGACY, NULL },
-#else // 0
- { "Sleep", "SuspendMode", config_parse_sleep_mode, 0, sc->modes + SLEEP_SUSPEND },
-#endif // 0
{ "Sleep", "HibernateState", config_parse_warn_compat, DISABLED_LEGACY, NULL },
{ "Sleep", "HibernateMode", config_parse_sleep_mode, 0, sc->modes + SLEEP_HIBERNATE },
--
2.47.0
From 10a451df4259113738f0839e09041742dd8ccbc2 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Tue, 12 Nov 2024 23:47:19 +0100
Subject: [PATCH 2/2] Revert "Re-add elogind additions to sleep.conf loading
and split those into sleep.donf.d/10-elogind.conf"
This reverts commit c5e7ba0c47ae95e2cf6fd48dc9353e8f333200c4.
---
src/shared/sleep-config.c | 9 ---------
src/sleep/meson.build | 4 ----
src/sleep/sleep.conf | 9 +++++++++
3 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/src/shared/sleep-config.c b/src/shared/sleep-config.c
index 5ddcb006f..097c203ca 100644
--- a/src/shared/sleep-config.c
+++ b/src/shared/sleep-config.c
@@ -153,15 +153,6 @@ int parse_sleep_config(SleepConfig **ret) {
#endif // 0
const ConfigTableItem items[] = {
-#if 1 /// Additional options for elogind
- { "Sleep", "AllowPowerOffInterrupts", config_parse_bool, 0, &sc->allow_poweroff_interrupts },
- { "Sleep", "BroadcastPowerOffInterrupts", config_parse_bool, 0, &sc->broadcast_poweroff_interrupts },
- { "Sleep", "AllowSuspendInterrupts", config_parse_bool, 0, &sc->allow_suspend_interrupts },
- { "Sleep", "BroadcastSuspendInterrupts", config_parse_bool, 0, &sc->broadcast_suspend_interrupts },
- { "Sleep", "HandleNvidiaSleep", config_parse_bool, 0, &sc->handle_nvidia_sleep },
- { "Sleep", "SuspendByUsing", config_parse_strv, 0, &sc->suspend_by_using },
- { "Sleep", "HibernateByUsing", config_parse_strv, 0, &sc->hibernate_by_using },
-#endif // 1
{ "Sleep", "AllowSuspend", config_parse_tristate, 0, &allow_suspend },
{ "Sleep", "AllowHibernation", config_parse_tristate, 0, &allow_hibernate },
{ "Sleep", "AllowSuspendThenHibernate", config_parse_tristate, 0, &allow_s2h },
diff --git a/src/sleep/meson.build b/src/sleep/meson.build
index c711a1b5c..3b06a6e91 100644
--- a/src/sleep/meson.build
+++ b/src/sleep/meson.build
@@ -28,8 +28,4 @@ sleep_files = files(
if install_sysconfdir_samples
install_data('sleep.conf',
install_dir : pkgconfigfiledir)
-#if 1 /// elogind comes with a first drop-in representing its defaults
- install_data('10-elogind.conf',
- install_dir : pkgconfigfiledir / 'sleep.conf.d' )
-#endif // 1
endif
diff --git a/src/sleep/sleep.conf b/src/sleep/sleep.conf
index ea048892b..b71790711 100644
--- a/src/sleep/sleep.conf
+++ b/src/sleep/sleep.conf
@@ -23,3 +23,12 @@
#HibernateMode=platform shutdown
#HibernateDelaySec=
#SuspendEstimationSec=60min
+
+# elogind additions
+#AllowPowerOffInterrupts=no
+#BroadcastPowerOffInterrupts=yes
+#AllowSuspendInterrupts=no
+#BroadcastSuspendInterrupts=yes
+#SuspendByUsing=
+#HibernateByUsing=
+#HandleNvidiaSleep=no
--
2.47.0