Skip site navigation (1)Skip section navigation (2)
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 status


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6994a746.30af3.4da1a642>