Re: UPDATE: libnfs 7.0.0

Stuart Henderson <[email protected]>
Newsgroups gmane.os.openbsd.ports
Message-ID <[email protected]>
On 2026/08/20 12:48, Kurt Miller wrote:
> On Aug 19, 2026, at 7:11 PM, Kirill A. Korinsky <[email protected]> wrote:
> > 
> > On Wed, 19 Aug 2026 22:11:04 +0200,
> > Kurt Miller <[email protected]> wrote:
> >> 
> >> On Aug 8, 2026, at 9:47 PM, Brad Smith <[email protected]> wrote:
> >>> 
> >>> Here is an update to libnfs 7.0.0.
> >>> 
> >>> All depends build Ok.
> >>> 
> >> 
> >> Working on fio update on sparc64 and I noticed the libnfs.so <http://libnfs.so/> symbol
> >> _null_auth conflicts with _null_auth in libc.so <http://libc.so/>:
> >> 
> >> fio:/usr/lib/libc.so.103.0: /usr/local/lib/libnfs.so.3.0 : WARNING: symbol(_null_auth) size mismatch, relink your program
> >> 
> >> oracle$ objdump -x /usr/lib/libc.so.103.0 | grep _null_auth                                        
> >> 00000000003f61e0 g     O .bss 0000000000000018 _null_auth
> >> oracle$ objdump -x /usr/local/lib/libnfs.so.3.0 | grep _null_auth
> >> 0000000000368070 g     O .bss 0000000000000020 _null_auth
> >> 
> >> I’m not sure what the fix for this should be.
> >> 
> >> -Kurt
> >> 
> > 
> > FWIW I saw almost the same error in qemu at amd64 hosts, but I haven't dig
> > into it.
> 
> Thanks for confirming.

Can we just do this?

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/libnfs/Makefile,v
diff -u -p -r1.12 Makefile
--- Makefile	10 Aug 2026 10:39:02 -0000	1.12
+++ Makefile	20 Aug 2026 13:08:11 -0000
@@ -4,6 +4,7 @@ DISTNAME=	libnfs-7.0.0pl20260708
 GH_ACCOUNT=	sahlberg
 GH_PROJECT=	libnfs
 GH_COMMIT=	8d4c2f6057acb6a01a316fbb7eea1c05a06e34c6
+REVISION=	0
 CATEGORIES=	devel net
 
 SHARED_LIBS=	nfs	3.0
Index: patches/patch-include_nfsc_libnfs-zdr_h
===================================================================
RCS file: patches/patch-include_nfsc_libnfs-zdr_h
diff -N patches/patch-include_nfsc_libnfs-zdr_h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-include_nfsc_libnfs-zdr_h	20 Aug 2026 13:08:11 -0000
@@ -0,0 +1,12 @@
+Index: include/nfsc/libnfs-zdr.h
+--- include/nfsc/libnfs-zdr.h.orig
++++ include/nfsc/libnfs-zdr.h
+@@ -127,7 +127,7 @@ struct opaque_verf {
+         /* GSS */
+         struct gss_ctx_id_struct *gss_context;
+ };
+-extern struct opaque_verf _null_auth;
++extern struct opaque_verf _LIBNFS_null_auth;
+ 
+ struct AUTH {
+ 	struct opaque_cred	ah_cred;
Index: patches/patch-lib_libnfs-zdr_c
===================================================================
RCS file: patches/patch-lib_libnfs-zdr_c
diff -N patches/patch-lib_libnfs-zdr_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_libnfs-zdr_c	20 Aug 2026 13:08:11 -0000
@@ -0,0 +1,12 @@
+Index: lib/libnfs-zdr.c
+--- lib/libnfs-zdr.c.orig
++++ lib/libnfs-zdr.c
+@@ -75,7 +75,7 @@ struct zdr_mem {
+        char buf[1];
+ };
+ 
+-struct opaque_verf _null_auth;
++struct opaque_verf _LIBNFS_null_auth;
+ 
+ bool_t libnfs_zdr_setpos(ZDR *zdrs, uint32_t pos)
+ {
Index: patches/patch-lib_pdu_c
===================================================================
RCS file: patches/patch-lib_pdu_c
diff -N patches/patch-lib_pdu_c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ patches/patch-lib_pdu_c	20 Aug 2026 13:08:11 -0000
@@ -0,0 +1,30 @@
+Index: lib/pdu.c
+--- lib/pdu.c.orig
++++ lib/pdu.c
+@@ -1010,7 +1010,7 @@ static int rpc_process_reply(struct rpc_context *rpc, 
+ 	INC_STATS(rpc, num_resp_rcvd);
+ 
+ 	memset(&msg, 0, sizeof(struct rpc_msg));
+-	msg.body.rbody.reply.areply.verf = _null_auth;
++	msg.body.rbody.reply.areply.verf = _LIBNFS_null_auth;
+ 	if (pdu->zdr_decode_bufsize > 0) {
+ 		pdu->zdr_decode_buf = (char *)pdu + PAD_TO_8_BYTES(sizeof(struct rpc_pdu));
+ 	}
+@@ -1288,7 +1288,7 @@ static int rpc_send_error_reply(struct rpc_context *rp
+         res.body.rbody.stat                          = MSG_ACCEPTED;
+         res.body.rbody.reply.areply.reply_data.mismatch_info.low  = min_vers;
+         res.body.rbody.reply.areply.reply_data.mismatch_info.high = max_vers;
+-	res.body.rbody.reply.areply.verf             = _null_auth;
++	res.body.rbody.reply.areply.verf             = _LIBNFS_null_auth;
+ 	res.body.rbody.reply.areply.stat             = err;
+ 
+         if (rpc->is_udp) {
+@@ -1321,7 +1321,7 @@ int rpc_send_reply(struct rpc_context *rpc,
+ 	res.xid                                      = call->xid;
+         res.direction                                = REPLY;
+         res.body.rbody.stat                          = MSG_ACCEPTED;
+-	res.body.rbody.reply.areply.verf             = _null_auth;
++	res.body.rbody.reply.areply.verf             = _LIBNFS_null_auth;
+ 	res.body.rbody.reply.areply.stat             = SUCCESS;
+ 
+         res.body.rbody.reply.areply.reply_data.results.where = reply;

> Brad, when you look into _null_auth can you double check pkg_config 
> for libnfs as well please? I’m seeing this:
> 
> m2$ pkg-config --modversion libnfs                                        
> 17.0.0
> 
> Should that be reporting 7.0.0?

Upstream have set it up to report 17.0.0, normally --modversion would
report the software version number rather than (upstream's wanted) shlib
version, but I think patching to chsnge this would be likely to result
in more problems. IIUC they'd need to bump the release version to above
17.0.0 to fix it at this point.
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.