aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Matuska <mm@FreeBSD.org>2026-02-04 00:11:47 +0000
committerMartin Matuska <mm@FreeBSD.org>2026-02-04 00:15:54 +0000
commitb60027b5938285de047c0d1a6616db2a6b2251d7 (patch)
treeeb3517a4fe87fa69affcf401feeff8126a303ac7
parent15ef535198329db19aa663db5e177f14270adb42 (diff)
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
-rw-r--r--filesystems/openzfs-kmod/Makefile1
-rw-r--r--filesystems/openzfs-kmod/files/patch-nvpair_nvpair.c30
2 files changed, 31 insertions, 0 deletions
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 \