commit:     d0069007c82dc3b2d504870e4c843e39d27f7439
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Sep  1 21:30:00 2024 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Mon Sep  2 08:18:15 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d0069007

sys-auth/elogind: add 255.5, python3_13, EAPI-8

Thanks-to: Brahmajit Das <brahmajit.xyz <AT> gmail.com>
Thanks-to: Mike Gilbert <floppym <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/36968
Closes: https://bugs.gentoo.org/938921
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 sys-auth/elogind/Manifest             |   1 +
 sys-auth/elogind/elogind-255.5.ebuild | 182 ++++++++++++++++++++++++++++++++++
 sys-auth/elogind/files/elogind.conf   |   7 ++
 3 files changed, 190 insertions(+)

diff --git a/sys-auth/elogind/Manifest b/sys-auth/elogind/Manifest
index 3ce9fb1e8ab7..abf5d5d7e98b 100644
--- a/sys-auth/elogind/Manifest
+++ b/sys-auth/elogind/Manifest
@@ -1,2 +1,3 @@
 DIST elogind-246.10.tar.gz 1559256 BLAKE2B 
17a8146ee08c8ccf167f25d89b1d4525050ed0b0baaad0d36924ad3c40ffc820ef1528b33557cf285ad06c9ac9c440137428c5a235a2acf563e56f2f8f07e208
 SHA512 
9db0f068ed94ec07bab4d764ccb38840af3d05a4b7c9c539721906f5381b509cb9a3cbfb0453a978210d306136368de6162578c600d522416ef2a7ac1b9f348b
 DIST elogind-252.9.tar.gz 1922777 BLAKE2B 
dd566125e407b3479a44b007890f97c9c87a325b3fed2d3505499d2163f113affd998e14b1c1fc50b9b86b0d155b51dae344dcc1cddafb6a48c631d0a0f00c9a
 SHA512 
eed620cbc2f03bfeae6a80c9a421c21d3293fa40adffb96c7e4d86508c06712041f6623fb2bac15ecbb85faca4b5674ea6423b3067840809fb27d023fd9e5ffd
+DIST elogind-255.5.tar.gz 2127126 BLAKE2B 
395352fc24bc815d1e39c2d5722eb09c2e3378873e2ea4173d8c209cd66c28a9b94ebe62ab3efbd5dccd822d99b86a6c1a871620adefb1215cb6d4ceee78a9f9
 SHA512 
dd9494062ef18c3c4cddbaf70b394bf90f6da3ce49f85312e99eabde54b2fcdb5cfdde1bcbaa661031afc72853e9b138dae336e1caed72e927bfd61c8cb22895

diff --git a/sys-auth/elogind/elogind-255.5.ebuild 
b/sys-auth/elogind/elogind-255.5.ebuild
new file mode 100644
index 000000000000..9f84db5dc3fd
--- /dev/null
+++ b/sys-auth/elogind/elogind-255.5.ebuild
@@ -0,0 +1,182 @@
+# 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 ~ia64 ~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/jinja[${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=(
+       "${FILESDIR}/${PN}-252.9-nodocs.patch"
+)
+
+python_check_deps() {
+       python_has_version "dev-python/jinja[${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() {
+       if use elibc_musl; then
+               # Some of musl-specific patches break build on the
+               # glibc systems (like getdents), therefore those are
+               # only used when the build is done for musl.
+               PATCHES+=(
+                       "${FILESDIR}/${P}-musl-sigfillset.patch"
+                       "${FILESDIR}/${P}-musl-statx.patch"
+                       "${FILESDIR}/${P}-musl-rlim-max.patch"
+                       "${FILESDIR}/${P}-musl-getdents.patch"
+                       "${FILESDIR}/${P}-musl-gshadow.patch"
+                       "${FILESDIR}/${P}-musl-strerror_r.patch"
+                       "${FILESDIR}/${P}-musl-more-strerror_r.patch"
+               )
+       fi
+
+       default
+       xdg_environment_reset
+}
+
+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.conf 
b/sys-auth/elogind/files/elogind.conf
new file mode 100644
index 000000000000..167260a42aa5
--- /dev/null
+++ b/sys-auth/elogind/files/elogind.conf
@@ -0,0 +1,7 @@
+# /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"

Reply via email to