summaryrefslogtreecommitdiff
path: root/net/smcroute
diff options
context:
space:
mode:
Diffstat (limited to 'net/smcroute')
-rw-r--r--net/smcroute/Makefile9
-rw-r--r--net/smcroute/distinfo6
-rw-r--r--net/smcroute/files/patch-Makefile.am21
-rw-r--r--net/smcroute/files/patch-ipc.c52
-rw-r--r--net/smcroute/files/patch-mcgroup.c50
-rw-r--r--net/smcroute/files/patch-mroute-api.c55
-rw-r--r--net/smcroute/files/patch-src-mroute.h14
-rw-r--r--net/smcroute/files/smcrouted.in (renamed from net/smcroute/files/smcroute.in)17
-rw-r--r--net/smcroute/pkg-plist6
9 files changed, 42 insertions, 188 deletions
diff --git a/net/smcroute/Makefile b/net/smcroute/Makefile
index c114794fb67b..ef860b54176e 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
@@ -10,16 +9,16 @@ WWW= https://github.com/troglobit/smcroute/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-USES= autoreconf cpe
+USES= autoreconf cpe pkgconfig
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
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