UPDATE: libnfs 7.0.0

Brad Smith <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
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 <bsd.port.mk>
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 <sys/time.h> /* 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.