git: 8807270aa322 - main - net/tayga: Update 0.9.2 => 0.9.5

From: Vladimir Druzenko <vvd_at_FreeBSD.org>
Date: Mon, 28 Jul 2025 18:16:05 UTC
The branch main has been updated by vvd:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8807270aa322fe0cc119083a48c0785fa3641378

commit 8807270aa322fe0cc119083a48c0785fa3641378
Author:     Franco Fichtner <franco@opnsense.org>
AuthorDate: 2025-07-28 18:14:06 +0000
Commit:     Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2025-07-28 18:14:06 +0000

    net/tayga: Update 0.9.2 => 0.9.5
    
    Changelogs:
    https://github.com/apalrd/tayga/releases/tag/0.9.2-10
    https://github.com/apalrd/tayga/releases/tag/0.9.4
    https://github.com/apalrd/tayga/releases/tag/0.9.5
    
    Upstream moved to https://github.com/apalrd/tayga/
    Upstream committed patches for FreeBSD.
    
    PR:     288509
---
 net/tayga/Makefile            |  25 +++--
 net/tayga/distinfo            |  13 ++-
 net/tayga/files/patch-freebsd | 250 ------------------------------------------
 3 files changed, 29 insertions(+), 259 deletions(-)

diff --git a/net/tayga/Makefile b/net/tayga/Makefile
index 02a89ae1d446..8b2cb4e6c453 100644
--- a/net/tayga/Makefile
+++ b/net/tayga/Makefile
@@ -1,17 +1,28 @@
 PORTNAME=	tayga
-DISTVERSION=	0.9.2
-PORTREVISION=	2
+DISTVERSION=	0.9.5
 CATEGORIES=	net
-MASTER_SITES=	http://www.litech.org/tayga/
+
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${PORTNAME}/commit/
+PATCHFILES=	49f64b0.patch:-p1 \
+		32cd0a7.patch:-p1 \
+		b62e33f.patch:-p1 \
+		6c298f2.patch:-p1
 
 MAINTAINER=	franco@opnsense.org
 COMMENT=	Userland stateless NAT64 daemon
-WWW=		http://www.litech.org/tayga/
+WWW=		https://github.com/apalrd/tayga/
 
 LICENSE=	GPLv2
-LICENSE_FILE=	${WRKSRC}/COPYING
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		gmake
+USE_GITHUB=	yes
+GH_ACCOUNT=	apalrd
+MAKE_ENV=	RELEASE=${DISTVERSION}
+CFLAGS+=	-DTAYGA_CONF_PATH='\"${PREFIX}/etc/tayga.conf\"'
 
-USES=		gmake tar:bzip2
-GNU_CONFIGURE=	yes
+post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/sbin/tayga
+	${INSTALL_DATA} ${WRKSRC}/tayga.conf.example ${STAGEDIR}${PREFIX}/etc
 
 .include <bsd.port.mk>
diff --git a/net/tayga/distinfo b/net/tayga/distinfo
index a86e674e658d..3a160994ac27 100644
--- a/net/tayga/distinfo
+++ b/net/tayga/distinfo
@@ -1,2 +1,11 @@
-SHA256 (tayga-0.9.2.tar.bz2) = 2b1f7927a9d2dcff9095aff3c271924b052ccfd2faca9588b277431a44f0009c
-SIZE (tayga-0.9.2.tar.bz2) = 86022
+TIMESTAMP = 1750316784
+SHA256 (apalrd-tayga-0.9.5_GH0.tar.gz) = d44cc1158f60623d1bcd245f811957a162092c8f5e725489438de12e5500ae49
+SIZE (apalrd-tayga-0.9.5_GH0.tar.gz) = 143392
+SHA256 (49f64b0.patch) = 42fb7ddcfa84f6f9bf324246a21ca2701d9cf03058ccfbbff8311dbac355e915
+SIZE (49f64b0.patch) = 889
+SHA256 (32cd0a7.patch) = d4ad301fdbb588d2a5840e769600236dac911dcf5602cdc519fef26b696d2e0e
+SIZE (32cd0a7.patch) = 4237
+SHA256 (b62e33f.patch) = 907b34695d250c4cec1246697677f8b7330c69d1123f7d7e9a5e9540c9298cb7
+SIZE (b62e33f.patch) = 1209
+SHA256 (6c298f2.patch) = 951542917809f794a0b692c9c15daedfdfdc0314639c22e07663e4c1344011a4
+SIZE (6c298f2.patch) = 654
diff --git a/net/tayga/files/patch-freebsd b/net/tayga/files/patch-freebsd
deleted file mode 100644
index a0771c8b798e..000000000000
--- a/net/tayga/files/patch-freebsd
+++ /dev/null
@@ -1,250 +0,0 @@
---- nat64.c.orig	2011-05-25 14:11:30 UTC
-+++ nat64.c
-@@ -94,8 +94,7 @@ static void host_send_icmp4(uint8_t tos, struct in_add
- 	} __attribute__ ((__packed__)) header;
- 	struct iovec iov[2];
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IP);
-+	TUN_SET_PROTO(&header.pi,  ETH_P_IP);
- 	header.ip4.ver_ihl = 0x45;
- 	header.ip4.tos = tos;
- 	header.ip4.length = htons(sizeof(header.ip4) + sizeof(header.icmp) +
-@@ -156,6 +155,7 @@ static void host_handle_icmp4(struct pkt *p)
- 	}
- }
- 
-+
- static void xlate_header_4to6(struct pkt *p, struct ip6 *ip6,
- 		int payload_length)
- {
-@@ -266,8 +266,7 @@ static void xlate_4to6_data(struct pkt *p)
- 	if (dest)
- 		dest->flags |= CACHE_F_SEEN_4TO6;
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IPV6);
-+	TUN_SET_PROTO(&header.pi,  ETH_P_IPV6);
- 
- 	if (no_frag_hdr) {
- 		iov[0].iov_base = &header;
-@@ -514,8 +513,7 @@ static void xlate_4to6_icmp_error(struct pkt *p)
- 						sizeof(header.ip6_em)),
- 				ip_checksum(p_em.data, p_em.data_len)));
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IPV6);
-+	TUN_SET_PROTO(&header.pi,  ETH_P_IPV6);
- 
- 	iov[0].iov_base = &header;
- 	iov[0].iov_len = sizeof(header);
-@@ -566,8 +564,7 @@ static void host_send_icmp6(uint8_t tc, struct in6_add
- 	} __attribute__ ((__packed__)) header;
- 	struct iovec iov[2];
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IPV6);
-+	TUN_SET_PROTO(&header.pi,  ETH_P_IPV6);
- 	header.ip6.ver_tc_fl = htonl((0x6 << 28) | (tc << 20));
- 	header.ip6.payload_length = htons(sizeof(header.icmp) + data_len);
- 	header.ip6.next_header = 58;
-@@ -728,8 +725,7 @@ static void xlate_6to4_data(struct pkt *p)
- 	if (dest)
- 		dest->flags |= CACHE_F_SEEN_6TO4;
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IP);
-+	TUN_SET_PROTO(&header.pi, ETH_P_IP);
- 
- 	header.ip4.cksum = ip_checksum(&header.ip4, sizeof(header.ip4));
- 
-@@ -932,8 +928,7 @@ static void xlate_6to4_icmp_error(struct pkt *p)
- 							sizeof(header.ip4_em)),
- 				ip_checksum(p_em.data, p_em.data_len));
- 
--	header.pi.flags = 0;
--	header.pi.proto = htons(ETH_P_IP);
-+	TUN_SET_PROTO(&header.pi, ETH_P_IP);
- 
- 	iov[0].iov_base = &header;
- 	iov[0].iov_len = sizeof(header);
---- tayga.c.orig	2011-05-25 14:11:30 UTC
-+++ tayga.c
-@@ -84,6 +84,7 @@ void read_random_bytes(void *d, int len)
- 	}
- }
- 
-+#ifdef __Linux__
- static void tun_setup(int do_mktun, int do_rmtun)
- {
- 	struct ifreq ifr;
-@@ -161,7 +162,114 @@ static void tun_setup(int do_mktun, int do_rmtun)
- 	slog(LOG_INFO, "Using tun device %s with MTU %d\n", gcfg->tundev,
- 			gcfg->mtu);
- }
-+#endif
- 
-+#ifdef __FreeBSD__
-+static void tun_setup(int do_mktun, int do_rmtun)
-+{
-+	struct ifreq ifr;
-+	int fd, do_rename = 0, multi_af;
-+	char devname[64];
-+
-+	if (strncmp(gcfg->tundev, "tun", 3))
-+		do_rename = 1;
-+
-+	if ((do_mktun || do_rmtun) && do_rename)
-+	{
-+		slog(LOG_CRIT,
-+			"tunnel interface name needs to match tun[0-9]+ pattern "
-+				"for --mktun to work\n");
-+		exit(1);
-+	}
-+
-+	snprintf(devname, sizeof(devname), "/dev/%s", do_rename ? "tun" : gcfg->tundev);
-+
-+	gcfg->tun_fd = open(devname, O_RDWR);
-+	if (gcfg->tun_fd < 0) {
-+		slog(LOG_CRIT, "Unable to open %s, aborting: %s\n",
-+				devname, strerror(errno));
-+		exit(1);
-+	}
-+
-+	if (do_mktun) {
-+		slog(LOG_NOTICE, "Created persistent tun device %s\n",
-+				gcfg->tundev);
-+		return;
-+	} else if (do_rmtun) {
-+
-+		/* Close socket before removal */
-+		close(gcfg->tun_fd);
-+
-+		fd = socket(PF_INET, SOCK_DGRAM, 0);
-+		if (fd < 0) {
-+			slog(LOG_CRIT, "Unable to create control socket, aborting: %s\n",
-+					strerror(errno));
-+			exit(1);
-+		}
-+
-+		memset(&ifr, 0, sizeof(ifr));
-+		strcpy(ifr.ifr_name, gcfg->tundev);
-+		if (ioctl(fd, SIOCIFDESTROY, &ifr) < 0) {
-+			slog(LOG_CRIT, "Unable to destroy interface %s, aborting: %s\n",
-+					gcfg->tundev, strerror(errno));
-+			exit(1);
-+		}
-+
-+		close(fd);
-+
-+		slog(LOG_NOTICE, "Removed persistent tun device %s\n",
-+				gcfg->tundev);
-+		return;
-+	}
-+
-+	/* Set multi-AF mode */
-+	multi_af = 1;
-+	if (ioctl(gcfg->tun_fd, TUNSIFHEAD, &multi_af) < 0) {
-+			slog(LOG_CRIT, "Unable to set multi-AF on %s, "
-+					"aborting: %s\n", gcfg->tundev,
-+					strerror(errno));
-+			exit(1);
-+	}
-+
-+	slog(LOG_CRIT, "Multi-AF mode set on %s\n", gcfg->tundev);
-+
-+	set_nonblock(gcfg->tun_fd);
-+
-+	fd = socket(PF_INET, SOCK_DGRAM, 0);
-+	if (fd < 0) {
-+		slog(LOG_CRIT, "Unable to create socket, aborting: %s\n",
-+				strerror(errno));
-+		exit(1);
-+	}
-+
-+	if (do_rename) {
-+		memset(&ifr, 0, sizeof(ifr));
-+		strcpy(ifr.ifr_name, fdevname(gcfg->tun_fd));
-+		ifr.ifr_data = gcfg->tundev;
-+		if (ioctl(fd, SIOCSIFNAME, &ifr) < 0) {
-+			slog(LOG_CRIT, "Unable to rename interface %s to %s, aborting: %s\n",
-+					fdevname(gcfg->tun_fd), gcfg->tundev,
-+					strerror(errno));
-+			exit(1);
-+		}
-+	}
-+
-+	memset(&ifr, 0, sizeof(ifr));
-+	strcpy(ifr.ifr_name, gcfg->tundev);
-+	if (ioctl(fd, SIOCGIFMTU, &ifr) < 0) {
-+		slog(LOG_CRIT, "Unable to query MTU, aborting: %s\n",
-+				strerror(errno));
-+		exit(1);
-+	}
-+	close(fd);
-+
-+	gcfg->mtu = ifr.ifr_mtu;
-+
-+	slog(LOG_INFO, "Using tun device %s with MTU %d\n", gcfg->tundev,
-+			gcfg->mtu);
-+}
-+#endif
-+
- static void signal_handler(int signal)
- {
- 	write(signalfds[1], &signal, sizeof(signal));
-@@ -214,7 +322,7 @@ static void read_from_tun(void)
- 	memset(p, 0, sizeof(struct pkt));
- 	p->data = gcfg->recv_buf + sizeof(struct tun_pi);
- 	p->data_len = ret - sizeof(struct tun_pi);
--	switch (ntohs(pi->proto)) {
-+	switch (TUN_GET_PROTO(pi)) {
- 	case ETH_P_IP:
- 		handle_ip4(p);
- 		break;
---- tayga.h.orig	2011-05-25 14:11:30 UTC
-+++ tayga.h
-@@ -31,13 +31,43 @@
- #include <syslog.h>
- #include <errno.h>
- #include <time.h>
-+#ifdef __Linux__
- #include <linux/if.h>
- #include <linux/if_tun.h>
- #include <linux/if_ether.h>
-+#endif
-+#ifdef __FreeBSD__
-+#include <net/if.h>
-+#include <net/if_tun.h>
-+#include <netinet/if_ether.h>
-+#include <net/ethernet.h>
-+#include <sys/uio.h>
-+#endif
- 
-+
- #include "list.h"
- #include "config.h"
- 
-+
-+#ifdef __Linux__
-+#define	TUN_SET_PROTO(_pi, _af)			{ (_pi)->flags = 0; (_pi)->proto = htons(_af); }
-+#define	TUN_GET_PROTO(_pi)			ntohs((_pi)->proto)
-+#endif
-+
-+#ifdef __FreeBSD__
-+#define s6_addr8  __u6_addr.__u6_addr8
-+#define s6_addr16 __u6_addr.__u6_addr16
-+#define s6_addr32 __u6_addr.__u6_addr32
-+
-+struct tun_pi {
-+	int	proto;
-+};
-+
-+#define ETH_P_IP AF_INET
-+#define	ETH_P_IPV6 AF_INET6
-+#define	TUN_SET_PROTO(_pi, _af)			{ (_pi)->proto = htonl(_af); }
-+#define	TUN_GET_PROTO(_pi)			ntohl((_pi)->proto)
-+#endif
- 
- /* Configuration knobs */
-