git: 511a3978bbce - main - net/smcroute: Update to 2.5.7

From: Hiroki Sato <hrs_at_FreeBSD.org>
Date: Thu, 12 Jun 2025 23:21:44 UTC
The branch main has been updated by hrs:

URL: https://cgit.FreeBSD.org/ports/commit/?id=511a3978bbcef3c00ec1b45cdf358b6e95980c69

commit 511a3978bbcef3c00ec1b45cdf358b6e95980c69
Author:     Hiroki Sato <hrs@FreeBSD.org>
AuthorDate: 2025-06-12 23:20:55 +0000
Commit:     Hiroki Sato <hrs@FreeBSD.org>
CommitDate: 2025-06-12 23:21:26 +0000

    net/smcroute: Update to 2.5.7
---
 net/smcroute/Makefile                            |  7 ++-
 net/smcroute/distinfo                            |  6 +--
 net/smcroute/files/patch-Makefile.am             | 21 ++++-----
 net/smcroute/files/patch-ipc.c                   | 52 ----------------------
 net/smcroute/files/patch-mcgroup.c               | 50 ---------------------
 net/smcroute/files/patch-mroute-api.c            | 55 ------------------------
 net/smcroute/files/patch-src-mroute.h            | 14 ++++++
 net/smcroute/files/{smcroute.in => smcrouted.in} | 17 +++-----
 net/smcroute/pkg-plist                           |  6 ++-
 9 files changed, 41 insertions(+), 187 deletions(-)

diff --git a/net/smcroute/Makefile b/net/smcroute/Makefile
index c114794fb67b..446364c4aa16 100644
--- a/net/smcroute/Makefile
+++ b/net/smcroute/Makefile
@@ -1,6 +1,5 @@
 PORTNAME=	smcroute
-PORTVERSION=	2.1.0
-PORTREVISION=	1
+PORTVERSION=	2.5.7
 CATEGORIES=	net
 
 MAINTAINER=	hrs@FreeBSD.org
@@ -12,14 +11,14 @@ LICENSE_FILE=	${WRKSRC}/COPYING
 
 USES=		autoreconf cpe
 CPE_VENDOR=	troglobit
-USE_RC_SUBR=	${PORTNAME}
+USE_RC_SUBR=	smcrouted
 USE_GITHUB=	yes
 GH_ACCOUNT=	troglobit
 GNU_CONFIGURE=	yes
 GNU_CONFIGURE_MANPREFIX=	${PREFIX}/share
 CONFIGURE_ARGS=	--bindir=${PREFIX}/sbin
 INSTALL_TARGET=	install-exec-am install-man
-PORTDOCS=	AUTHORS COPYING ChangeLog README TODO
+PORTDOCS=	ChangeLog.md README.md
 
 OPTIONS_DEFINE=	DOCS
 DOCS_INSTALL_TARGET=	install
diff --git a/net/smcroute/distinfo b/net/smcroute/distinfo
index 34c563ea4289..2d2fad3bb245 100644
--- a/net/smcroute/distinfo
+++ b/net/smcroute/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1465680746
-SHA256 (troglobit-smcroute-2.1.0_GH0.tar.gz) = 1b0b625e3645b1bce42c257d1541c85c8a15d763f38cf8892563b6c5696d89ee
-SIZE (troglobit-smcroute-2.1.0_GH0.tar.gz) = 43402
+TIMESTAMP = 1749768138
+SHA256 (troglobit-smcroute-2.5.7_GH0.tar.gz) = 5963f9383564c641eb81be41d3b6743339adb415a252bed1945ad0f9e53bdd52
+SIZE (troglobit-smcroute-2.5.7_GH0.tar.gz) = 173116
diff --git a/net/smcroute/files/patch-Makefile.am b/net/smcroute/files/patch-Makefile.am
index c5f8048e4b7f..f5a702bc66be 100644
--- a/net/smcroute/files/patch-Makefile.am
+++ b/net/smcroute/files/patch-Makefile.am
@@ -1,12 +1,13 @@
---- Makefile.am.orig	2016-02-17 21:02:06 UTC
+--- Makefile.am.orig	2024-05-09 17:03:52 UTC
 +++ Makefile.am
-@@ -2,8 +2,7 @@
+@@ -3,8 +3,8 @@ dist_sbin_SCRIPTS       = smcroute
+ SUBDIRS                 = man src
+ DISTCLEANFILES		= *~ DEADJOE semantic.cache *.gdb *.elf core core.* *.d
+ dist_sbin_SCRIPTS       = smcroute
+-doc_DATA		= README.md COPYING smcroute.conf
+-EXTRA_DIST		= README.md ChangeLog.md autogen.sh smcroute.conf smcroute.default smcroute.init
++doc_DATA		= README.md ChangeLog.md
++EXTRA_DIST		= autogen.sh smcroute.conf smcroute.default smcroute.init
  
- dist_man8_MANS		= smcroute.8
- 
--doc_DATA		= README AUTHORS TODO ChangeLog COPYING \
--			  smcroute.conf smcroute.init
-+doc_DATA		= README AUTHORS TODO ChangeLog COPYING
- EXTRA_DIST		= autogen.sh smcroute.conf smcroute.init
- 
- sbin_PROGRAMS		= smcroute
+ if ENABLE_TEST
+ SUBDIRS                += test
diff --git a/net/smcroute/files/patch-ipc.c b/net/smcroute/files/patch-ipc.c
deleted file mode 100644
index 40ea56b8bca8..000000000000
--- a/net/smcroute/files/patch-ipc.c
+++ /dev/null
@@ -1,52 +0,0 @@
---- ipc.c.orig	2016-02-17 21:02:06 UTC
-+++ ipc.c
-@@ -50,9 +50,22 @@ int ipc_server_init(void)
- 	if (server_sd >= 0)
- 		close(server_sd);
- 
-+#ifdef SOCK_CLOEXEC
- 	server_sd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
-+#else
-+	server_sd = socket(AF_UNIX, SOCK_STREAM, 0);
-+#endif
- 	if (server_sd < 0)
- 		return -1;
-+#ifndef SOCK_CLOEXEC
-+	if (fcntl(server_sd, F_SETFD, FD_CLOEXEC) < 0) {
-+		int err = errno;
-+		close(server_sd);
-+		server_sd = -1;
-+		errno = err;
-+		return server_sd;
-+	}
-+#endif
- 
- #ifdef HAVE_SOCKADDR_UN_SUN_LEN
- 	sa.sun_len = 0;	/* <- correct length is set by the OS */
-@@ -89,10 +102,26 @@ int ipc_client_init(void)
- 	if (client_sd >= 0)
- 		close(client_sd);
- 
-+#ifdef SOCK_CLOEXEC
- 	client_sd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
-+#else
-+	client_sd = socket(AF_UNIX, SOCK_STREAM, 0);
-+#endif
- 	if (client_sd < 0)
- 		return -1;
- 
-+#ifndef SOCK_CLOEXEC
-+	if (fcntl(client_sd, F_SETFD, FD_CLOEXEC) < 0) {
-+		int err = errno;
-+
-+		close(client_sd);
-+		client_sd = -1;
-+
-+		errno = err;
-+		return -1;
-+	}
-+#endif
-+
- #ifdef HAVE_SOCKADDR_UN_SUN_LEN
- 	sa.sun_len = 0;	/* <- correct length is set by the OS */
- #endif
diff --git a/net/smcroute/files/patch-mcgroup.c b/net/smcroute/files/patch-mcgroup.c
deleted file mode 100644
index d2cc2cdfddbf..000000000000
--- a/net/smcroute/files/patch-mcgroup.c
+++ /dev/null
@@ -1,50 +0,0 @@
---- mcgroup.c.orig	2016-02-17 21:02:06 UTC
-+++ mcgroup.c
-@@ -54,11 +54,23 @@ static struct iface *find_valid_iface(co
- static void mcgroup4_init(void)
- {
- 	if (mcgroup4_socket < 0) {
-+#ifdef SOCK_CLOEXEC
- 		mcgroup4_socket = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
-+#else
-+		mcgroup4_socket = socket(AF_INET, SOCK_DGRAM, 0);
-+#endif
- 		if (mcgroup4_socket < 0) {
- 			smclog(LOG_ERR, "Failed creating socket for joining IPv4 multicast groups: %m");
- 			exit(255);
- 		}
-+#ifndef SOCK_CLOEXEC
-+		if (fcntl(mcgroup4_socket, F_SETFD, FD_CLOEXEC) < 0) {
-+			smclog(LOG_WARNING, "Failed creating socket for joining IPv4 multicast groups: %m");
-+			close(mcgroup4_socket);
-+			mcgroup4_socket = -1;
-+			return;
-+		}
-+#endif
- 
- #ifdef __linux__
- 		if (setsockopt(mcgroup4_socket, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog)) < 0)
-@@ -132,11 +144,23 @@ static int mcgroup6_socket = -1;
- static void mcgroup6_init(void)
- {
- 	if (mcgroup6_socket < 0) {
-+#ifdef SOCK_CLOEXEC
- 		mcgroup6_socket = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, IPPROTO_UDP);
-+#else
-+		mcgroup6_socket = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);
-+#endif
- 		if (mcgroup6_socket < 0) {
- 			smclog(LOG_WARNING, "Failed creating socket for joining IPv6 multicast groups: %m");
- 			return;
- 		}
-+#ifndef SOCK_CLOEXEC
-+		if (fcntl(mcgroup6_socket, F_SETFD, FD_CLOEXEC) < 0) {
-+			smclog(LOG_WARNING, "Failed creating socket for joining IPv6 multicast groups: %m");
-+			close(mcgroup6_socket);
-+			mcgroup6_socket = -1;
-+			return;
-+		}
-+#endif
- 
- #ifdef __linux__
- 		if (setsockopt(mcgroup6_socket, SOL_SOCKET, SO_ATTACH_FILTER, &fprog, sizeof(fprog)) < 0)
diff --git a/net/smcroute/files/patch-mroute-api.c b/net/smcroute/files/patch-mroute-api.c
deleted file mode 100644
index 8158d37c136a..000000000000
--- a/net/smcroute/files/patch-mroute-api.c
+++ /dev/null
@@ -1,55 +0,0 @@
---- mroute-api.c.orig	2016-02-17 21:02:06 UTC
-+++ mroute-api.c
-@@ -98,13 +98,26 @@ int mroute4_enable(void)
- 	unsigned int i;
- 	struct iface *iface;
- 
-+#ifdef SOCK_CLOEXEC
- 	mroute4_socket = socket(AF_INET, SOCK_RAW | SOCK_CLOEXEC, IPPROTO_IGMP);
-+#else
-+	mroute4_socket = socket(AF_INET, SOCK_RAW, IPPROTO_IGMP);
-+#endif
- 	if (mroute4_socket < 0) {
- 		if (ENOPROTOOPT == errno)
- 			smclog(LOG_WARNING, "Kernel does not support IPv4 multicast routing, skipping ...");
- 
- 		return -1;
- 	}
-+#ifndef SOCK_CLOEXEC
-+	if (fcntl(mroute4_socket, F_SETFD, FD_CLOEXEC) < 0) {
-+		smclog(LOG_INIT, "Failed initializing IPv4 multicast routing API: %m");
-+		close(mroute4_socket);
-+		mroute4_socket = -1;
-+
-+		return -1;
-+	}
-+#endif
- 
- 	if (setsockopt(mroute4_socket, IPPROTO_IP, MRT_INIT, (void *)&arg, sizeof(arg))) {
- 		switch (errno) {
-@@ -472,12 +485,25 @@ int mroute6_enable(void)
- 	unsigned int i;
- 	struct iface *iface;
- 
-+#ifdef SOCK_CLOEXEC
- 	if ((mroute6_socket = socket(AF_INET6, SOCK_RAW | SOCK_CLOEXEC, IPPROTO_ICMPV6)) < 0) {
-+#else
-+	if ((mroute6_socket = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6)) < 0) {
-+#endif
- 		if (ENOPROTOOPT == errno)
- 			smclog(LOG_WARNING, "Kernel does not support IPv6 multicast routing, skipping ...");
- 
- 		return -1;
- 	}
-+#ifndef SOCK_CLOEXEC
-+	if (fcntl(mroute6_socket, F_SETFD, FD_CLOEXEC) < 0) {
-+		smclog(LOG_INIT, "Failed initializing IPv6 multicast routing API: %m");
-+		close(mroute6_socket);
-+		mroute6_socket = -1;
-+
-+		return -1;
-+	}
-+#endif
- 	if (setsockopt(mroute6_socket, IPPROTO_IPV6, MRT6_INIT, (void *)&arg, sizeof(arg))) {
- 		switch (errno) {
- 		case EADDRINUSE:
diff --git a/net/smcroute/files/patch-src-mroute.h b/net/smcroute/files/patch-src-mroute.h
new file mode 100644
index 000000000000..77bb0371f14a
--- /dev/null
+++ b/net/smcroute/files/patch-src-mroute.h
@@ -0,0 +1,14 @@
+--- src/mroute.h.orig	2024-05-09 17:03:52 UTC
++++ src/mroute.h
+@@ -13,7 +13,11 @@
+ #include <netinet/in_var.h>
+ #endif
+ #include <netinet/ip.h>
++#if defined(__FreeBSD__)
+ #include "queue.h"		/* Needed by netinet/ip_mroute.h on FreeBSD */
++#include <sys/callout.h>
++#include <sys/mutex.h>
++#endif
+ 
+ #ifdef HAVE_LINUX_MROUTE_H
+ #define _LINUX_IN_H             /* For Linux <= 2.6.25 */
diff --git a/net/smcroute/files/smcroute.in b/net/smcroute/files/smcrouted.in
similarity index 56%
rename from net/smcroute/files/smcroute.in
rename to net/smcroute/files/smcrouted.in
index a3f72ec38bf4..efac0aabe5a0 100644
--- a/net/smcroute/files/smcroute.in
+++ b/net/smcroute/files/smcrouted.in
@@ -1,31 +1,24 @@
 #!/bin/sh
 
-# PROVIDE: smcroute
+# PROVIDE: smcrouted
 # REQUIRE: netif routing
 # KEYWORD: nojail
 
 #
 # Add the following to /etc/rc.conf[.local] to enable this service
 #
-# smcroute_enable="YES"
+# smcrouted_enable="YES"
 #
 
 . /etc/rc.subr
 
-name="smcroute"
+name="smcrouted"
 rcvar="${name}_enable"
 command="%%PREFIX%%/sbin/${name}"
-start_precmd="${name}_precmd"
-
-smcroute_precmd()
-{
-
-	rc_flags="$rc_flags -d"
-}
 
 load_rc_config $name
 
-: ${smcroute_enable="NO"}
-: ${smcroute_flags=""}
+: ${smcrouted_enable="NO"}
+: ${smcrouted_flags=""}
 
 run_rc_command "$1"
diff --git a/net/smcroute/pkg-plist b/net/smcroute/pkg-plist
index 680ba6a9acbb..bbbc7c7282fb 100644
--- a/net/smcroute/pkg-plist
+++ b/net/smcroute/pkg-plist
@@ -1,3 +1,7 @@
 sbin/smcroute
+sbin/smcroutectl
+sbin/smcrouted
 @sample etc/smcroute.conf.sample
-share/man/man8/smcroute.8.gz
+share/man/man5/smcroute.conf.5.gz
+share/man/man8/smcroutectl.8.gz
+share/man/man8/smcrouted.8.gz