summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-auth/rtkit/files/rtkit-0.13_daemon_verbosity.patch67
-rw-r--r--sys-auth/rtkit/rtkit-0.13-r2.ebuild49
2 files changed, 116 insertions, 0 deletions
diff --git a/sys-auth/rtkit/files/rtkit-0.13_daemon_verbosity.patch b/sys-auth/rtkit/files/rtkit-0.13_daemon_verbosity.patch
new file mode 100644
index 000000000000..e8fb9c821dde
--- /dev/null
+++ b/sys-auth/rtkit/files/rtkit-0.13_daemon_verbosity.patch
@@ -0,0 +1,67 @@
+From ad649ee491ed1a41537774ad11564a208e598a09 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Sat, 15 Apr 2023 11:53:27 +0200
+Subject: [PATCH] rtkit-daemon: Don't log debug messages by default
+
+The rtkit-daemon service is a lot more verbose than other services
+when it doesn't have anything to do. Stop logging the debug messages
+by default to avoid flooding the system log.
+
+This addresses issue #22.
+--- a/rtkit-daemon.c
++++ b/rtkit-daemon.c
+@@ -154,6 +154,9 @@ static bool canary_demote_unknown = FALSE;
+ /* Log to stderr? */
+ static bool log_stderr = FALSE;
+
++/* Also log debugging messages? */
++static bool log_debug = FALSE;
++
+ /* Scheduling policy to use */
+ static int sched_policy = SCHED_RR;
+
+@@ -1876,6 +1879,7 @@ enum {
+ ARG_CANARY_DEMOTE_UNKNOWN,
+ ARG_CANARY_REFUSE_SEC,
+ ARG_STDERR,
++ ARG_DEBUG,
+ ARG_INTROSPECT
+ };
+
+@@ -1905,6 +1909,7 @@ static const struct option long_options[] = {
+ { "canary-demote-unknown", no_argument, 0, ARG_CANARY_DEMOTE_UNKNOWN },
+ { "canary-refuse-sec", required_argument, 0, ARG_CANARY_REFUSE_SEC },
+ { "stderr", no_argument, 0, ARG_STDERR },
++ { "debug", no_argument, 0, ARG_DEBUG },
+ { "introspect", no_argument, 0, ARG_INTROSPECT },
+ { NULL, 0, 0, 0}
+ };
+@@ -1933,6 +1938,7 @@ static void show_help(const char *exe) {
+ " --version Show version\n\n"
+ "OPTIONS:\n"
+ " --stderr Log to STDERR in addition to syslog\n"
++ " --debug Also log debugging mssages\n"
+ " --user-name=USER Run daemon as user (%s)\n\n"
+ " --scheduling-policy=(RR|FIFO) Choose scheduling policy (%s)\n"
+ " --our-realtime-priority=[%i..%i] Realtime priority for the daemon (%u)\n"
+@@ -2222,6 +2228,10 @@ static int parse_command_line(int argc, char *argv[], int *ret) {
+ log_stderr = TRUE;
+ break;
+
++ case ARG_DEBUG:
++ log_debug = TRUE;
++ break;
++
+ case ARG_INTROSPECT:
+ fputs(introspect_xml, stdout);
+ *ret = 0;
+@@ -2251,6 +2261,9 @@ static int parse_command_line(int argc, char *argv[], int *ret) {
+ return -1;
+ }
+
++ if (!log_debug)
++ setlogmask(LOG_UPTO(LOG_INFO));
++
+ assert(our_realtime_priority >= (unsigned) sched_get_priority_min(sched_policy));
+ assert(our_realtime_priority <= (unsigned) sched_get_priority_max(sched_policy));
+
diff --git a/sys-auth/rtkit/rtkit-0.13-r2.ebuild b/sys-auth/rtkit/rtkit-0.13-r2.ebuild
new file mode 100644
index 000000000000..58762eba219a
--- /dev/null
+++ b/sys-auth/rtkit/rtkit-0.13-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit linux-info meson
+
+DESCRIPTION="Realtime Policy and Watchdog Daemon"
+HOMEPAGE="https://github.com/heftig/rtkit"
+SRC_URI="https://github.com/heftig/${PN}/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-3 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="selinux systemd"
+
+BDEPEND="virtual/pkgconfig"
+DEPEND="acct-group/rtkit
+ acct-user/rtkit
+ sys-apps/dbus
+ sys-auth/polkit
+ sys-libs/libcap
+ systemd? ( sys-apps/systemd )"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-rtkit )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.13_daemon_verbosity.patch
+ "${FILESDIR}"/${PN}-0.13_meson_rtkitctl_dir.patch
+ "${FILESDIR}"/${PN}-0.13_meson_xxd_optional.patch
+)
+
+pkg_pretend() {
+ if use kernel_linux; then
+ CONFIG_CHECK="~!RT_GROUP_SCHED"
+ ERROR_RT_GROUP_SCHED="CONFIG_RT_GROUP_SCHED is enabled. rtkit-daemon (or any other "
+ ERROR_RT_GROUP_SCHED+="real-time task) will not work unless run as root. Please consider "
+ ERROR_RT_GROUP_SCHED+="unsetting this option."
+ check_extra_config
+ fi
+}
+
+src_configure() {
+ local emesonargs=(
+ -Dinstalled_tests=false
+ $(meson_feature systemd libsystemd)
+ )
+ meson_src_configure
+}