From: Brad Smith Subject: UPDATE: libnfs 7.0.0 To: ports@openbsd.org Date: Sat, 8 Aug 2026 21:47:30 -0400 Here is an update to libnfs 7.0.0. All depends build Ok. * Sat Aug 08 2026 : Version 7.0.0 - SONAME bumped to 17. struct rpc_stats grew, so this release is not ABI compatible with 6.x and dependent packages must be rebuilt - Security: fix a remotely triggerable crash from a forged AUTH_GSS reply verifier - Security: bound the ZDR array element count and string/opaque padding so a short reply cannot drive a huge allocation or read outside the receive buffer - Security: implement RPC record fragment reassembly - Security: fix several heap over-reads where a length delimited XDR string was used as a NUL terminated C string - Security: fix a one byte overflow in nfs_readlink() - Security: fix an infinite readdir loop against a server that never advances the cookie - Fix a PDU leak of ~14KB on every mount - New API: [p]readv[_async], nfs_readv, rpc_set_timeout is now public - New "readonly" URL argument, and mountport support in the URL - NFSv4: read rdev/nfs_dev, honour the server's readmax/writemax, and fix O_EXCL handling on create - RPC: high/low priority send queue, eventfd based service thread wakeups, PDU telemetry, and a 100MB maximum transfer size - TLS: fail mtls when credentials are unavailable rather than silently downgrading, and support kernels without TLS_1_3_VERSION - New optional servers/ directory containing rpcbind, rpc.statd and an NFSv3 server skeleton, all under the MIT license - portmapper v4 support, including GETADDRLIST - Many portability fixes for Windows/MSVC, macOS, PS2, arm32 and riscv64, and the cmake build now builds the examples * Sat Dec 14 2024 : Version 6.0.2 - Fix compile issue on 32 bit platforms - Fix windows build * Fri Dec 13 2024 : Version 6.0.1 - Fix compile bug on MacOS - Add autotools support to enable tls * Wed Dec 11 2024 : Version 6.0.0 - KRB5/i/p support - TLS support - READ3/4 Zero-Copy - New API that breaks some signatures. Check LIBNFS_API_V2 * Sun Feb 11 2024 : Version 5.0.3 - drop *BSD support from github workflows - workflow: indicate that the linux workflow also runs the tests - Add workflow to build PS2 - Add workflow running make test - ps2 bonus: Remove old implementations - ps2: Fix linkage with a missing file - Fix ps2 warnings and remove read macros - update INSTALL build with cmake and debugging enable - Update waitpdu_len when a pdu times out. - ci: Build examples and run tests on Linux - Fix building examples/nfsclient-raw.c - Allow setting a limit on the number of commands in-flight. - Always close the socket. - Handle small reads for record marker field. - Reset state on reconnect. - Check return value from adjust_inbuf. - README: Document that new development has shifted to libnfs-next-gen branch - fix compiler warning - Patch to support NLM Share - rpc: re-add fragment handling when reading from socket. - change read_from_socket to use a state machine - Write multiple pdus at once. - Added NFS4.1 EXCHANGE_ID and BIND_CONN_TO_SESSION - Added poll_timeout parameter - Completed NFS 4.1 defintion of open_claim4 - NFS3: we do not need to provide an alloc-hint to write3 - Fix deprecation warnings on modern macOS - Restore Cygwin CI (official GH action from Cygwin maintainers). - Change Windows writev & readv polyfills to static inline. - Fix integer size for readdirs dircount/maxcount - Add OpenBSD back to the workflow - Add windows workflow and add missing readv/writev replacements to win32 - Remove BSD from the github workflows. - Remove CYGWIN github workflow. The cygwin action is abandonware - Modify LD_PRELOAD toy doc - Add options to set dircount/maxcount for readdir() - compile fix for mac - write3: make sure we do not add too many iovectors - Change WRITE3 to become zero-copy usinf iovectors for the data. - Switch writing PDUs to the socket use iovectors. - Add CodeQL workflow for GitHub code scanning - github: switch openbsd to 7.0 and try again - github: switch OpenBSD workflow to use 7.2 instead of 6.9 - multithreading.c: do not wake up immediately if there are no events to process - Reduced memory allocations. - Expose further configuration options - tests: disable test_8000 for now - rpm: fix building RPMs - rpc: fix use after free on init_context failure - tests: fix failure in 0201 - rpc: only scan for tiemout out RPCs every second instead of every I/O - rpc: make it possible to tweak the number of lists we hash to for waitpdu - libnfs-sync: fail all pdus before returning error from wait_for_nfs_reply - cmake: update utils to be installed - socket: remove debugging printf - Deduplicate paths in CMakeLists.txt. - Add -no-undefined linker flag for shared library - Link shared library with ws2_32 Index: Makefile =================================================================== RCS file: /cvs/ports/devel/libnfs/Makefile,v retrieving revision 1.11 diff -u -p -u -p -r1.11 Makefile --- Makefile 4 Mar 2026 09:46:42 -0000 1.11 +++ Makefile 8 Aug 2026 23:40:43 -0000 @@ -1,12 +1,12 @@ COMMENT= client library for accessing NFS +DISTNAME= libnfs-7.0.0pl20260708 GH_ACCOUNT= sahlberg GH_PROJECT= libnfs -GH_TAGNAME= libnfs-5.0.2 -PKGNAME= ${GH_TAGNAME} +GH_COMMIT= 8d4c2f6057acb6a01a316fbb7eea1c05a06e34c6 CATEGORIES= devel net -SHARED_LIBS= nfs 2.2 +SHARED_LIBS= nfs 3.0 HOMEPAGE= https://github.com/sahlberg/libnfs @@ -17,9 +17,11 @@ PERMIT_PACKAGE= Yes WANTLIB= c -AUTOCONF_VERSION= 2.69 -AUTOMAKE_VERSION= 1.16 +MODULES= devel/cmake -CONFIGURE_STYLE= autoreconf +CONFIGURE_ARGS+=-DENABLE_UTILS=ON \ + -DINSTALL_MAN_DIR="${PREFIX}/man" + +NO_TEST= Yes .include Index: distinfo =================================================================== RCS file: /cvs/ports/devel/libnfs/distinfo,v retrieving revision 1.6 diff -u -p -u -p -r1.6 distinfo --- distinfo 4 Mar 2026 09:46:42 -0000 1.6 +++ distinfo 8 Aug 2026 23:40:43 -0000 @@ -1,2 +1,2 @@ -SHA256 (libnfs-libnfs-5.0.2.tar.gz) = Y35WZDsZ2p+6mPBoR3iMTa0wi3IxVqZHSAQQNdzfm9M= -SIZE (libnfs-libnfs-5.0.2.tar.gz) = 281154 +SHA256 (libnfs-7.0.0pl20260708-8d4c2f60.tar.gz) = ZUqmlJD4r0SdLOryavOtWOiQphUVgdlGxwQxk8Mil3A= +SIZE (libnfs-7.0.0pl20260708-8d4c2f60.tar.gz) = 389218 Index: patches/patch-include_nfsc_libnfs_h =================================================================== RCS file: patches/patch-include_nfsc_libnfs_h diff -N patches/patch-include_nfsc_libnfs_h --- patches/patch-include_nfsc_libnfs_h 11 Mar 2022 18:50:37 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,13 +0,0 @@ -Index: include/nfsc/libnfs.h ---- include/nfsc/libnfs.h.orig -+++ include/nfsc/libnfs.h -@@ -38,6 +38,9 @@ - #ifdef __cplusplus - extern "C" { - #endif -+#if defined(__OpenBSD__) -+#include /* gettimeofday */ -+#endif - - #define LIBNFS_FEATURE_READAHEAD - #define LIBNFS_FEATURE_PAGECACHE Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/devel/libnfs/pkg/PLIST,v retrieving revision 1.4 diff -u -p -u -p -r1.4 PLIST --- pkg/PLIST 11 Mar 2022 18:50:37 -0000 1.4 +++ pkg/PLIST 8 Aug 2026 23:40:43 -0000 @@ -13,8 +13,12 @@ include/nfsc/libnfs-raw-rquota.h include/nfsc/libnfs-raw.h include/nfsc/libnfs-zdr.h include/nfsc/libnfs.h -@static-lib lib/libnfs.a -lib/libnfs.la +lib/cmake/ +lib/cmake/libnfs/ +lib/cmake/libnfs/FindNFS.cmake +lib/cmake/libnfs/libnfs-config${MODCMAKE_BUILD_SUFFIX} +lib/cmake/libnfs/libnfs-config-version.cmake +lib/cmake/libnfs/libnfs-config.cmake @lib lib/libnfs.so.${LIBnfs_VERSION} lib/pkgconfig/libnfs.pc @man man/man1/nfs-cat.1