Date: Tue, 17 Feb 2026 17:37:10 +0000 From: Oleksii Samorukov <samm@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 5455b3dd1769 - main - sysutils/smartmontools: fix reload command Message-ID: <6994a746.30af3.4da1a642@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by samm: URL: https://cgit.FreeBSD.org/ports/commit/?id=5455b3dd1769c9057435c8b32e27b9f22c2935fb commit 5455b3dd1769c9057435c8b32e27b9f22c2935fb Author: Oleksii Samorukov <samm@FreeBSD.org> AuthorDate: 2026-02-17 17:32:53 +0000 Commit: Oleksii Samorukov <samm@FreeBSD.org> CommitDate: 2026-02-17 17:37:02 +0000 sysutils/smartmontools: fix reload command - add patch from upstream to set signals regardless existing flags - simplify rc script by handling reload natively PR: 293205 --- sysutils/smartmontools/Makefile | 2 +- sysutils/smartmontools/files/patch-smartd.cpp | 50 +++++++++++++++++++++++++++ sysutils/smartmontools/files/smartd.in | 14 -------- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/sysutils/smartmontools/Makefile b/sysutils/smartmontools/Makefile index f18956f8ce16..a20672855ca7 100644 --- a/sysutils/smartmontools/Makefile +++ b/sysutils/smartmontools/Makefile @@ -1,6 +1,6 @@ PORTNAME= smartmontools DISTVERSION= 7.5 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= SF diff --git a/sysutils/smartmontools/files/patch-smartd.cpp b/sysutils/smartmontools/files/patch-smartd.cpp new file mode 100644 index 000000000000..e0e47039ca41 --- /dev/null +++ b/sysutils/smartmontools/files/patch-smartd.cpp @@ -0,0 +1,50 @@ +--- smartd.cpp.orig 2026-02-17 17:19:34 UTC ++++ smartd.cpp +@@ -97,7 +97,7 @@ extern "C" { + typedef void (*signal_handler_type)(int); + } + +-static void set_signal_if_not_ignored(int sig, signal_handler_type handler) ++static void set_signal(int sig, signal_handler_type handler) + { + #if defined(_WIN32) + // signal() emulation +@@ -105,13 +105,7 @@ static void set_signal_if_not_ignored(int sig, signal_ + + #else + // SVr4, POSIX.1-2001, ..., POSIX.1-2024 +- struct sigaction sa; +- sa.sa_handler = SIG_DFL; +- sigaction(sig, (struct sigaction *)0, &sa); +- if (sa.sa_handler == SIG_IGN) +- return; +- +- sa = {}; ++ struct sigaction sa = {}; + sa.sa_handler = handler; + sa.sa_flags = SA_RESTART; // BSD signal() semantics + sigaction(sig, &sa, (struct sigaction *)0); +@@ -4401,17 +4395,17 @@ static void CheckDevicesOnce(const dev_config_vector & + static void install_signal_handlers() + { + // normal and abnormal exit +- set_signal_if_not_ignored(SIGTERM, sighandler); +- set_signal_if_not_ignored(SIGQUIT, sighandler); ++ set_signal(SIGTERM, sighandler); ++ set_signal(SIGQUIT, sighandler); + + // in debug mode, <CONTROL-C> ==> HUP +- set_signal_if_not_ignored(SIGINT, (debugmode ? HUPhandler : sighandler)); ++ set_signal(SIGINT, (debugmode ? HUPhandler : sighandler)); + + // Catch HUP and USR1 +- set_signal_if_not_ignored(SIGHUP, HUPhandler); +- set_signal_if_not_ignored(SIGUSR1, USR1handler); ++ set_signal(SIGHUP, HUPhandler); ++ set_signal(SIGUSR1, USR1handler); + #ifdef _WIN32 +- set_signal_if_not_ignored(SIGUSR2, USR2handler); ++ set_signal(SIGUSR2, USR2handler); + #endif + } + diff --git a/sysutils/smartmontools/files/smartd.in b/sysutils/smartmontools/files/smartd.in index 832b3bb6b2c7..00c87303247a 100644 --- a/sysutils/smartmontools/files/smartd.in +++ b/sysutils/smartmontools/files/smartd.in @@ -27,9 +27,7 @@ command="%%PREFIX%%/sbin/smartd" command_args="-c ${required_files} -p ${pidfile}" extra_commands="reload report" -reload_cmd="smartd_reload" report_cmd="smartd_report" - start_precmd=smartd_prestart smartd_prestart() @@ -41,18 +39,6 @@ smartd_prestart() esac } -smartd_reload() -{ - local status - - if ! status=`run_rc_command status 2>&1`; then - echo $status - return 1 - fi - echo 'Reloading smartd.' - kill -HUP $rc_pid -} - smartd_report() { local statushome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6994a746.30af3.4da1a642>
