diff options
author | Sam James <sam@gentoo.org> | 2023-05-31 01:43:36 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-05-31 01:43:36 +0100 |
commit | 095e98fefa5d6e9072a57f69cd6df53e079effcf (patch) | |
tree | 9461f32d84420304108e40d812e2bf10524b5e67 /sys-auth | |
parent | sys-auth/elogind: treeclean (diff) | |
download | gentoo-095e98fefa5d6e9072a57f69cd6df53e079effcf.tar.gz gentoo-095e98fefa5d6e9072a57f69cd6df53e079effcf.tar.bz2 gentoo-095e98fefa5d6e9072a57f69cd6df53e079effcf.zip |
Revert "sys-auth/elogind: treeclean"
This reverts commit 2a23d6073040b491780d4af0f2fb6b6c5ee077c0.
Wrong repo!!
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-auth')
-rw-r--r-- | sys-auth/elogind/Manifest | 1 | ||||
-rw-r--r-- | sys-auth/elogind/elogind-246.10-r3.ebuild | 150 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-241.4-broken-test.patch | 15 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-243.7-nodocs.patch | 29 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-246.10-clang-undefined-symbol.patch | 20 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-246.10-loong.patch | 40 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-246.10-musl-selinux.patch | 99 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind-246.10-revert-polkit-automagic.patch | 38 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind.conf.in | 7 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind.init | 25 | ||||
-rw-r--r-- | sys-auth/elogind/files/elogind.init-r1 | 27 | ||||
-rw-r--r-- | sys-auth/elogind/metadata.xml | 21 |
12 files changed, 472 insertions, 0 deletions
diff --git a/sys-auth/elogind/Manifest b/sys-auth/elogind/Manifest new file mode 100644 index 000000000000..871cbc88d9f3 --- /dev/null +++ b/sys-auth/elogind/Manifest @@ -0,0 +1 @@ +DIST elogind-246.10.tar.gz 1559256 BLAKE2B 17a8146ee08c8ccf167f25d89b1d4525050ed0b0baaad0d36924ad3c40ffc820ef1528b33557cf285ad06c9ac9c440137428c5a235a2acf563e56f2f8f07e208 SHA512 9db0f068ed94ec07bab4d764ccb38840af3d05a4b7c9c539721906f5381b509cb9a3cbfb0453a978210d306136368de6162578c600d522416ef2a7ac1b9f348b diff --git a/sys-auth/elogind/elogind-246.10-r3.ebuild b/sys-auth/elogind/elogind-246.10-r3.ebuild new file mode 100644 index 000000000000..532c0142c6d7 --- /dev/null +++ b/sys-auth/elogind/elogind-246.10-r3.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2023 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 ~loong ~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 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 +" +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" + "${FILESDIR}/${P}-clang-undefined-symbol.patch" + "${FILESDIR}/${P}-loong.patch" + "${FILESDIR}/${P}-musl-selinux.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) + -Dtests=$(usex test 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-241.4-broken-test.patch b/sys-auth/elogind/files/elogind-241.4-broken-test.patch new file mode 100644 index 000000000000..d2735825900e --- /dev/null +++ b/sys-auth/elogind/files/elogind-241.4-broken-test.patch @@ -0,0 +1,15 @@ +--- a/src/test/meson.build 2019-11-15 08:59:47.000000000 +0100 ++++ b/src/test/meson.build 2019-11-30 13:04:45.051316140 +0100 +@@ -1014,9 +1014,9 @@ + # '', 'timeout=120'], + #endif // 0 + +- [['src/libelogind/sd-login/test-login.c'], +- [], +- []], ++# [['src/libelogind/sd-login/test-login.c'], ++# [], ++# []], + + [['src/libelogind/sd-device/test-sd-device.c'], + [], diff --git a/sys-auth/elogind/files/elogind-243.7-nodocs.patch b/sys-auth/elogind/files/elogind-243.7-nodocs.patch new file mode 100644 index 000000000000..0ec0aa37308a --- /dev/null +++ b/sys-auth/elogind/files/elogind-243.7-nodocs.patch @@ -0,0 +1,29 @@ +We don't want the build system to install to docdir for us. + +--- a/meson.build 2020-03-12 20:33:40.000000000 +0100 ++++ b/meson.build 2020-03-12 22:46:08.020716935 +0100 +@@ -3352,15 +3352,11 @@ + # install_data('modprobe.d/systemd.conf', + # install_dir : modprobedir) + #endif // 0 +-install_data('LICENSE.GPL2', +- 'LICENSE.LGPL2.1', + #if 0 /// elogind has upgraded to markdown, and the NEWS file is useless + # 'NEWS', + # 'README', + #else // 0 +- 'README.md', + #endif // 0 +- 'docs/CODING_STYLE.md', + #if 0 /// irrelevant for elogind + # 'docs/DISTRO_PORTING.md', + # 'docs/ENVIRONMENT.md', +@@ -3369,8 +3365,6 @@ + # 'docs/TRANSLATORS.md', + # 'docs/UIDS-GIDS.md', + #endif // 0 +- 'src/libelogind/sd-bus/GVARIANT-SERIALIZATION', +- install_dir : docdir) + + #if 0 /// UNNEEDED by elogind + # meson.add_install_script('sh', '-c', mkdir_p.format(systemdstatedir)) diff --git a/sys-auth/elogind/files/elogind-246.10-clang-undefined-symbol.patch b/sys-auth/elogind/files/elogind-246.10-clang-undefined-symbol.patch new file mode 100644 index 000000000000..3a157615884e --- /dev/null +++ b/sys-auth/elogind/files/elogind-246.10-clang-undefined-symbol.patch @@ -0,0 +1,20 @@ +--- a/src/libelogind/sd-bus/bus-error.h ++++ b/src/libelogind/sd-bus/bus-error.h +@@ -28,11 +28,17 @@ int bus_error_set_errnofv(sd_bus_error *e, int error, const char *format, va_lis + * the bus error table, and BUS_ERROR_MAP_ELF_USE has to be used at + * least once per compilation unit (i.e. per library), to ensure that + * the error map is really added to the final binary. ++ * ++ * In addition, set the retain attribute so that the section cannot be ++ * discarded by ld --gc-sections -z start-stop-gc. Older compilers would ++ * warn for the unknown attribute, so just disable -Wattributes. + */ + + #define BUS_ERROR_MAP_ELF_REGISTER \ ++ _Pragma("GCC diagnostic ignored \"-Wattributes\"") \ + _section_("SYSTEMD_BUS_ERROR_MAP") \ + _used_ \ ++ __attribute__((retain)) \ + _alignptr_ \ + _variable_no_sanitize_address_ + diff --git a/sys-auth/elogind/files/elogind-246.10-loong.patch b/sys-auth/elogind/files/elogind-246.10-loong.patch new file mode 100644 index 000000000000..f2b418f1384a --- /dev/null +++ b/sys-auth/elogind/files/elogind-246.10-loong.patch @@ -0,0 +1,40 @@ +https://github.com/elogind/elogind/pull/231, but made minimal. +From: Wu Xiaotian <wuxiaotian@loongson.cn> +Date: Tue, 1 Sep 2020 12:13:18 +0800 +Subject: [PATCH] architecture: Add support for the LoongArch architecture + +(cherry picked from commit 5c0968a2d14d5e1afb40a36c55d3f89805712904) +[resolved merge conflict for minimal diff, also use __loongarch_lp64 +instead of __loongarch64 -- xen0n] + +basic: update the Arch tuples for LoongArch + +(cherry picked from commit 017228934833d8618774353dcccbc5ec9f78ce98) +--- a/src/basic/architecture.h ++++ b/src/basic/architecture.h +@@ -44,6 +44,7 @@ enum { + ARCHITECTURE_RISCV64, + ARCHITECTURE_ARC, + ARCHITECTURE_ARC_BE, ++ ARCHITECTURE_LOONGARCH64, + _ARCHITECTURE_MAX, + _ARCHITECTURE_INVALID = -1 + }; +@@ -200,6 +201,17 @@ int uname_architecture(void); + # elif defined(__SH4A__) + # define LIB_ARCH_TUPLE "sh4a-linux-gnu" + # endif ++#elif defined(__loongarch_lp64) ++# define native_architecture() ARCHITECTURE_LOONGARCH64 ++# if defined(__loongarch_double_float) ++# define LIB_ARCH_TUPLE "loongarch64-linux-gnuf64" ++# elif defined(__loongarch_single_float) ++# define LIB_ARCH_TUPLE "loongarch64-linux-gnuf32" ++# elif defined(__loongarch_soft_float) ++# define LIB_ARCH_TUPLE "loongarch64-linux-gnusf" ++# else ++# error "Unrecognized loongarch architecture variant" ++# endif + #elif defined(__m68k__) + # define native_architecture() ARCHITECTURE_M68K + # define LIB_ARCH_TUPLE "m68k-linux-gnu" diff --git a/sys-auth/elogind/files/elogind-246.10-musl-selinux.patch b/sys-auth/elogind/files/elogind-246.10-musl-selinux.patch new file mode 100644 index 000000000000..c36861b983e2 --- /dev/null +++ b/sys-auth/elogind/files/elogind-246.10-musl-selinux.patch @@ -0,0 +1,99 @@ +https://bugs.gentoo.org/888912 +https://github.com/elogind/elogind/commit/ab72a46f3104f44a32ef7bec7439aa9d3b5f0fdc + +Rebased version to apply to 246.10 by concord@. + +From ab72a46f3104f44a32ef7bec7439aa9d3b5f0fdc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> +Date: Fri, 9 Oct 2020 16:48:03 +0200 +Subject: [PATCH] basic/selinux: work around mallinfo deprecation + +Latest glibc has deprecated mallinfo(), so it might become unavailable at some point +in the future. There is malloc_info(), but it returns XML, ffs. I think the information +that we get from mallinfo() is quite useful, so let's use mallinfo() if available, and +not otherwise. +--- a/meson.build ++++ b/meson.build +@@ -617,6 +617,7 @@ foreach ident : [ + #include <unistd.h> + #include <signal.h> + #include <sys/wait.h>'''], ++ ['mallinfo', '''#include <malloc.h>'''], + ] + + have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE') +--- a/src/basic/macro.h ++++ b/src/basic/macro.h +@@ -93,6 +93,10 @@ + #endif + + /* Temporarily disable some warnings */ ++#define DISABLE_WARNING_DEPRECATED_DECLARATIONS \ ++ _Pragma("GCC diagnostic push"); \ ++ _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") ++ + #define DISABLE_WARNING_FORMAT_NONLITERAL \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wformat-nonliteral\"") +--- a/src/basic/selinux-util.c ++++ b/src/basic/selinux-util.c +@@ -72,12 +72,21 @@ void mac_selinux_retest(void) { + #endif + } + ++#if HAVE_MALLINFO ++static struct mallinfo mallinfo_nowarn(void) { ++ /* glibc has deprecated mallinfo(), but the replacement malloc_info() returns an XML blob ;=[ */ ++DISABLE_WARNING_DEPRECATED_DECLARATIONS ++ return mallinfo(); ++REENABLE_WARNING ++} ++#else ++# warning "mallinfo() is missing, add mallinfo2() support instead." ++#endif ++ + int mac_selinux_init(void) { + #if HAVE_SELINUX + usec_t before_timestamp, after_timestamp; +- struct mallinfo before_mallinfo, after_mallinfo; + char timespan[FORMAT_TIMESPAN_MAX]; +- int l; + + selinux_set_callback(SELINUX_CB_POLICYLOAD, (union selinux_callback) mac_selinux_reload); + +@@ -87,7 +96,9 @@ int mac_selinux_init(void) { + if (!mac_selinux_use()) + return 0; + +- before_mallinfo = mallinfo(); ++#if HAVE_MALLINFO ++ struct mallinfo before_mallinfo = mallinfo_nowarn(); ++#endif + before_timestamp = now(CLOCK_MONOTONIC); + + label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0); +@@ -95,14 +107,17 @@ int mac_selinux_init(void) { + return log_enforcing_errno(errno, "Failed to initialize SELinux labeling handle: %m"); + + after_timestamp = now(CLOCK_MONOTONIC); +- after_mallinfo = mallinfo(); +- +- l = after_mallinfo.uordblks > before_mallinfo.uordblks ? after_mallinfo.uordblks - before_mallinfo.uordblks : 0; ++#if HAVE_MALLINFO ++ struct mallinfo after_mallinfo = mallinfo_nowarn(); ++ int l = after_mallinfo.uordblks > before_mallinfo.uordblks ? after_mallinfo.uordblks - before_mallinfo.uordblks : 0; + + log_debug("Successfully loaded SELinux database in %s, size on heap is %iK.", + format_timespan(timespan, sizeof(timespan), after_timestamp - before_timestamp, 0), +- (l+1023)/1024); +- ++ DIV_ROUND_UP(l, 1024)); ++#else ++ log_debug("Successfully loaded SELinux database in %s.", ++ format_timespan(timespan, sizeof(timespan), after_timestamp - before_timestamp, 0)); ++#endif + #endif + return 0; + } +-- +2.40.1 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) + diff --git a/sys-auth/elogind/files/elogind.conf.in b/sys-auth/elogind/files/elogind.conf.in new file mode 100644 index 000000000000..7b05b3502794 --- /dev/null +++ b/sys-auth/elogind/files/elogind.conf.in @@ -0,0 +1,7 @@ +# /etc/conf.d/elogind: config file for /etc/init.d/elogind + +# this is the elogind executable +ELOGIND_EXEC="/@libdir@/elogind/elogind" + +# this is where elogind will store its pid file +ELOGIND_PIDFILE="/run/elogind.pid" diff --git a/sys-auth/elogind/files/elogind.init b/sys-auth/elogind/files/elogind.init new file mode 100644 index 000000000000..019c3afbabc5 --- /dev/null +++ b/sys-auth/elogind/files/elogind.init @@ -0,0 +1,25 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need dbus + + # Make sure elogind is up before xdm starts any dm + before xdm +} + +start() { + ebegin "Starting elogind" + + start-stop-daemon --start --quiet \ + --pidfile "${ELOGIND_PIDFILE}" \ + --exec "${ELOGIND_EXEC}" -- --daemon + eend $? +} + +stop() { + ebegin "Stopping elogind" + start-stop-daemon --stop --quiet --pidfile "${ELOGIND_PIDFILE}" + eend $? +} diff --git a/sys-auth/elogind/files/elogind.init-r1 b/sys-auth/elogind/files/elogind.init-r1 new file mode 100644 index 000000000000..1cb5071c621e --- /dev/null +++ b/sys-auth/elogind/files/elogind.init-r1 @@ -0,0 +1,27 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need dbus + + # Make sure elogind is up before xdm starts any dm + before xdm + + use logger +} + +start() { + ebegin "Starting elogind" + + start-stop-daemon --start --quiet \ + --pidfile "${ELOGIND_PIDFILE}" \ + --exec "${ELOGIND_EXEC}" -- --daemon + eend $? +} + +stop() { + ebegin "Stopping elogind" + start-stop-daemon --stop --quiet --pidfile "${ELOGIND_PIDFILE}" + eend $? +} diff --git a/sys-auth/elogind/metadata.xml b/sys-auth/elogind/metadata.xml new file mode 100644 index 000000000000..fb46725b3a1d --- /dev/null +++ b/sys-auth/elogind/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>asturm@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <email>kensington@gentoo.org</email> + <name>Michael Palimaka</name> + </maintainer> + <maintainer type="person"> + <email>slashbeast@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> +</pkgmetadata> |