pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Add vde2 (untested)



Module Name:	pkgsrc-wip
Committed By:	Olaf Seibert <rhialto%falu.nl@localhost>
Pushed By:	rhialto
Date:		Sat Aug 8 16:22:43 2026 +0200
Changeset:	7ffd8293bb9577d9e4018948ffd53d37b6e19c08

Modified Files:
	Makefile
Added Files:
	vde2/DESCR
	vde2/Makefile
	vde2/PLIST
	vde2/TODO
	vde2/distinfo
	vde2/patches/patch-CMakeLists.txt
	vde2/patches/patch-Macros.cmake
	vde2/patches/patch-src_dpipe.c
	vde2/patches/patch-src_lib_libvdehist.c
	vde2/patches/patch-src_vde__pcapplug.c
	vde2/patches/patch-src_vde__plug.c
	vde2/patches/patch-src_vde__plug2tap.c
	vde2/patches/patch-src_vde__router_vde__headers.h
	vde2/patches/patch-src_vde__router_vder__icmp.c
	vde2/patches/patch-src_vde__router_vder__packet.h
	vde2/patches/patch-src_vde__switch_datasock.c
	vde2/patches/patch-src_vde__switch_port.c
	vde2/patches/patch-src_vde__switch_tuntap.c
	vde2/patches/patch-src_vde__vxlan_vxlan.c
	vde2/patches/patch-src_wirefilter.c

Log Message:
Add vde2 (untested)

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=7ffd8293bb9577d9e4018948ffd53d37b6e19c08

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                          |  1 +
 vde2/DESCR                                        | 16 ++++++++
 vde2/Makefile                                     | 29 ++++++++++++++
 vde2/PLIST                                        | 48 +++++++++++++++++++++++
 vde2/TODO                                         |  1 +
 vde2/distinfo                                     | 20 ++++++++++
 vde2/patches/patch-CMakeLists.txt                 | 28 +++++++++++++
 vde2/patches/patch-Macros.cmake                   | 28 +++++++++++++
 vde2/patches/patch-src_dpipe.c                    | 18 +++++++++
 vde2/patches/patch-src_lib_libvdehist.c           | 30 ++++++++++++++
 vde2/patches/patch-src_vde__pcapplug.c            | 31 +++++++++++++++
 vde2/patches/patch-src_vde__plug.c                | 15 +++++++
 vde2/patches/patch-src_vde__plug2tap.c            | 31 +++++++++++++++
 vde2/patches/patch-src_vde__router_vde__headers.h | 15 +++++++
 vde2/patches/patch-src_vde__router_vder__icmp.c   | 17 ++++++++
 vde2/patches/patch-src_vde__router_vder__packet.h | 15 +++++++
 vde2/patches/patch-src_vde__switch_datasock.c     | 15 +++++++
 vde2/patches/patch-src_vde__switch_port.c         | 24 ++++++++++++
 vde2/patches/patch-src_vde__switch_tuntap.c       | 24 ++++++++++++
 vde2/patches/patch-src_vde__vxlan_vxlan.c         | 14 +++++++
 vde2/patches/patch-src_wirefilter.c               | 15 +++++++
 21 files changed, 435 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 28600a6b4c..44043e6d23 100644
--- a/Makefile
+++ b/Makefile
@@ -5995,6 +5995,7 @@ SUBDIR+=	vcg
 SUBDIR+=	vcglib
 SUBDIR+=	vche
 SUBDIR+=	vcsh
+SUBDIR+=	vde2
 SUBDIR+=	vector
 SUBDIR+=	vee
 SUBDIR+=	velero
diff --git a/vde2/DESCR b/vde2/DESCR
new file mode 100644
index 0000000000..2243488b16
--- /dev/null
+++ b/vde2/DESCR
@@ -0,0 +1,16 @@
+TODO: Adjust the following lines from README
+
+VDEv2: Virtual Distributed Ethernet.
+
+Components of the VDE architecture:
+- VDE switches: virtual counterpart of ethernet switches.
+- VDE cables: virtual counterpart of a crossed-cable used to connect two
+  switches.
+
+- VDE 2 includes:
+- switch management both from console and from a "unix socket terminal"
+- VLAN 801.1q *almost* compatible
+- FSTP (fast spanning tree) already incomplete and currently not tested for
+  802.1d/w/s compatibility. under development. (vde_switch must be compiled
+  with the FSTP flag on)
+...
diff --git a/vde2/Makefile b/vde2/Makefile
new file mode 100644
index 0000000000..7c281f652f
--- /dev/null
+++ b/vde2/Makefile
@@ -0,0 +1,29 @@
+# $NetBSD$
+
+DISTNAME=	vde-2-2.3.3.0.0.2026.08.03
+CATEGORIES=	net
+MASTER_SITES=	${MASTER_SITE_GITHUB:=virtualsquare/}
+GITHUB_PROJECT= vde-2
+GITHUB_TAG=	6f1a656584397fc46705ff3d6fbbd3edc2f50f0c
+DIST_SUBDIR=    ${GITHUB_PROJECT}
+
+MAINTAINER=	rhialto%NetBSD.org@localhost
+HOMEPAGE=	https://github.com/virtualsquare/vde-2/
+COMMENT=	virtual switch networking
+LICENSE=	gpl-2 and lgpl-2.1
+
+WRKSRC=	${WRKDIR}/${GITHUB_PROJECT}-${GITHUB_TAG}
+
+USE_TOOLS+=	pkg-config
+USE_TOOLS+=	gmake
+USE_LANGUAGES=	c c++
+
+USE_CMAKE=	yes
+
+PKGCONFIG_OVERRIDE+=	src/lib/vdehist.pc.in
+PKGCONFIG_OVERRIDE+=	src/lib/vdemgmt/vdemgmt.pc.in
+PKGCONFIG_OVERRIDE+=	src/lib/vdeplug.pc.in
+PKGCONFIG_OVERRIDE+=	src/lib/vdesnmp.pc.in
+
+.include "../../devel/cmake/build.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/vde2/PLIST b/vde2/PLIST
new file mode 100644
index 0000000000..209649187f
--- /dev/null
+++ b/vde2/PLIST
@@ -0,0 +1,48 @@
+@comment $NetBSD$
+bin/dpipe
+bin/unixcmd
+bin/vde_autolink
+bin/vde_over_ns
+bin/vde_pcapplug
+bin/vde_plug
+bin/vde_plug2tap
+bin/vde_router
+bin/vde_switch
+bin/vde_vxlan
+bin/vdeterm
+bin/wirefilter
+include/libvdehist.h
+include/libvdemgmt.h
+include/libvdeplug.h
+include/libvdeplug_dyn.h
+include/libvdesnmp.h
+include/vde2/config.h
+lib/libvdehist.so
+lib/libvdehist.so.0
+lib/libvdehist.so.0.0.1
+lib/libvdemgmt.so
+lib/libvdemgmt.so.0
+lib/libvdemgmt.so.0.0.1
+lib/libvdeplug.so
+lib/libvdeplug.so.3
+lib/libvdeplug.so.3.0.1
+lib/libvdesnmp.so
+lib/libvdesnmp.so.0
+lib/libvdesnmp.so.0.0.1
+lib/pkgconfig/vdehist.pc
+lib/pkgconfig/vdemgmt.pc
+lib/pkgconfig/vdeplug.pc
+lib/pkgconfig/vdesnmp.pc
+man/man1/dpipe.1
+man/man1/unixcmd.1
+man/man1/vde_autolink.1
+man/man1/vde_cryptcab.1
+man/man1/vde_over_ns.1
+man/man1/vde_pcapplug.1
+man/man1/vde_plug.1
+man/man1/vde_plug2tap.1
+man/man1/vde_router.1
+man/man1/vde_switch.1
+man/man1/vde_vxlan.1
+man/man1/vdeterm.1
+man/man1/wirefilter.1
diff --git a/vde2/TODO b/vde2/TODO
new file mode 100644
index 0000000000..80329e9d8c
--- /dev/null
+++ b/vde2/TODO
@@ -0,0 +1 @@
+Testing if it really works...
diff --git a/vde2/distinfo b/vde2/distinfo
new file mode 100644
index 0000000000..511f005399
--- /dev/null
+++ b/vde2/distinfo
@@ -0,0 +1,20 @@
+$NetBSD$
+
+BLAKE2s (vde-2/vde-2-2.3.3-6f1a656584397fc46705ff3d6fbbd3edc2f50f0c.tar.gz) = 8010d10dd292a5eb0783fba002987d9bbe84ebfad3cfcf942ce57ad8699e6394
+SHA512 (vde-2/vde-2-2.3.3-6f1a656584397fc46705ff3d6fbbd3edc2f50f0c.tar.gz) = 1e2c346287b324b2f3f7aa1b6ab8c507a04749f08d942ed5f32b2f5c307afa5aa0b906c4510a2428aadc77363d7ed577ba0084abab8010329553a360d23b4c1c
+Size (vde-2/vde-2-2.3.3-6f1a656584397fc46705ff3d6fbbd3edc2f50f0c.tar.gz) = 233086 bytes
+SHA1 (patch-CMakeLists.txt) = 6775f723bef42849f1776a0ce4c28f75528789ab
+SHA1 (patch-Macros.cmake) = d4dc2810a9aaa812a8e35808e324d12a26fa1dfb
+SHA1 (patch-src_dpipe.c) = 37851d01bfbf969741580b4e26cc4a6e85b8bc41
+SHA1 (patch-src_lib_libvdehist.c) = da357fc2b545687698c2d7391e0be2e4b8421854
+SHA1 (patch-src_vde__pcapplug.c) = fea8b578c4cab2ab5e76d462115c8b65d6388a7c
+SHA1 (patch-src_vde__plug.c) = 5492b40c44f0f9263a2f42e5bfef839eec647ab7
+SHA1 (patch-src_vde__plug2tap.c) = e76fb6e3c29991d818737d37a1c39e86ef565748
+SHA1 (patch-src_vde__router_vde__headers.h) = 64150e6fc380ab0d14ccfc780c09488482115f1e
+SHA1 (patch-src_vde__router_vder__icmp.c) = dbd96ad7246da06571ca581043ce10ec2966ee86
+SHA1 (patch-src_vde__router_vder__packet.h) = afae3133ddd1bd0cf96caf34794064df3043af9f
+SHA1 (patch-src_vde__switch_datasock.c) = bca7745b0ccdf3b02b44d029deb8fe47810c5f5a
+SHA1 (patch-src_vde__switch_port.c) = 4035ce4a81a839db9b2ab2fee867b121e1a890d6
+SHA1 (patch-src_vde__switch_tuntap.c) = 1aeb676ed0ea9fd6d2e9f5aef4851d90c99c595f
+SHA1 (patch-src_vde__vxlan_vxlan.c) = cf0c712d9e488db60a0d0f429de0947a2d0657c7
+SHA1 (patch-src_wirefilter.c) = 4d0aa14c524d8578abfb6c4c3cb9286aeb2a4e08
diff --git a/vde2/patches/patch-CMakeLists.txt b/vde2/patches/patch-CMakeLists.txt
new file mode 100644
index 0000000000..d9ec493586
--- /dev/null
+++ b/vde2/patches/patch-CMakeLists.txt
@@ -0,0 +1,28 @@
+$NetBSD$
+
+Add NetBSD.
+https://github.com/virtualsquare/vde-2/issues/70
+
+--- CMakeLists.txt.orig	2026-08-03 10:48:09.000000000 +0000
++++ CMakeLists.txt
+@@ -30,6 +30,8 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin
+     cm_define_var(VDE_DARWIN 1)
+ elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+     cm_define_var(VDE_FREEBSD 1)
++elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
++    cm_define_var(VDE_NETBSD 1)
+ else()
+     message(FATAL_ERROR "Unsupported OS: ${CMAKE_SYSTEM_NAME}")
+ endif()
+@@ -250,9 +252,9 @@ if(ENABLE_TUNTAP)
+ 	    set(ENABLE_TUNTAP OFF)
+         endif()
+ 
+-    elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
++    elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|NetBSD")
+         include(CheckIncludeFile)
+-        cm_check_include("net/if_tun.h" HAVE_NET_IF_TUN_H)
++        cm_check_include("net/if.h;net/if_tun.h" HAVE_NET_IF_TUN_H)
+         if(HAVE_NET_IF_TUN_H)
+             add_definitions(-DHAVE_TUNTAP=1)
+         else()
diff --git a/vde2/patches/patch-Macros.cmake b/vde2/patches/patch-Macros.cmake
new file mode 100644
index 0000000000..08f4701141
--- /dev/null
+++ b/vde2/patches/patch-Macros.cmake
@@ -0,0 +1,28 @@
+$NetBSD$
+
+from https://github.com/virtualsquare/vde-2/issues/70
+
+--- Macros.cmake.orig	2026-08-03 10:48:09.000000000 +0000
++++ Macros.cmake
+@@ -1,4 +1,4 @@
+-include(CheckIncludeFile)
++include(CheckIncludeFiles)
+ include(CheckFunctionExists)
+ include(CheckLibraryExists)
+ include(CheckTypeSize)
+@@ -30,7 +30,7 @@ macro(cm_check_lib libname)
+ endmacro()
+ 
+ macro(cm_check_include include var)
+-    check_include_file(${include} ${var})
++    check_include_files("${include}" ${var})
+     if(${var})
+         set(defines ${defines} "#cmakedefine ${var}\n\n")
+     else()
+@@ -73,4 +73,4 @@ macro(cm_configure_file to_file)
+     file(WRITE ${default_conf_file} ${defines})
+     configure_file(${default_conf_file} ${to_file})
+     file(REMOVE ${default_conf_file}) # uncomment if you want to check the template
+-endmacro()
+\ No newline at end of file
++endmacro()
diff --git a/vde2/patches/patch-src_dpipe.c b/vde2/patches/patch-src_dpipe.c
new file mode 100644
index 0000000000..581ab78811
--- /dev/null
+++ b/vde2/patches/patch-src_dpipe.c
@@ -0,0 +1,18 @@
+$NetBSD$
+
+setpgrp() without args is System V-style.
+
+--- src/dpipe.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/dpipe.c
+@@ -201,7 +201,11 @@ int main(int argc, char *argv[]) 
+ 
+ 	if (daemonize != 0)
+ 		daemon(0,0);
++#if VDE_NETBSD
++	else if (setpgid(0, 0) == -1) {
++#else
+ 	else if (setpgrp() == -1) {
++#endif
+ 		fprintf(stderr,"Err: cannot create pgrp\n");
+ 		perror("setpgrp");
+ 		exit(1);
diff --git a/vde2/patches/patch-src_lib_libvdehist.c b/vde2/patches/patch-src_lib_libvdehist.c
new file mode 100644
index 0000000000..344d656aad
--- /dev/null
+++ b/vde2/patches/patch-src_lib_libvdehist.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+Fix bad ctype calls.
+
+--- src/lib/libvdehist.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/lib/libvdehist.c
+@@ -297,16 +297,16 @@ void vdehist_mgmt_to_term(struct vdehist
+ 						char *message=st->vlinebuf;
+ 						//fprintf(stderr,"MSG1 \"%s\"\n",message);
+ 						while (*message != '\0' &&
+-								!(isdigit(message[0]) &&
+-									isdigit(message[1]) &&
+-									isdigit(message[2]) &&
+-									isdigit(message[3])))
++								!(isdigit((unsigned char)message[0]) &&
++									isdigit((unsigned char)message[1]) &&
++									isdigit((unsigned char)message[2]) &&
++									isdigit((unsigned char)message[3])))
+ 							message++;
+ 						if (strncmp(message,"0000",4)==0)
+ 							st->vindata=1;
+-						else if (isdigit(message[1]) &&
+-								isdigit(message[2]) &&
+-								isdigit(message[3])) {
++						else if (isdigit((unsigned char)message[1]) &&
++								isdigit((unsigned char)message[2]) &&
++								isdigit((unsigned char)message[3])) {
+ 							if(message[0]=='1') {
+ 								message+=5;
+ 								vdehist_termwrite(st->termfd,message,strlen(message));
diff --git a/vde2/patches/patch-src_vde__pcapplug.c b/vde2/patches/patch-src_vde__pcapplug.c
new file mode 100644
index 0000000000..12bd5ad6ef
--- /dev/null
+++ b/vde2/patches/patch-src_vde__pcapplug.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+from https://github.com/virtualsquare/vde-2/issues/70
+
+--- src/vde_pcapplug.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_pcapplug.c
+@@ -32,7 +32,6 @@
+ #include <libgen.h>
+ #define _GNU_SOURCE
+ #include <getopt.h>
+-#include <pcap.h>
+ #include <limits.h>
+ 
+ #include <config.h>
+@@ -40,11 +39,14 @@
+ #include <vdecommon.h>
+ #include <libvdeplug.h>
+ 
+-#ifdef VDE_FREEBSD
++#if defined(VDE_FREEBSD) || defined(VDE_NETBSD)
++#include <net/bpf.h>
+ #include <sys/socket.h>
+ #endif
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#include <pcap.h>
++
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ #	if defined HAVE_SYSLIMITS_H
+ #		include <syslimits.h>
+ #	elif defined HAVE_SYS_SYSLIMITS_H
diff --git a/vde2/patches/patch-src_vde__plug.c b/vde2/patches/patch-src_vde__plug.c
new file mode 100644
index 0000000000..0e83c97515
--- /dev/null
+++ b/vde2/patches/patch-src_vde__plug.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Fix bad ctype calls.
+
+--- src/vde_plug.c.orig	2026-08-08 13:52:08.513903724 +0000
++++ src/vde_plug.c
+@@ -64,7 +64,7 @@ void write_syslog_entry(char *message)
+ 	//TNX Giordani-Macchia code from vish.c
+ 	if ((ssh_client=getenv("SSH_CLIENT"))!=NULL)
+ 	{
+-		for (ip_length=0;ip_length<sizeof(host)&&ssh_client[ip_length]!=0&&!isspace(ssh_client[ip_length]);ip_length++);
++		for (ip_length=0;ip_length<sizeof(host)&&ssh_client[ip_length]!=0&&!isspace((unsigned char)ssh_client[ip_length]);ip_length++);
+ 		if (ip_length>=sizeof(host))
+ 			ip_length=sizeof(host)-1;
+ 		memcpy(host,ssh_client,ip_length);
diff --git a/vde2/patches/patch-src_vde__plug2tap.c b/vde2/patches/patch-src_vde__plug2tap.c
new file mode 100644
index 0000000000..e004ee319d
--- /dev/null
+++ b/vde2/patches/patch-src_vde__plug2tap.c
@@ -0,0 +1,31 @@
+$NetBSD$
+
+Add NetBSD.
+
+--- src/vde_plug2tap.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_plug2tap.c
+@@ -34,13 +34,13 @@
+ #include <linux/if_tun.h>
+ #endif
+ 
+-#ifdef VDE_FREEBSD
++#if defined(VDE_FREEBSD) || defined(VDE_NETNSD)
+ #include <sys/socket.h>
+ #include <net/if.h>
+ #include <net/if_tun.h>
+ #endif
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ #	define TAP_PREFIX "/dev/"
+ #	if defined HAVE_SYSLIMITS_H
+ #		include <syslimits.h>
+@@ -195,7 +195,7 @@ int open_tap(char *dev)
+ }
+ #endif
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ int open_tap(char *dev)
+ {
+ 	int fd;
diff --git a/vde2/patches/patch-src_vde__router_vde__headers.h b/vde2/patches/patch-src_vde__router_vde__headers.h
new file mode 100644
index 0000000000..22e6150d2f
--- /dev/null
+++ b/vde2/patches/patch-src_vde__router_vde__headers.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Add NetBSD.
+
+--- src/vde_router/vde_headers.h.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_router/vde_headers.h
+@@ -22,7 +22,7 @@
+ #define PROTO_TCP 6
+ #define PROTO_UDP 17
+ 
+-#if defined(VDE_FREEBSD) || defined(VDE_DARWIN)
++#if defined(VDE_FREEBSD) || defined(VDE_DARWIN) || defined(VDE_NETBSD)
+ struct iphdr
+ {
+ #if BYTE_ORDER == LITTLE_ENDIAN
diff --git a/vde2/patches/patch-src_vde__router_vder__icmp.c b/vde2/patches/patch-src_vde__router_vder__icmp.c
new file mode 100644
index 0000000000..26564884f0
--- /dev/null
+++ b/vde2/patches/patch-src_vde__router_vder__icmp.c
@@ -0,0 +1,17 @@
+$NetBSD$
+
+Use proper name of icmp message.
+
+--- src/vde_router/vder_icmp.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_router/vder_icmp.c
+@@ -59,6 +59,10 @@ int vder_icmp_ttl_expired(uint32_t dst, 
+ 	return vder_icmp_send(dst, ICMP_TIME_EXCEEDED, ICMP_TIMXCEED_INTRANS, foot);
+ }
+ 
++#ifndef ICMP_UNREACH_FILTER_PROHIB
++#define ICMP_UNREACH_FILTER_PROHIB ICMP_UNREACH_ADMIN_PROHIBIT
++#endif
++
+ int vder_icmp_filter(uint32_t dst, uint8_t *foot)
+ {
+ 	return vder_icmp_send(dst, ICMP_UNREACH, ICMP_UNREACH_FILTER_PROHIB, foot);
diff --git a/vde2/patches/patch-src_vde__router_vder__packet.h b/vde2/patches/patch-src_vde__router_vder__packet.h
new file mode 100644
index 0000000000..1f24097ed7
--- /dev/null
+++ b/vde2/patches/patch-src_vde__router_vder__packet.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Forward declare struct so its scope isn't limited to the func declaration.
+
+--- src/vde_router/vder_packet.h.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_router/vder_packet.h
+@@ -6,6 +6,8 @@
+ #ifndef _VDER_PACKET
+ #define _VDER_PACKET
+ 
++struct iphdr;
++
+ #define DEFAULT_TTL 64
+ uint16_t vder_ip_checksum(struct iphdr *iph);
+ void vder_packet_recv(struct vder_iface *vif, int timeout);
diff --git a/vde2/patches/patch-src_vde__switch_datasock.c b/vde2/patches/patch-src_vde__switch_datasock.c
new file mode 100644
index 0000000000..a640cb51e9
--- /dev/null
+++ b/vde2/patches/patch-src_vde__switch_datasock.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Add NetBSD.
+
+--- src/vde_switch/datasock.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_switch/datasock.c
+@@ -90,7 +90,7 @@ static int send_datasock(int fd_ctl, int
+ {
+ 	while (send(fd_data, packet, len, 0) < 0) {
+ 		int rv=errno;
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ 		if(rv == ENOBUFS) {
+ 			sched_yield();
+ 			continue;
diff --git a/vde2/patches/patch-src_vde__switch_port.c b/vde2/patches/patch-src_vde__switch_port.c
new file mode 100644
index 0000000000..2b14f4783c
--- /dev/null
+++ b/vde2/patches/patch-src_vde__switch_port.c
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Fix bad ctype calls.
+
+--- src/vde_switch/port.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_switch/port.c
+@@ -843,7 +843,7 @@ static int portsetuser(char *arg)
+ 		return ENXIO;
+ 	if ((pw=getpwnam(portuid)) != NULL)
+ 		portv[port]->user=pw->pw_uid;
+-	else if (isdigit(*portuid)) 
++	else if (isdigit((unsigned char)*portuid)) 
+ 		portv[port]->user=atoi(portuid);
+ 	else if (strcmp(portuid,"NONE")==0 || strcmp(portuid,"ANY")==0) 
+ 		portv[port]->user= -1;
+@@ -868,7 +868,7 @@ static int portsetgroup(char *arg)
+ 		return ENXIO;
+ 	if ((gr=getgrnam(portgid)) != NULL)
+ 		portv[port]->group=gr->gr_gid;
+-	else if (isdigit(*portgid)) 
++	else if (isdigit((unsigned char)*portgid)) 
+ 		portv[port]->group=atoi(portgid);
+ 	else if (strcmp(portgid,"NONE")==0 || strcmp(portgid,"ANY")==0) 
+ 		portv[port]->group= -1;
diff --git a/vde2/patches/patch-src_vde__switch_tuntap.c b/vde2/patches/patch-src_vde__switch_tuntap.c
new file mode 100644
index 0000000000..b71f188b85
--- /dev/null
+++ b/vde2/patches/patch-src_vde__switch_tuntap.c
@@ -0,0 +1,24 @@
+$NetBSD$
+
+Add NetBSD.
+
+--- src/vde_switch/tuntap.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_switch/tuntap.c
+@@ -34,7 +34,7 @@
+ #include <linux/if_tun.h>
+ #endif
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ #define TAP_PREFIX "/dev/"
+ #endif
+ 
+@@ -202,7 +202,7 @@ int open_tap(char *dev)
+ }
+ #endif
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ int open_tap(char *dev)
+ {
+ 	int fd;
diff --git a/vde2/patches/patch-src_vde__vxlan_vxlan.c b/vde2/patches/patch-src_vde__vxlan_vxlan.c
new file mode 100644
index 0000000000..e333577cdc
--- /dev/null
+++ b/vde2/patches/patch-src_vde__vxlan_vxlan.c
@@ -0,0 +1,14 @@
+$NetBSD$
+
+Required header.
+
+--- src/vde_vxlan/vxlan.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/vde_vxlan/vxlan.c
+@@ -24,6 +24,7 @@
+ 
+ #include <netinet/in.h>
+ #include <sys/un.h>
++#include <sys/socket.h>
+ 
+ #include "vxlan_hash.h"
+ #include "log.h"
diff --git a/vde2/patches/patch-src_wirefilter.c b/vde2/patches/patch-src_wirefilter.c
new file mode 100644
index 0000000000..71018c89fb
--- /dev/null
+++ b/vde2/patches/patch-src_wirefilter.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+Add NetBSD.
+
+--- src/wirefilter.c.orig	2026-08-03 10:48:09.000000000 +0000
++++ src/wirefilter.c
+@@ -39,7 +39,7 @@
+ #include <vdecommon.h>
+ #include <libvdeplug.h>
+ 
+-#if defined(VDE_DARWIN) || defined(VDE_FREEBSD)
++#if defined(VDE_DARWIN) || defined(VDE_FREEBSD) || defined(VDE_NETBSD)
+ #	if defined HAVE_SYSLIMITS_H
+ #		include <syslimits.h>
+ #	elif defined HAVE_SYS_SYSLIMITS_H


Home | Main Index | Thread Index | Old Index