diff options
Diffstat (limited to 'meta/recipes-extended/watchdog')
10 files changed, 326 insertions, 168 deletions
diff --git a/meta/recipes-extended/watchdog/watchdog-config.bb b/meta/recipes-extended/watchdog/watchdog-config.bb index 8bf40f0f0e..f138952128 100644 --- a/meta/recipes-extended/watchdog/watchdog-config.bb +++ b/meta/recipes-extended/watchdog/watchdog-config.bb @@ -5,7 +5,7 @@ the system." HOMEPAGE = "http://watchdog.sourceforge.net/" BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194" -LICENSE = "MIT-X" +LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" SRC_URI = " \ @@ -13,8 +13,15 @@ SRC_URI = " \ file://watchdog.conf \ " +# The default value is 60 seconds when null. +WATCHDOG_TIMEOUT ??= "" + do_install() { install -Dm 0644 ${WORKDIR}/watchdog.default ${D}${sysconfdir}/default/watchdog install -Dm 0644 ${WORKDIR}/watchdog.conf ${D}${sysconfdir}/watchdog.conf + + if [ -n "${WATCHDOG_TIMEOUT}" ]; then + echo "watchdog-timeout = ${WATCHDOG_TIMEOUT}" >> ${D}/etc/watchdog.conf + fi } diff --git a/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch b/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch deleted file mode 100644 index 198f198619..0000000000 --- a/meta/recipes-extended/watchdog/watchdog/0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 8f91385dbd5e7c14b36ecbd8a01ca82c709f6d77 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 24 Jun 2016 18:19:29 +0000 -Subject: [PATCH] Include linux/param.h for EXEC_PAGESIZE definition - -Musl does not include linux/param.h whereas glibc -does, so it fails to build on musl. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted - - src/watchdog.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/watchdog.c b/src/watchdog.c -index acf6450..486384a 100644 ---- a/src/watchdog.c -+++ b/src/watchdog.c -@@ -26,6 +26,9 @@ - #include <sys/param.h> /* For EXEC_PAGESIZE */ - #include <linux/oom.h> - #include <linux/watchdog.h> -+#ifdef __linux__ -+#include <linux/param.h> -+#endif - #include <string.h> - - #include <libgen.h> --- -1.8.3.1 - diff --git a/meta/recipes-extended/watchdog/watchdog/0001-shutdown-Do-not-guard-sys-quota.h-sys-swap.h-and-sys.patch b/meta/recipes-extended/watchdog/watchdog/0001-shutdown-Do-not-guard-sys-quota.h-sys-swap.h-and-sys.patch new file mode 100644 index 0000000000..8c419e1d11 --- /dev/null +++ b/meta/recipes-extended/watchdog/watchdog/0001-shutdown-Do-not-guard-sys-quota.h-sys-swap.h-and-sys.patch @@ -0,0 +1,37 @@ +From ca1d379fa13c4055d42d2ff3a647b4397768efcd Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 23 Aug 2022 19:23:26 -0700 +Subject: [PATCH] shutdown: Do not guard sys/quota.h sys/swap.h and + sys/reboot.h with __GLIBC__ + +These headers are provided by uclibc/musl/glibc and bionic so we can +assume they are not needed to be glibc specific includes. This also +ensures that we get proper declaration of reboot() API + +Upstream-Status: Submitted [https://sourceforge.net/p/watchdog/patches/12/] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/shutdown.c | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/src/shutdown.c b/src/shutdown.c +index 1d9a857..6aea0d0 100644 +--- a/src/shutdown.c ++++ b/src/shutdown.c +@@ -29,13 +29,9 @@ + #include "extern.h" + #include "ext2_mnt.h" + +-#if defined __GLIBC__ + #include <sys/quota.h> + #include <sys/swap.h> + #include <sys/reboot.h> +-#else /* __GLIBC__ */ +-#include <linux/quota.h> +-#endif /* __GLIBC__ */ + + #include <unistd.h> + +-- +2.37.2 + diff --git a/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch b/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch new file mode 100644 index 0000000000..075a98e5e5 --- /dev/null +++ b/meta/recipes-extended/watchdog/watchdog/0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch @@ -0,0 +1,68 @@ +From c1fe14fa5bd168292cc4670034bc48b954e9dac7 Mon Sep 17 00:00:00 2001 +From: "Maxin B. John" <maxin.john@intel.com> +Date: Tue, 13 Mar 2018 14:49:55 +0200 +Subject: [PATCH] watchdog: remove interdependencies of watchdog and + wd_keepalive services + +Since watchdog and watchdog-keepalive packages can't be installed +together, remove the inter-dependencies of watchdog and wd_keepalive +services + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Maxin B. John <maxin.john@intel.com> +--- + debian/watchdog.service | 9 +++------ + debian/wd_keepalive.service | 10 +++++----- + 2 files changed, 8 insertions(+), 11 deletions(-) + +diff --git a/debian/watchdog.service b/debian/watchdog.service +index 7a2fc36..f31d1fe 100644 +--- a/debian/watchdog.service ++++ b/debian/watchdog.service +@@ -1,16 +1,13 @@ + [Unit] + Description=watchdog daemon +-Conflicts=wd_keepalive.service + After=multi-user.target +-OnFailure=wd_keepalive.service + + [Service] + Type=forking + EnvironmentFile=/etc/default/watchdog + ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module' +-ExecStart=/bin/sh -c '[ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options' +-ExecStopPost=/bin/sh -c '[ $run_wd_keepalive != 1 ] || false' ++ExecStart=/bin/sh -c '[ x$run_watchdog != x1 ] || exec /usr/sbin/watchdog $watchdog_options' ++PIDFile=/run/watchdog.pid + + [Install] +-WantedBy=default.target +- ++WantedBy=multi-user.target +diff --git a/debian/wd_keepalive.service b/debian/wd_keepalive.service +index 45b018e..7f8b1dc 100644 +--- a/debian/wd_keepalive.service ++++ b/debian/wd_keepalive.service +@@ -1,13 +1,13 @@ + [Unit] + Description=watchdog keepalive daemon +-Before=watchdog.service shutdown.target +-Conflicts=watchdog.service shutdown.target ++After=multi-user.target + + [Service] + Type=forking + EnvironmentFile=/etc/default/watchdog + ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module' +-ExecStartPre=-/bin/systemctl reset-failed watchdog.service + ExecStart=/usr/sbin/wd_keepalive $watchdog_options +-ExecStartPost=/bin/sh -c 'ln -s /var/run/wd_keepalive.pid /run/sendsigs.omit.d/wd_keepalive.pid' +-ExecStopPost=/bin/sh -c 'rm -f /run/sendsigs.omit.d/wd_keepalive.pid' ++PIDFile=/var/run/wd_keepalive.pid ++ ++[Install] ++WantedBy=multi-user.target +-- +2.4.0 + diff --git a/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch b/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch new file mode 100644 index 0000000000..5c5d2f4e44 --- /dev/null +++ b/meta/recipes-extended/watchdog/watchdog/0001-wd_keepalive.service-use-run-instead-of-var-run.patch @@ -0,0 +1,30 @@ +From b5cb6166dbfa57d1d94b19d4a098991a817f68f5 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Thu, 15 Oct 2020 10:02:17 +0800 +Subject: [PATCH] wd_keepalive.service: use /run instead of /var/run + +/var/run is deprecated by systemd, use /run instead. + +Upstream-Status: Pending + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + debian/wd_keepalive.service | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/debian/wd_keepalive.service b/debian/wd_keepalive.service +index 7f8b1dc..0f2a153 100644 +--- a/debian/wd_keepalive.service ++++ b/debian/wd_keepalive.service +@@ -7,7 +7,7 @@ Type=forking + EnvironmentFile=/etc/default/watchdog + ExecStartPre=/bin/sh -c '[ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/modprobe $watchdog_module' + ExecStart=/usr/sbin/wd_keepalive $watchdog_options +-PIDFile=/var/run/wd_keepalive.pid ++PIDFile=/run/wd_keepalive.pid + + [Install] + WantedBy=multi-user.target +-- +2.17.1 + diff --git a/meta/recipes-extended/watchdog/watchdog/watchdog-conf.patch b/meta/recipes-extended/watchdog/watchdog/watchdog-conf.patch deleted file mode 100644 index e68ad545c3..0000000000 --- a/meta/recipes-extended/watchdog/watchdog/watchdog-conf.patch +++ /dev/null @@ -1,14 +0,0 @@ -Signed-off-by: Diego Rondini <diego.ml@zoho.com> -Upstream-Status: Inappropriate - ---- watchdog-5.13.orig/watchdog.conf 2013-02-01 12:15:44.000000000 +0100 -+++ watchdog-5.13/watchdog.conf 2014-11-13 10:59:43.233943000 +0100 -@@ -20,7 +20,7 @@ - #test-binary = - #test-timeout = - --#watchdog-device = /dev/watchdog -+watchdog-device = /dev/watchdog - - # Defaults compiled into the binary - #temperature-device = diff --git a/meta/recipes-extended/watchdog/watchdog/watchdog-init.patch b/meta/recipes-extended/watchdog/watchdog/watchdog-init.patch deleted file mode 100644 index b2765f1908..0000000000 --- a/meta/recipes-extended/watchdog/watchdog/watchdog-init.patch +++ /dev/null @@ -1,56 +0,0 @@ -Signed-off-by: Diego Rondini <diego.ml@zoho.com> -Upstream-Status: Inappropriate - ---- watchdog-5.13.orig/redhat/watchdog.init 2014-11-12 17:18:39.125943000 +0100 -+++ watchdog-5.13/redhat/watchdog.init 2014-11-12 18:27:36.189943000 +0100 -@@ -7,7 +7,7 @@ - # Henning P. Schmiedehausen <hps@tanstaafl.de> - - # Source function library. --. /etc/rc.d/init.d/functions -+. /etc/init.d/functions - - [ -x /usr/sbin/watchdog -a -e /etc/watchdog.conf ] || exit 0 - -@@ -23,22 +23,22 @@ - - start() { - -- echo -n $"Starting $prog: " -+ echo -n "Starting $prog: " - if [ -n "$(pidofproc $prog)" ]; then -- echo -n $"$prog: already running" -- echo_failure -+ echo -n "$prog: already running " -+ failure - echo - return 1 - fi - if [ "$VERBOSE" = "yes" ]; then -- daemon /usr/sbin/${prog} -v -+ /usr/sbin/${prog} -v - else -- daemon /usr/sbin/${prog} -+ /usr/sbin/${prog} - fi - RETVAL=$? - [ $RETVAL -eq 0 ] && touch $lockfile -- [ $RETVAL -eq 0 ] && echo_success -- [ $RETVAL -ne 0 ] && echo_failure -+ [ $RETVAL -eq 0 ] && success -+ [ $RETVAL -ne 0 ] && failure - echo - return $RETVAL - } -@@ -50,8 +50,10 @@ - # and reboot the box. - killproc $prog -TERM - RETVAL=$? -- echo - [ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile -+ [ $RETVAL -eq 0 ] && success -+ [ $RETVAL -ne 0 ] && failure -+ echo - return $RETVAL - } - diff --git a/meta/recipes-extended/watchdog/watchdog/watchdog.init b/meta/recipes-extended/watchdog/watchdog/watchdog.init new file mode 100644 index 0000000000..d37107cf0e --- /dev/null +++ b/meta/recipes-extended/watchdog/watchdog/watchdog.init @@ -0,0 +1,110 @@ +#!/bin/sh +#/etc/init.d/watchdog: start watchdog daemon. + +### BEGIN INIT INFO +# Provides: watchdog +# Short-Description: Start software watchdog daemon +# Required-Start: $all +# Required-Stop: $all +# Should-Start: +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +test -x /usr/sbin/watchdog || exit 0 + +# For configuration of the init script use the file +# /etc/default/watchdog, do not edit this init script. + +# Set run_watchdog to 1 to start watchdog or 0 to disable it. +run_watchdog=0 + +# Specify additional watchdog options here (see manpage). +watchdog_options="" + +# Specify module to load +watchdog_module="none" + +[ -e /etc/default/watchdog ] && . /etc/default/watchdog + +NAME=watchdog +DAEMON=/usr/sbin/watchdog + +STOP_RETRY_SCHEDULE='TERM/10/forever/KILL/1' + +. /etc/init.d/functions + +# Mock Debian stuff +log_begin_msg() { + echo -n $* +} + +log_end_msg() { + if [ "$1" = "0" ]; then + echo 'done' + else + echo 'error' + fi +} + +log_daemon_msg() { + echo $* +} + +log_progress_msg() { + echo $* +} + +case "$1" in + start) + if [ $run_watchdog = 1 ] + then + # do we have to load a module? + [ "${watchdog_module:-none}" != "none" ] && /sbin/modprobe $watchdog_module + + # Check /dev/watchdog here because if it does not exist after module loading, + # it makes no sense to start the daemon + test -e /dev/watchdog || { log_daemon_msg "daemon not start due to lack of /dev/watchdog"; exit 0; } + + log_begin_msg "Starting watchdog daemon..." + start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON -- $watchdog_options + log_end_msg $? + fi + ;; + + stop) + if [ $run_watchdog = 1 ] + then + log_begin_msg "Stopping watchdog daemon..." + start-stop-daemon --stop --quiet --retry $STOP_RETRY_SCHEDULE \ + --pidfile /var/run/$NAME.pid + + fi + ;; + + restart) + $0 force-reload + ;; + + force-reload) + if [ $run_watchdog = 0 ]; then exit 0; fi + log_daemon_msg "Restarting $NAME" + $0 stop + $0 start + ;; + + status) + status "$DAEMON" + ;; + + *) + echo "Usage: /etc/init.d/watchdog {start|stop|restart|force-reload|status}" + exit 1 + +esac + +exit 0 diff --git a/meta/recipes-extended/watchdog/watchdog_5.15.bb b/meta/recipes-extended/watchdog/watchdog_5.15.bb deleted file mode 100644 index 3d0b72e08d..0000000000 --- a/meta/recipes-extended/watchdog/watchdog_5.15.bb +++ /dev/null @@ -1,65 +0,0 @@ -SUMMARY = "Software watchdog" -DESCRIPTION = "Watchdog is a daemon that checks if your system is still \ -working. If programs in user space are not longer executed \ -it will reboot the system." -HOMEPAGE = "http://watchdog.sourceforge.net/" -BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194" - -LICENSE = "GPL-2.0+" -LIC_FILES_CHKSUM = "file://COPYING;md5=ecc0551bf54ad97f6b541720f84d6569" - -SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \ - file://0001-Include-linux-param.h-for-EXEC_PAGESIZE-definition.patch \ - file://watchdog-init.patch \ - file://watchdog-conf.patch \ - file://wd_keepalive.init \ -" - -SRC_URI[md5sum] = "678c32f6f35a0492c9c1b76b4aa88828" -SRC_URI[sha256sum] = "ffdc865137ad5d8e53664bd22bad4de6ca136d1b4636720320cb52af0c18947c" - -UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/" -UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/" - -inherit autotools update-rc.d systemd - -DEPENDS_append_libc-musl = " libtirpc " -CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc " -LDFLAGS_append_libc-musl = " -ltirpc " -EXTRA_OECONF_append_libc-musl = " --disable-nfs " - -INITSCRIPT_PACKAGES = "${PN} ${PN}-keepalive" - -INITSCRIPT_NAME_${PN} = "watchdog.sh" -INITSCRIPT_PARAMS_${PN} = "start 15 1 2 3 4 5 . stop 85 0 6 ." - -INITSCRIPT_NAME_${PN}-keepalive = "wd_keepalive" -INITSCRIPT_PARAMS_${PN}-keepalive = "start 15 1 2 3 4 5 . stop 85 0 6 ." - -SYSTEMD_SERVICE_${PN} = "watchdog.service wd_keepalive.service" - -do_install_append() { - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${S}/debian/watchdog.service ${D}${systemd_system_unitdir} - install -m 0644 ${S}/debian/wd_keepalive.service ${D}${systemd_system_unitdir} - - install -D ${S}/redhat/watchdog.init ${D}/${sysconfdir}/init.d/watchdog.sh - install -Dm 0755 ${WORKDIR}/wd_keepalive.init ${D}${sysconfdir}/init.d/wd_keepalive - - # watchdog.conf is provided by the watchdog-config recipe - rm ${D}${sysconfdir}/watchdog.conf -} - -PACKAGES =+ "${PN}-keepalive" - -FILES_${PN}-keepalive = " \ - ${sysconfdir}/init.d/wd_keepalive \ - ${sbindir}/wd_keepalive \ -" - -RDEPENDS_${PN} += "${PN}-config" -RRECOMMENDS_${PN} += "kernel-module-softdog" - -RDEPENDS_${PN}-keepalive += "${PN}-config" -RCONFLICTS_${PN}-keepalive += "${PN}" -RRECOMMENDS_${PN}-keepalive += "kernel-module-softdog" diff --git a/meta/recipes-extended/watchdog/watchdog_5.16.bb b/meta/recipes-extended/watchdog/watchdog_5.16.bb new file mode 100644 index 0000000000..5325ccafda --- /dev/null +++ b/meta/recipes-extended/watchdog/watchdog_5.16.bb @@ -0,0 +1,73 @@ +SUMMARY = "Software watchdog" +DESCRIPTION = "Watchdog is a daemon that checks if your system is still \ +working. If programs in user space are not longer executed \ +it will reboot the system." +HOMEPAGE = "http://watchdog.sourceforge.net/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=172030&atid=860194" + +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=084236108b1d4a9851bf5213fea586fd" + +SRC_URI = "${SOURCEFORGE_MIRROR}/watchdog/watchdog-${PV}.tar.gz \ + file://0001-watchdog-remove-interdependencies-of-watchdog-and-wd.patch \ + file://watchdog.init \ + file://wd_keepalive.init \ + file://0001-wd_keepalive.service-use-run-instead-of-var-run.patch \ + file://0001-shutdown-Do-not-guard-sys-quota.h-sys-swap.h-and-sys.patch \ +" + +SRC_URI[md5sum] = "1b4f51cabc64d1bee2fce7cdd626831f" +SRC_URI[sha256sum] = "b8e7c070e1b72aee2663bdc13b5cc39f76c9232669cfbb1ac0adc7275a3b019d" + +# Can be dropped when the output next changes, avoids failures after +# reproducibility issues + +UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/watchdog/files/watchdog/" +UPSTREAM_CHECK_REGEX = "/watchdog/(?P<pver>(\d+[\.\-_]*)+)/" + +inherit autotools update-rc.d systemd pkgconfig + +EXTRA_OECONF += " --disable-nfs " +CACHED_CONFIGUREVARS += "ac_cv_path_PATH_SENDMAIL=${sbindir}/sendmail" + +INITSCRIPT_PACKAGES = "${PN} ${PN}-keepalive" + +INITSCRIPT_NAME:${PN} = "watchdog" +INITSCRIPT_PARAMS:${PN} = "start 25 1 2 3 4 5 . stop 85 0 6 ." + +INITSCRIPT_NAME:${PN}-keepalive = "wd_keepalive" +INITSCRIPT_PARAMS:${PN}-keepalive = "start 25 1 2 3 4 5 . stop 85 0 6 ." + +SYSTEMD_PACKAGES = "${PN} ${PN}-keepalive" +SYSTEMD_SERVICE:${PN} = "watchdog.service" +SYSTEMD_SERVICE:${PN}-keepalive = "wd_keepalive.service" +# When using systemd, consider making use of internal watchdog support of systemd. +# See RuntimeWatchdogSec in /etc/systemd/system.conf. +SYSTEMD_AUTO_ENABLE = "disable" + +do_install:append() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/debian/watchdog.service ${D}${systemd_system_unitdir} + install -m 0644 ${S}/debian/wd_keepalive.service ${D}${systemd_system_unitdir} + + install -Dm 0755 ${WORKDIR}/watchdog.init ${D}/${sysconfdir}/init.d/watchdog + install -Dm 0755 ${WORKDIR}/wd_keepalive.init ${D}${sysconfdir}/init.d/wd_keepalive + + # watchdog.conf is provided by the watchdog-config recipe + rm ${D}${sysconfdir}/watchdog.conf +} + +PACKAGES =+ "${PN}-keepalive" + +FILES:${PN}-keepalive = " \ + ${sysconfdir}/init.d/wd_keepalive \ + ${systemd_system_unitdir}/wd_keepalive.service \ + ${sbindir}/wd_keepalive \ +" + +RDEPENDS:${PN} += "${PN}-config" +RRECOMMENDS:${PN} += "kernel-module-softdog" + +RDEPENDS:${PN}-keepalive += "${PN}-config" +RCONFLICTS:${PN}-keepalive += "${PN}" +RRECOMMENDS:${PN}-keepalive += "kernel-module-softdog" |