diff --git a/.gitignore b/.gitignore index 761de4c..c28f737 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/watchdog-5.15.tar.gz +SOURCES/watchdog-5.16.tar.gz diff --git a/.watchdog.metadata b/.watchdog.metadata index 4c93b39..81c5376 100644 --- a/.watchdog.metadata +++ b/.watchdog.metadata @@ -1 +1 @@ -92307c420bf900911e6bae0d022c293ba3092adc SOURCES/watchdog-5.15.tar.gz +22eb80e1d29ba5b8c98d644d8358e2cf6535bcf1 SOURCES/watchdog-5.16.tar.gz diff --git a/SOURCES/0001-Choose-libtirpc-or-another-RPC-library-for-XDR-heade.patch b/SOURCES/0001-Choose-libtirpc-or-another-RPC-library-for-XDR-heade.patch new file mode 100644 index 0000000..9ac8501 --- /dev/null +++ b/SOURCES/0001-Choose-libtirpc-or-another-RPC-library-for-XDR-heade.patch @@ -0,0 +1,43 @@ +From 80468a84ea3044a5227c57a258dc6e508c88d468 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 6 Feb 2019 13:25:47 +0000 +Subject: [PATCH] Choose libtirpc or another RPC library for XDR headers and + library. + +Signed-off-by: Richard W.M. Jones +--- + configure.ac | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 4294146..be62260 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -158,4 +158,24 @@ AC_ARG_WITH(randomseed, + AC_MSG_RESULT("/var/run/random-seed") + ]) + ++# Check for an RPC library, starting with libtirpc. ++PKG_CHECK_MODULES([RPC], [libtirpc], [], [ ++ # If we don't have libtirpc, then we must have and ++ # some library to link to in libdir. ++ RPC_CFLAGS="" ++ AC_CHECK_HEADER([rpc/rpc.h],[],[ ++ AC_MSG_ERROR([XDR header files are required]) ++ ], ++ [#include ]) ++ ++ old_LIBS="$LIBS" ++ LIBS="" ++ AC_SEARCH_LIBS([xdrmem_create],[rpc xdr nsl]) ++ RPC_LIBS="$LIBS" ++ LIBS="$old_LIBS" ++ ++ AC_SUBST([RPC_CFLAGS]) ++ AC_SUBST([RPC_LIBS]) ++]) ++ + AC_OUTPUT([Makefile src/Makefile]) +-- +2.31.1 + diff --git a/SOURCES/0002-mem-leak-verbose.patch b/SOURCES/0002-mem-leak-verbose.patch new file mode 100644 index 0000000..2341c4b --- /dev/null +++ b/SOURCES/0002-mem-leak-verbose.patch @@ -0,0 +1,19 @@ +diff -ruNp a/src/run-as-child.c b/src/run-as-child.c +--- a/src/run-as-child.c 2021-10-14 08:17:04.556107815 +0200 ++++ b/src/run-as-child.c 2021-10-14 08:36:23.686706344 +0200 +@@ -98,8 +98,14 @@ int exec_as_func(int flags, void *ptr) + /* Create single string with all command line options. */ + int ii = 1; + char *opt = strdup(":"); ++ char *tempOpt; + while (opt != NULL && arg[ii] != NULL) { +- opt = realloc(opt, strlen(opt) + strlen(arg[ii]) + 2); ++ tempOpt = realloc(opt, strlen(opt) + strlen(arg[ii]) + 2); ++ if (tempOpt != NULL){ ++ opt = tempOpt; ++ } else { ++ break; ++ } + opt = strcat(opt, " "); + opt = strcat(opt, arg[ii]); + ii++; diff --git a/SOURCES/0003-watchdog-5.13-rhsel.patch b/SOURCES/0003-watchdog-5.13-rhsel.patch deleted file mode 100644 index 49a7ecd..0000000 --- a/SOURCES/0003-watchdog-5.13-rhsel.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -ur watchdog-5.15.old/src/test_binary.c watchdog-5.15/src/test_binary.c ---- watchdog-5.15.old/src/test_binary.c 2016-02-26 12:05:00.000000000 +0000 -+++ watchdog-5.15/src/test_binary.c 2018-02-13 08:51:27.292750445 +0000 -@@ -263,11 +263,11 @@ - * to cause trouble, so make them go to their respective files */ - strcpy(filename_buf, logdir); - strcat(filename_buf, "/test-bin.stdout"); -- if (!freopen(filename_buf, "a+", stdout)) -+ if (!freopen(filename_buf, "a", stdout)) - exit(errno); - strcpy(filename_buf, logdir); - strcat(filename_buf, "/test-bin.stderr"); -- if (!freopen(filename_buf, "a+", stderr)) -+ if (!freopen(filename_buf, "a", stderr)) - exit(errno); - - /* now start binary */ -diff -ur watchdog-5.15.old/src/watchdog.c watchdog-5.15/src/watchdog.c ---- watchdog-5.15.old/src/watchdog.c 2016-02-26 12:05:00.000000000 +0000 -+++ watchdog-5.15/src/watchdog.c 2018-02-13 08:51:43.747738628 +0000 -@@ -86,11 +86,11 @@ - * So make stdout and stderr go to their respective files */ - strcpy(filename_buf, logdir); - strcat(filename_buf, "/repair-bin.stdout"); -- if (!freopen(filename_buf, "a+", stdout)) -+ if (!freopen(filename_buf, "a", stdout)) - exit(errno); - strcpy(filename_buf, logdir); - strcat(filename_buf, "/repair-bin.stderr"); -- if (!freopen(filename_buf, "a+", stderr)) -+ if (!freopen(filename_buf, "a", stderr)) - exit(errno); - - /* now start binary */ diff --git a/SOURCES/0004-watchdog-5.13-rhseldoc.patch b/SOURCES/0004-watchdog-5.13-rhseldoc.patch index 3ccaf23..5d06f70 100644 --- a/SOURCES/0004-watchdog-5.13-rhseldoc.patch +++ b/SOURCES/0004-watchdog-5.13-rhseldoc.patch @@ -1,7 +1,8 @@ -diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 ---- watchdog-5.15.old/watchdog.8 2016-02-26 12:05:00.000000000 +0000 -+++ watchdog-5.15/watchdog.8 2018-02-13 08:54:00.860681339 +0000 -@@ -215,6 +215,7 @@ +diff --git a/watchdog.8 b/watchdog.8 +index 9b7c6e7..052b1e1 100644 +--- a/watchdog.8 ++++ b/watchdog.8 +@@ -216,6 +216,7 @@ by .BR watchdog . So you can for instance restart the server from your .IR repair-binary . @@ -9,7 +10,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 .PP .B watchdog will try periodically to fork itself to see whether the process -@@ -241,6 +242,8 @@ +@@ -242,6 +243,8 @@ a given interface for traffic. If no traffic arrives the network is considered unreachable causing a soft reboot or action from the repair binary. .PP @@ -18,7 +19,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 .B watchdog can run an external command for user-defined tests. A return code not equal 0 means an error occurred and watchdog should react. If the external command is -@@ -350,6 +353,9 @@ +@@ -348,6 +351,9 @@ Child process did not return in time. 246 Free for personal watchdog-specific use (was \-10 as an unsigned 8\-bit number). @@ -28,7 +29,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 .TP 245 Reserved for an unknown result, for example a slow background test that is -@@ -377,6 +383,9 @@ +@@ -375,6 +381,9 @@ repair-maximum controls the number of successive repair attempts that report 0 (i.e. success) but fail to clear the tested fault. If this is exceeded then a reboot takes place. If set to zero then a reboot can always be blocked by the repair program reporting success. @@ -38,7 +39,7 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 .SH "TEST DIRECTORY" Executables placed in the test directory are discovered by watchdog on startup and are automatically executed. They are bounded time-wise by -@@ -415,6 +424,27 @@ +@@ -413,6 +422,27 @@ As for the repair binary, the configuration parameter repair-maximum also controls the number of successive repair attempts that report success (return 0) but fail to clear the fault. @@ -66,49 +67,34 @@ diff -ur watchdog-5.15.old/watchdog.8 watchdog-5.15/watchdog.8 .SH BUGS None known so far. .SH AUTHORS -@@ -433,4 +463,4 @@ +@@ -431,4 +461,4 @@ The watchdog device. The pid file of the running .BR watchdog . .SH "SEE ALSO" -.BR watchdog.conf (5) +.BR watchdog.conf (5), systemd.unit (5) -diff -ur watchdog-5.15.old/watchdog.conf watchdog-5.15/watchdog.conf ---- watchdog-5.15.old/watchdog.conf 2016-02-26 12:05:00.000000000 +0000 -+++ watchdog-5.15/watchdog.conf 2018-02-13 08:52:18.899721271 +0000 -@@ -16,6 +16,8 @@ - #min-memory = 1 - #allocatable-memory = 1 - -+# With enforcing SELinux policy please use the /usr/libexec/watchdog/scripts/ -+# or /etc/watchdog.d/ for your test-binary and repair-binary configuration. - #repair-binary = /usr/sbin/repair - #repair-timeout = 60 - #test-binary = -@@ -45,5 +47,12 @@ - realtime = yes - priority = 1 - -+# When using custom service pid check with custom service -+# systemd unit file please be aware the "Requires=" -+# does dependent service deactivation. -+# Using "Before=watchdog.service" or "Before=watchdog-ping.service" -+# in the custom service unit file may be the desired operation instead. -+# See man 5 systemd.unit for more details. -+# - # Check if rsyslogd is still running by enabling the following line - #pidfile = /var/run/rsyslogd.pid -diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5 ---- watchdog-5.15.old/watchdog.conf.5 2016-02-26 12:05:00.000000000 +0000 -+++ watchdog-5.15/watchdog.conf.5 2018-02-13 08:52:18.898721271 +0000 -@@ -105,6 +105,7 @@ - pidfile = - Set pidfile name for server test mode. - This option can be given as often as you like to check several servers. +diff --git a/watchdog.conf.5 b/watchdog.conf.5 +index edf7c8b..2803fee 100644 +--- a/watchdog.conf.5 ++++ b/watchdog.conf.5 +@@ -47,7 +47,7 @@ Be careful not to this parameter too low. To set a value less then the + predefined minimal value of 2, you have to use the \-f command line option. + .TP + min-memory = +-Set the minimal amount of memory that has to stay free. Note that ++Set the minimal amount of virtual memory that has to stay free. Note that + this is in memory pages (4kB on x86). Default value is 0 pages which means + this test is disabled. The page size is taken from the system include files. + The usable memory is computed from MemFree + Buffers + Cached since buffer +@@ -130,6 +130,7 @@ pidfile = + Set pidfile name for daemon test mode. + This option can be given as often as you like to check several daemons, assuming + they write their post-forking PID to the specified files. +See the Systemd section in watchdog (8) for more information. .TP ping = Set IPv4 address for ping mode. -@@ -119,6 +120,8 @@ +@@ -147,6 +148,8 @@ aliased IP interfaces. .TP test-binary = Execute the given binary to do some user defined tests. @@ -117,7 +103,7 @@ diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5 .TP test-timeout = User defined tests may only run for seconds. Set to 0 for unlimited. -@@ -126,6 +129,8 @@ +@@ -154,6 +157,8 @@ User defined tests may only run for seconds. Set to 0 for unlimited. repair-binary = Execute the given binary in case of a problem instead of shutting down the system. @@ -126,7 +112,7 @@ diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5 .TP repair-timeout = repair command may only run for seconds. Set to 0 for 'unlimited', but -@@ -156,6 +161,7 @@ +@@ -188,6 +193,7 @@ Set the schedule priority for realtime mode passed to sched_setscheduler(). .TP test-directory = Set the directory to run user test/repair scripts. Default is '/etc/watchdog.d' @@ -134,3 +120,28 @@ diff -ur watchdog-5.15.old/watchdog.conf.5 watchdog-5.15/watchdog.conf.5 See the Test Directory section in watchdog(8) for more information. .TP log-dir = +@@ -202,23 +208,7 @@ large databases or virtual machines might need longer. + verbose = + This overrides the command line \-\-verbose option. Generally the verbose mode is + only enabled for debugging as it creates a lot of syslog chatter, so use this option +-with consideration. Zero is "normal" operation (quiet), while 1 is typically used +-for debugging. Values of 2 or more usually generate far too many messages. +-.TP +-heartbeat-file = +-For debugging this allows a rolling set of status values to be kept on disk +-.TP +-heartbeat-stamps = +-For debugging this sets the number of entries in the +-.TP +-log-killed-pids = +-This acts like enabling 'verbose' logging, but only for a system reboot, where it +-enables the logging of the PID values for all processes that are being killed. The +-results are written to the killall5.log file in the log directory (if at all +-possible) in this case. +-Intended for debugging cases where you would like to know what was running at the +-point the machine triggered the watchdog, but don't want syslog filling up with the +-usual chatter of activity. ++with consideration. + .SH FILES + .TP + .I /etc/watchdog.conf diff --git a/SPECS/watchdog.spec b/SPECS/watchdog.spec index cee39b1..b25f988 100644 --- a/SPECS/watchdog.spec +++ b/SPECS/watchdog.spec @@ -1,7 +1,7 @@ Summary: Software and/or Hardware watchdog daemon Name: watchdog -Version: 5.15 -Release: 2%{?dist} +Version: 5.16 +Release: 1%{?dist} License: GPLv2+ URL: http://sourceforge.net/projects/watchdog/ @@ -12,7 +12,8 @@ Source3: README.Fedora Source4: watchdog.service Source5: watchdog-ping.service -Patch3: 0003-watchdog-5.13-rhsel.patch +Patch1: 0001-Choose-libtirpc-or-another-RPC-library-for-XDR-heade.patch +Patch2: 0002-mem-leak-verbose.patch Patch4: 0004-watchdog-5.13-rhseldoc.patch BuildRequires: libtirpc-devel @@ -42,7 +43,8 @@ expiration) initiated by the BMC. %prep %setup -q -n %{name}-%{version} -%patch3 -p1 -b .rhsel +%patch1 -p1 -b .xdr-header +%patch2 -p1 -b .verbose %patch4 -p1 -b .rhseldoc cp %{SOURCE2} . @@ -118,6 +120,9 @@ install -Dd -m0755 ${RPM_BUILD_ROOT}%{_libexecdir}/watchdog/scripts %changelog +* Thu Feb 23 2023 Josef Ridky - 5.16-1 +- Rebase to version 5.16 (#2149701) + * Wed Apr 21 2021 Than Ngo - 5.15-2 - Resolves: #1846110 - remove deprecated stanza in unit files