commit:     265054dc933b168d0ac4c71961ea1d0b1170f5f1
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 14 19:38:49 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Nov 14 19:47:46 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=265054dc

sys-auth/elogind: Revert s2idle default, build w/ xen

Switch RemoveIPC default to "no".

Bug: https://bugs.gentoo.org/939042
Closes: https://bugs.gentoo.org/939673
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 sys-auth/elogind/elogind-255.5-r1.ebuild           | 179 +++++++++++++++++++++
 .../elogind-255.5-no-fchmod_and_chown-tty.patch    |  29 ++++
 .../elogind-255.5-part-revert-header-cleanup.patch |  41 +++++
 .../files/elogind-255.5-revert-s2idle.patch        | 138 ++++++++++++++++
 4 files changed, 387 insertions(+)

diff --git a/sys-auth/elogind/elogind-255.5-r1.ebuild 
b/sys-auth/elogind/elogind-255.5-r1.ebuild
new file mode 100644
index 000000000000..22ad55a76fc2
--- /dev/null
+++ b/sys-auth/elogind/elogind-255.5-r1.ebuild
@@ -0,0 +1,179 @@
+# Copyright 1999-2024 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 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"
+       "${FILESDIR}/${P}-part-revert-header-cleanup.patch" # bug 939673
+       # See also:
+       # https://github.com/elogind/elogind/issues/285
+       "${FILESDIR}/${P}-revert-s2idle.patch" # bug 939042
+       # See also: https://github.com/systemd/systemd/issues/10103
+       "${FILESDIR}/${P}-no-fchmod_and_chown-tty.patch" # thx to Devuan
+)
+
+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
+       )
+
+       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
+
+       for version in ${REPLACING_VERSIONS}; do
+               if ver_test "${version}" -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
+       done
+}
+
+pkg_postrm() {
+       udev_reload
+}

diff --git a/sys-auth/elogind/files/elogind-255.5-no-fchmod_and_chown-tty.patch 
b/sys-auth/elogind/files/elogind-255.5-no-fchmod_and_chown-tty.patch
new file mode 100644
index 000000000000..9a88c8d27c83
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-255.5-no-fchmod_and_chown-tty.patch
@@ -0,0 +1,29 @@
+From 04354be1094d2010349700932327aa5cb965fc0a Mon Sep 17 00:00:00 2001
+From: Mark Hindley <[email protected]>
+Date: Thu, 9 Nov 2023 18:37:54 +0000
+Subject: [PATCH] Don't chown and chmod tty on VT reset.
+
+Elogind doesn't allocate VTs and shouldn't change those setup by login(1).
+
+Fixes: https://github.com/systemd/systemd/issues/10103
+---
+ src/basic/terminal-util.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/src/basic/terminal-util.c
++++ b/src/basic/terminal-util.c
+@@ -1487,12 +1487,14 @@
+                         q = -errno;
+         }
+ 
++#if 0 /// UNNEEDED by elogind
+         r = fchmod_and_chown(fd, TTY_MODE, 0, GID_INVALID);
+         if (r < 0) {
+                 log_debug_errno(r, "Failed to chmod()/chown() VT, ignoring: 
%m");
+                 if (q >= 0)
+                         q = r;
+         }
++#endif // 0
+ 
+         return q;
+ }

diff --git 
a/sys-auth/elogind/files/elogind-255.5-part-revert-header-cleanup.patch 
b/sys-auth/elogind/files/elogind-255.5-part-revert-header-cleanup.patch
new file mode 100644
index 000000000000..385042792cdd
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-255.5-part-revert-header-cleanup.patch
@@ -0,0 +1,41 @@
+From fe9e67ac72039cf5482a1f40b4b3016610ac84b6 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+Date: Thu, 14 Nov 2024 20:04:16 +0100
+Subject: [PATCH] Partially revert "Comment out all unused includes in shared/"
+
+Gentoo-Bug: https://bugs.gentoo.org/939673
+
+This reverts commit e1827812fc8f5b9a1aab6ed9bc056df0a2c74c48.
+---
+ src/shared/reboot-util.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/shared/reboot-util.c b/src/shared/reboot-util.c
+index 079db294a..c5eba45cb 100644
+--- a/src/shared/reboot-util.c
++++ b/src/shared/reboot-util.c
+@@ -1,8 +1,8 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <errno.h>
+-//#include <stdint.h>
+-//#include <sys/ioctl.h>
++#include <stdint.h>
++#include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <unistd.h>
+ 
+@@ -14,8 +14,8 @@
+ #endif
+ 
+ #include "alloc-util.h"
+-//#include "errno-util.h"
+-//#include "fd-util.h"
++#include "errno-util.h"
++#include "fd-util.h"
+ #include "fileio.h"
+ #include "log.h"
+ //#include "proc-cmdline.h"
+-- 
+2.47.0
+

diff --git a/sys-auth/elogind/files/elogind-255.5-revert-s2idle.patch 
b/sys-auth/elogind/files/elogind-255.5-revert-s2idle.patch
new file mode 100644
index 000000000000..a429d374729b
--- /dev/null
+++ b/sys-auth/elogind/files/elogind-255.5-revert-s2idle.patch
@@ -0,0 +1,138 @@
+From 2b522bb0cd3872107335459d82b92f73f6a50bf7 Mon Sep 17 00:00:00 2001
+From: Andreas Sturmlechner <[email protected]>
+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("s2idle", "deep"),
+-#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 <[email protected]>
+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/10-elogind.conf | 22 ----------------------
+ src/sleep/meson.build     |  4 ----
+ src/sleep/sleep.conf      |  9 +++++++++
+ 4 files changed, 9 insertions(+), 35 deletions(-)
+ delete mode 100644 src/sleep/10-elogind.conf
+
+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/10-elogind.conf b/src/sleep/10-elogind.conf
+deleted file mode 100644
+index b8b3350b1..000000000
+--- a/src/sleep/10-elogind.conf
++++ /dev/null
+@@ -1,22 +0,0 @@
+-#  This file is part of elogind.
+-#
+-#  elogind is free software; you can redistribute it and/or modify it under 
the
+-#  terms of the GNU Lesser General Public License as published by the Free
+-#  Software Foundation; either version 2.1 of the License, or (at your option)
+-#  any later version.
+-#
+-# Entries in this file show the compile time defaults specific to eloging.
+-# Local configuration should be created here with a higher leading number so
+-# they are parsed later overriding the defaults.
+-#
+-# See sleep.conf(5) for details.
+-
+-[Sleep]
+-#AllowPowerOffInterrupts=no
+-#AllowSuspendInterrupts=no
+-#BroadcastPowerOffInterrupts=yes
+-#BroadcastSuspendInterrupts=yes
+-#HandleNvidiaSleep=no
+-#HibernateByUsing=
+-#SuspendByUsing=
+-#SuspendMode=s2idle deep
+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
+

Reply via email to