git: b60027b59382 - main - filesystems/openzfs-kmod: unbreak compilation on head

From: Martin Matuska <mm_at_FreeBSD.org>
Date: Wed, 04 Feb 2026 00:15:59 UTC
The branch main has been updated by mm:

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

commit b60027b5938285de047c0d1a6616db2a6b2251d7
Author:     Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2026-02-04 00:11:47 +0000
Commit:     Martin Matuska <mm@FreeBSD.org>
CommitDate: 2026-02-04 00:15:54 +0000

    filesystems/openzfs-kmod: unbreak compilation on head
    
    Unbreak build on FreeBSD 16 by adding nvpair.c patch from upstream
    
    Source: https://github.com/openzfs/zfs/pull/18154
---
 filesystems/openzfs-kmod/Makefile                  |  1 +
 .../openzfs-kmod/files/patch-nvpair_nvpair.c       | 30 ++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/filesystems/openzfs-kmod/Makefile b/filesystems/openzfs-kmod/Makefile
index 7470387de28e..9d4313e182b1 100644
--- a/filesystems/openzfs-kmod/Makefile
+++ b/filesystems/openzfs-kmod/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	openzfs
 PORTVERSION=	2.4.0
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	filesystems sysutils
 MASTER_SITES=	https://github.com/openzfs/zfs/releases/download/zfs-${PORTVERSION}/
diff --git a/filesystems/openzfs-kmod/files/patch-nvpair_nvpair.c b/filesystems/openzfs-kmod/files/patch-nvpair_nvpair.c
new file mode 100644
index 000000000000..efef98f1a904
--- /dev/null
+++ b/filesystems/openzfs-kmod/files/patch-nvpair_nvpair.c
@@ -0,0 +1,30 @@
+--- nvpair/nvpair.c.orig	2025-12-18 18:01:01 UTC
++++ nvpair/nvpair.c
+@@ -3246,7 +3246,8 @@ nvs_xdr_nvl_fini(nvstream_t *nvs)
+  * xdrproc_t-compatible callbacks for xdr_array()
+  */
+ 
+-#if defined(_KERNEL) && defined(__linux__) /* Linux kernel */
++#if (defined(__FreeBSD_version) && __FreeBSD_version >= 1600010) || \
++    defined(_KERNEL) && defined(__linux__) /* Linux kernel */
+ 
+ #define	NVS_BUILD_XDRPROC_T(type)		\
+ static bool_t					\
+@@ -3255,7 +3256,7 @@ nvs_xdr_nvp_##type(XDR *xdrs, void *ptr)	\
+ 	return (xdr_##type(xdrs, ptr));		\
+ }
+ 
+-#elif !defined(_KERNEL) && defined(XDR_CONTROL) /* tirpc */
++#elif !defined(_KERNEL) && defined(XDR_CONTROL) /* tirpc, FreeBSD < 16 */
+ 
+ #define	NVS_BUILD_XDRPROC_T(type)		\
+ static bool_t					\
+@@ -3271,7 +3272,7 @@ nvs_xdr_nvp_##type(XDR *xdrs, ...)		\
+ 	return (xdr_##type(xdrs, ptr));		\
+ }
+ 
+-#else /* FreeBSD, sunrpc */
++#else /* FreeBSD kernel < 16, sunrpc */
+ 
+ #define	NVS_BUILD_XDRPROC_T(type)		\
+ static bool_t					\