From 6aff090ca28ce2d21da826f7dc1a75e7c1d9c7e006ed0bf808d7ff474666ac8f Mon Sep 17 00:00:00 2001 From: Martin Hauke <mardnh@gmx.de> Date: Thu, 14 Sep 2023 13:42:09 +0000 Subject: [PATCH] Accepting request 1093439 from home:kukuk:no-utmp - systemd-not-utmp.patch: let check_users prefer systemd-logind over utmp (jsc#PED-3144) OBS-URL: https://build.opensuse.org/request/show/1093439 OBS-URL: https://build.opensuse.org/package/show/server:monitoring/monitoring-plugins?expand=0&rev=108 --- monitoring-plugins.changes | 6 +++ monitoring-plugins.spec | 6 +++ systemd-not-utmp.patch | 78 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 systemd-not-utmp.patch diff --git a/monitoring-plugins.changes b/monitoring-plugins.changes index 7aaeae7..2cd6450 100644 --- a/monitoring-plugins.changes +++ b/monitoring-plugins.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Thu Jun 15 14:44:14 UTC 2023 - Thorsten Kukuk <kukuk@suse.com> + +- systemd-not-utmp.patch: let check_users prefer systemd-logind + over utmp (jsc#PED-3144) + ------------------------------------------------------------------- Wed May 31 21:57:07 UTC 2023 - David Disseldorp <ddiss@suse.com> diff --git a/monitoring-plugins.spec b/monitoring-plugins.spec index e920a46..02e6d04 100644 --- a/monitoring-plugins.spec +++ b/monitoring-plugins.spec @@ -86,6 +86,8 @@ Patch129: monitoring-plugins-2.3.3-check_by_ssh.patch Patch130: monitoring-plugins-2.3.3-check_http-proxy.patch # PATCH-FIX-UPSTREAM - simple fix for compiler error regarding no return value in function get_ip_address Patch131: monitoring-plugins-2.3.3-check_icmp.patch +# PATCH-FEATURE-SLE - Use systemd-logind instead of utmp (jsc#PED-3144) +Patch132: systemd-not-utmp.patch BuildRequires: bind-utils BuildRequires: dhcp-devel BuildRequires: fping @@ -114,6 +116,9 @@ BuildRequires: perl(Net::SNMP) BuildRequires: postfix BuildRequires: postgresql-devel BuildRequires: procps +%if 0%{?suse_version} > 1599 +BuildRequires: systemd-devel +%endif BuildRequires: samba-client %if 0%{?suse_version} %if 0%{?suse_version} > 1020 @@ -1139,6 +1144,7 @@ done %patch129 -p1 %patch130 -p1 %patch131 -p1 +%patch132 -p1 find -type f -exec chmod 644 {} + %build diff --git a/systemd-not-utmp.patch b/systemd-not-utmp.patch new file mode 100644 index 0000000..a190ef6 --- /dev/null +++ b/systemd-not-utmp.patch @@ -0,0 +1,78 @@ +--- monitoring-plugins-2.3.3.old/configure.ac 2023-02-01 14:40:55.000000000 +0100 ++++ monitoring-plugins-2.3.3/configure.ac 2023-06-15 16:21:19.637049416 +0200 +@@ -328,6 +328,25 @@ + LIBS="$_SAVEDLIBS" + ]) + ++ ++AC_ARG_WITH([systemd], [AS_HELP_STRING([--without-systemd], [Skips systemd support])]) ++ ++dnl Check for libsystemd ++AS_IF([test "x$with_systemd" != "xno"], [ ++ _SAVEDLIBS="$LIBS" ++ AC_CHECK_LIB(systemd,sd_get_sessions,,,-lsystemd) ++ if test "$ac_cv_lib_systemd_sd_get_sessions" = "yes"; then ++ SYSTEMDLIBS="-lsystemd" ++ SYSTEMDINCLUDE="" ++ AC_SUBST(SYSTEMDLIBS) ++ AC_SUBST(SYSTEMDINCLUDE) ++ else ++ AC_MSG_WARN([Skipping systemd support]) ++ fi ++ LIBS="$_SAVEDLIBS" ++]) ++ ++ + dnl Check for headers used by check_ide_smart + case $host in + *linux*) +diff -wur monitoring-plugins-2.3.3.old/plugins/check_users.c monitoring-plugins-2.3.3/plugins/check_users.c +--- monitoring-plugins-2.3.3.old/plugins/check_users.c 2023-02-01 14:40:55.000000000 +0100 ++++ monitoring-plugins-2.3.3/plugins/check_users.c 2023-06-15 16:16:34.879700400 +0200 +@@ -48,6 +48,11 @@ + # include "popen.h" + #endif + ++#ifdef HAVE_LIBSYSTEMD ++#include <systemd/sd-daemon.h> ++#include <systemd/sd-login.h> ++#endif ++ + #define possibly_set(a,b) ((a) == 0 ? (b) : 0) + + int process_arguments (int, char **); +@@ -115,6 +120,11 @@ + + WTSFreeMemory(wtsinfo); + #elif HAVE_UTMPX_H ++#ifdef HAVE_LIBSYSTEMD ++ if (sd_booted () > 0) ++ users = sd_get_sessions (NULL); ++ else { ++#endif + /* get currently logged users from utmpx */ + setutxent (); + +@@ -123,6 +133,9 @@ + users++; + + endutxent (); ++#ifdef HAVE_LIBSYSTEMD ++ } ++#endif + #else + /* run the command */ + child_process = spopen (WHO_COMMAND); +Nur in monitoring-plugins-2.3.3/plugins: check_users.c~. +diff -wur monitoring-plugins-2.3.3.old/plugins/Makefile.am monitoring-plugins-2.3.3/plugins/Makefile.am +--- monitoring-plugins-2.3.3.old/plugins/Makefile.am 2023-02-01 14:40:55.000000000 +0100 ++++ monitoring-plugins-2.3.3/plugins/Makefile.am 2023-06-15 16:23:36.925699810 +0200 +@@ -112,7 +112,7 @@ + check_time_LDADD = $(NETLIBS) + check_ntp_time_LDADD = $(NETLIBS) $(MATHLIBS) + check_ups_LDADD = $(NETLIBS) +-check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) ++check_users_LDADD = $(BASEOBJS) $(WTSAPI32LIBS) $(SYSTEMDLIBS) + check_by_ssh_LDADD = $(NETLIBS) + check_ide_smart_LDADD = $(BASEOBJS) + negate_LDADD = $(BASEOBJS)