pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net/libnfs



Module Name:    pkgsrc
Committed By:   vins
Date:           Fri May  1 19:43:30 UTC 2026

Added Files:
        pkgsrc/net/libnfs: DESCR Makefile PLIST buildlink3.mk distinfo
            options.mk
        pkgsrc/net/libnfs/patches: patch-CMakeLists.txt
            patch-cmake_ConfigureChecks.cmake patch-cmake_config.h.cmake
            patch-include_libnfs-multithreading.h patch-lib_libnfs-sync.c
            patch-lib_libnfs.c patch-lib_multithreading.c patch-lib_nfs__v4.c
            patch-lib_socket.c

Log Message:
net/libnfs: Import libnfs-6.0.2

Packaged in wip by PHO, with some modifications by vins.

LIBNFS is a client library for accessing NFS shares over a network.

LIBNFS offers three different APIs, for different use:
1, RAW: A fully async low level RPC library for NFS protocols
2, NFS ASYNC: A fully asynchronous library for high level vfs functions
3, NFS SYNC: A synchronous library for high level vfs functions


To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/net/libnfs/DESCR pkgsrc/net/libnfs/Makefile \
    pkgsrc/net/libnfs/PLIST pkgsrc/net/libnfs/buildlink3.mk \
    pkgsrc/net/libnfs/distinfo pkgsrc/net/libnfs/options.mk
cvs rdiff -u -r0 -r1.1 pkgsrc/net/libnfs/patches/patch-CMakeLists.txt \
    pkgsrc/net/libnfs/patches/patch-cmake_ConfigureChecks.cmake \
    pkgsrc/net/libnfs/patches/patch-cmake_config.h.cmake \
    pkgsrc/net/libnfs/patches/patch-include_libnfs-multithreading.h \
    pkgsrc/net/libnfs/patches/patch-lib_libnfs-sync.c \
    pkgsrc/net/libnfs/patches/patch-lib_libnfs.c \
    pkgsrc/net/libnfs/patches/patch-lib_multithreading.c \
    pkgsrc/net/libnfs/patches/patch-lib_nfs__v4.c \
    pkgsrc/net/libnfs/patches/patch-lib_socket.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Added files:

Index: pkgsrc/net/libnfs/DESCR
diff -u /dev/null pkgsrc/net/libnfs/DESCR:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/DESCR     Fri May  1 19:43:29 2026
@@ -0,0 +1,6 @@
+LIBNFS is a client library for accessing NFS shares over a network.
+
+LIBNFS offers three different APIs, for different use:
+1, RAW: A fully async low level RPC library for NFS protocols
+2, NFS ASYNC: A fully asynchronous library for high level vfs functions
+3, NFS SYNC: A synchronous library for high level vfs functions
Index: pkgsrc/net/libnfs/Makefile
diff -u /dev/null pkgsrc/net/libnfs/Makefile:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/Makefile  Fri May  1 19:43:30 2026
@@ -0,0 +1,26 @@
+# $NetBSD: Makefile,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+DISTNAME=      libnfs-6.0.2
+CATEGORIES=    net filesystems
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=sahlberg/}
+GITHUB_TAG=    ${GITHUB_PROJECT}-${PKGVERSION_NOREV}
+
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=      https://github.com/sahlberg/libnfs
+COMMENT=       NFS client library
+# LGPL applies to the library itself, while GPL applies to the utilities.
+# BSD applies to other misc files.
+LICENSE=       gnu-lgpl-v2.1 AND gnu-gpl-v3 AND 2-clause-bsd
+
+PKGCONFIG_OVERRIDE=    cmake/libnfs.pc.cmake
+
+CMAKE_CONFIGURE_ARGS+= -DCMAKE_BUILD_TYPE=Release \
+                       -DCMAKE_INSTALL_PREFIX='${PREFIX}' \
+                       -DINSTALL_MAN_DIR:PATH='${PREFIX}/${PKGMANDIR}' \
+                       -DENABLE_UTILS:BOOL=ON \
+                       -DENABLE_DOCUMENTATION:BOOL=ON
+
+.include "options.mk"
+
+.include "../../devel/cmake/build.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/net/libnfs/PLIST
diff -u /dev/null pkgsrc/net/libnfs/PLIST:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/PLIST     Fri May  1 19:43:30 2026
@@ -0,0 +1,25 @@
+@comment $NetBSD: PLIST,v 1.1 2026/05/01 19:43:30 vins Exp $
+bin/nfs-cat
+bin/nfs-cp
+bin/nfs-ls
+bin/nfs-stat
+include/nfsc/libnfs-raw-mount.h
+include/nfsc/libnfs-raw-nfs.h
+include/nfsc/libnfs-raw-nfs4.h
+include/nfsc/libnfs-raw-nlm.h
+include/nfsc/libnfs-raw-nsm.h
+include/nfsc/libnfs-raw-portmap.h
+include/nfsc/libnfs-raw-rquota.h
+include/nfsc/libnfs-raw.h
+include/nfsc/libnfs-zdr.h
+include/nfsc/libnfs.h
+lib/cmake/libnfs/FindNFS.cmake
+lib/cmake/libnfs/libnfs-config-release.cmake
+lib/cmake/libnfs/libnfs-config-version.cmake
+lib/cmake/libnfs/libnfs-config.cmake
+lib/libnfs.so
+lib/libnfs.so.16.2.0
+lib/pkgconfig/libnfs.pc
+man/man1/nfs-cat.1
+man/man1/nfs-cp.1
+man/man1/nfs-ls.1
Index: pkgsrc/net/libnfs/buildlink3.mk
diff -u /dev/null pkgsrc/net/libnfs/buildlink3.mk:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/buildlink3.mk     Fri May  1 19:43:30 2026
@@ -0,0 +1,12 @@
+# $NetBSD: buildlink3.mk,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+BUILDLINK_TREE+=       libnfs
+
+.if !defined(LIBNFS_BUILDLINK3_MK)
+LIBNFS_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.libnfs+= libnfs>=6.0.2
+BUILDLINK_PKGSRCDIR.libnfs?=   ../../net/libnfs
+.endif # LIBNFS_BUILDLINK3_MK
+
+BUILDLINK_TREE+=       -libnfs
Index: pkgsrc/net/libnfs/distinfo
diff -u /dev/null pkgsrc/net/libnfs/distinfo:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/distinfo  Fri May  1 19:43:30 2026
@@ -0,0 +1,14 @@
+$NetBSD: distinfo,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+BLAKE2s (libnfs-6.0.2.tar.gz) = 0932b7a35afda2e6d819113448bf4f0355e516f06111325f2f0fd09389ec7e2c
+SHA512 (libnfs-6.0.2.tar.gz) = 539790ab98aac7b2f25755b745d1f5e016518f1adb3748b8c58df187048bc31e091915d59e6359bb95c49dd986361cbbf2536edcda02598b0fac236762b61a46
+Size (libnfs-6.0.2.tar.gz) = 338988 bytes
+SHA1 (patch-CMakeLists.txt) = b997d2e9cab237bca6ca8f283f7573ae43e51158
+SHA1 (patch-cmake_ConfigureChecks.cmake) = 45d3185755b5c37b60a31695e8bdf0d01793776e
+SHA1 (patch-cmake_config.h.cmake) = c3e1fd72dc1c3ec21666128961ef25e266c36b23
+SHA1 (patch-include_libnfs-multithreading.h) = b83c7e448823f3943174ecc290e7f10a0eac51f8
+SHA1 (patch-lib_libnfs-sync.c) = e038e91cfbe2d2392452b0c81e7284ed77cfdff6
+SHA1 (patch-lib_libnfs.c) = de2e55d0d29762e7e8cb800e2337a2db2b88ffb5
+SHA1 (patch-lib_multithreading.c) = 1cd8e9ff04c269675684d4dbd59dc347133d7442
+SHA1 (patch-lib_nfs__v4.c) = 2739ca9d59b05a8d00762fe2a847d5a4fba2e70a
+SHA1 (patch-lib_socket.c) = 7aa200f0ef40e713616fe097285a51a86294ec48
Index: pkgsrc/net/libnfs/options.mk
diff -u /dev/null pkgsrc/net/libnfs/options.mk:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/options.mk        Fri May  1 19:43:30 2026
@@ -0,0 +1,51 @@
+# $NetBSD: options.mk,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+PKG_OPTIONS_VAR=       PKG_OPTIONS.libnfs
+PKG_SUPPORTED_OPTIONS= gnutls gssapi threads
+PKG_SUGGESTED_OPTIONS= # empty
+
+CHECK_BUILTIN.pthread:= yes
+.include "../../mk/pthread.builtin.mk"
+CHECK_BUILTIN.pthread:= no
+
+.if ${USE_BUILTIN.pthread:tl} == yes
+PKG_SUGGESTED_OPTIONS+=        threads
+.endif
+
+# Requires Linux kTLS
+.if exists(/usr/include/linux/tls.h)
+PKG_SUGGESTED_OPTIONS+=        gnutls
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+###
+### KRB5 support
+###
+.if !empty(PKG_OPTIONS:Mgssapi)
+KRB5_ACCEPTED=         mit-krb5
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_GSSAPI=ON
+.  include "../../mk/krb5.buildlink3.mk"
+.else
+CONFIGURE_ARGS+=       -DENABLE_GSSAPI=OFF
+.endif
+
+##
+## Multithreading support
+##
+.if !empty(PKG_OPTIONS:Mthreads)
+.  include "../../mk/pthread.buildlink3.mk"
+# otherwise we get undefined refderences to semaphores
+PTHREAD_AUTO_VARS=      yes
+PTHREAD_OPTS+=          require
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_MULTITHREADING=ON
+.else
+CMAKE_CONFIGURE_ARGS+=  -DENABLE_MULTITHREADING=OFF
+.endif
+
+###
+### GnuTLS support
+###
+.if !empty(PKG_OPTIONS:Mgnutls)
+.  include "../../security/gnutls/buildlink3.mk"
+.endif

Index: pkgsrc/net/libnfs/patches/patch-CMakeLists.txt
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-CMakeLists.txt:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-CMakeLists.txt      Fri May  1 19:43:30 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-CMakeLists.txt,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: make GSSAPI support platform independent.
+
+--- CMakeLists.txt.orig        2024-12-14 08:03:11.000000000 +0000
++++ CMakeLists.txt
+@@ -35,7 +35,7 @@ endif()
+ 
+ include(cmake/Macros.cmake)
+ 
+-if(IOS)
++if(ENABLE_GSSAPI)
+     find_package(GSSAPI)
+ 
+     if(GSSAPI_FOUND)
Index: pkgsrc/net/libnfs/patches/patch-cmake_ConfigureChecks.cmake
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-cmake_ConfigureChecks.cmake:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-cmake_ConfigureChecks.cmake Fri May  1 19:43:30 2026
@@ -0,0 +1,19 @@
+$NetBSD: patch-cmake_ConfigureChecks.cmake,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Directly check for getprotobyname(3) instead of
+guessing with OS-specific CPP macros.
+
+--- cmake/ConfigureChecks.cmake.orig   2024-12-14 08:03:11.000000000 +0000
++++ cmake/ConfigureChecks.cmake
+@@ -41,6 +41,11 @@ check_struct_has_member("struct sockaddr
+ check_struct_has_member("struct sockaddr_storage" ss_family sys/socket.h HAVE_SOCKADDR_STORAGE)
+ check_struct_has_member("struct stat" st_mtim.tv_nsec sys/stat.h HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC)
+ 
++include(CheckSymbolExists)
++if(HAVE_NETDB_H)
++  check_symbol_exists(getprotobyname "netdb.h" HAVE_GETPROTOBYNAME)
++endif()
++
+ include(CheckCSourceCompiles)
+ check_c_source_compiles("#include <net/if.h>
+                          int main(void)
Index: pkgsrc/net/libnfs/patches/patch-cmake_config.h.cmake
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-cmake_config.h.cmake:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-cmake_config.h.cmake        Fri May  1 19:43:30 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-cmake_config.h.cmake,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Set definition for getprotobyname() check.
+
+--- cmake/config.h.cmake.orig  2024-12-14 08:03:11.000000000 +0000
++++ cmake/config.h.cmake
+@@ -33,6 +33,9 @@
+ /* Define to 1 if you have the <netdb.h> header file. */
+ #cmakedefine HAVE_NETDB_H
+ 
++/* Define to 1 if <netdb.h> has the getprotobyname() function. */
++#cmakedefine HAVE_GETPROTOBYNAME
++
+ /* Define to 1 if you have the <netinet/in.h> header file. */
+ #cmakedefine HAVE_NETINET_IN_H
+ 
Index: pkgsrc/net/libnfs/patches/patch-include_libnfs-multithreading.h
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-include_libnfs-multithreading.h:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-include_libnfs-multithreading.h     Fri May  1 19:43:30 2026
@@ -0,0 +1,29 @@
+$NetBSD: patch-include_libnfs-multithreading.h,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Use of pthread_threadid_np(2) or gettid(2) is never a
+good idea, especially when pthread_equal(3) suffices.
+
+--- include/libnfs-multithreading.h.orig       2025-11-14 13:32:34.996331119 +0000
++++ include/libnfs-multithreading.h
+@@ -41,11 +41,7 @@ typedef dispatch_semaphore_t libnfs_sem_
+ #include <semaphore.h>
+ typedef sem_t libnfs_sem_t;
+ #endif
+-#ifdef HAVE_PTHREAD_THREADID_NP
+-typedef uint64_t nfs_tid_t;
+-#else
+-typedef pid_t nfs_tid_t;
+-#endif
++typedef libnfs_thread_t nfs_tid_t;
+ #endif /* HAVE_PTHREAD */
+ 
+ #ifdef WIN32
+@@ -56,6 +52,8 @@ typedef DWORD nfs_tid_t;
+ #endif
+ 
+ nfs_tid_t nfs_mt_get_tid(void);
++int nfs_mt_equal(nfs_tid_t t1, nfs_tid_t t2);
++
+ int nfs_mt_mutex_init(libnfs_mutex_t *mutex);
+ int nfs_mt_mutex_destroy(libnfs_mutex_t *mutex);
+ int nfs_mt_mutex_lock(libnfs_mutex_t *mutex);
Index: pkgsrc/net/libnfs/patches/patch-lib_libnfs-sync.c
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-lib_libnfs-sync.c:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-lib_libnfs-sync.c   Fri May  1 19:43:30 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-lib_libnfs-sync.c,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Use of pthread_threadid_np(2) or gettid(2) is never a
+good idea, especially when pthread_equal(3) suffices.
+
+--- lib/libnfs-sync.c.orig     2025-11-14 13:37:44.606850244 +0000
++++ lib/libnfs-sync.c
+@@ -133,7 +133,7 @@ nfs_init_cb_data(struct nfs_context **nf
+                 struct nfs_thread_context *ntc;
+ 
+                 for(ntc = (*nfs)->nfsi->thread_ctx; ntc; ntc = ntc->next) {
+-                        if (nfs_mt_get_tid() == ntc->tid) {
++                        if (nfs_mt_equal(nfs_mt_get_tid(), ntc->tid)) {
+                                 break;
+                         }
+                 }
Index: pkgsrc/net/libnfs/patches/patch-lib_libnfs.c
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-lib_libnfs.c:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-lib_libnfs.c        Fri May  1 19:43:30 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-lib_libnfs.c,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Use of pthread_threadid_np(2) or gettid(2) is never a
+good idea, especially when pthread_equal(3) suffices.
+
+--- lib/libnfs.c.orig  2025-11-14 13:38:41.562942211 +0000
++++ lib/libnfs.c
+@@ -229,7 +229,7 @@ nfs_get_error(struct nfs_context *nfs)
+                 struct nfs_thread_context *ntc;
+ 
+                 for(ntc = nfs->nfsi->thread_ctx; ntc; ntc = ntc->next) {
+-                        if (nfs_mt_get_tid() == ntc->tid) {
++                        if (nfs_mt_equal(nfs_mt_get_tid(), ntc->tid)) {
+                                 nfs = &ntc->nfs;
+                                 break;
+                         }
Index: pkgsrc/net/libnfs/patches/patch-lib_multithreading.c
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-lib_multithreading.c:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-lib_multithreading.c        Fri May  1 19:43:30 2026
@@ -0,0 +1,41 @@
+$NetBSD: patch-lib_multithreading.c,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Use of pthread_threadid_np(2) or gettid(2) is never a
+good idea, especially when pthread_equal(3) suffices.
+
+--- lib/multithreading.c.orig  2025-11-14 13:33:44.250912762 +0000
++++ lib/multithreading.c
+@@ -60,16 +60,12 @@
+ 
+ nfs_tid_t nfs_mt_get_tid(void)
+ {
+-#ifdef HAVE_PTHREAD_THREADID_NP
+-        nfs_tid_t tid;
+-        pthread_threadid_np(NULL, &tid);
+-        return tid;
+-#elif defined(SYS_gettid)
+-        pid_t tid = syscall(SYS_gettid);
+-        return tid;
+-#else
+-#error "SYS_gettid unavailable on this system"
+-#endif
++        return pthread_self();
++}
++
++int nfs_mt_equal(nfs_tid_t t1, nfs_tid_t t2)
++{
++        return pthread_equal(t1, t2);
+ }
+ 
+ static void *nfs_mt_service_thread(void *arg)
+@@ -231,6 +227,10 @@ nfs_tid_t nfs_mt_get_tid(void)
+ {
+     return GetCurrentThreadId();
+ }
++int nfs_mt_equal(nfs_tid_t t1, nfs_tid_t t2)
++{
++    return t1 == t2;
++}
+ static void* nfs_mt_service_thread(void* arg)
+ {
+     struct nfs_context* nfs = (struct nfs_context*)arg;
Index: pkgsrc/net/libnfs/patches/patch-lib_nfs__v4.c
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-lib_nfs__v4.c:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-lib_nfs__v4.c       Fri May  1 19:43:30 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-lib_nfs__v4.c,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Fix misuse of ctype(3) functions: char values must always be cast to
+unsigned char.
+
+--- lib/nfs_v4.c.orig  2025-11-14 14:16:21.037945741 +0000
++++ lib/nfs_v4.c
+@@ -433,7 +433,7 @@ nfs_get_ugid(struct nfs_context *nfs, co
+         const char *name = buf;
+ 
+         while (slen) {
+-                if (isdigit(*buf)) {
++                if (isdigit((unsigned char)*buf)) {
+                         ugid *= 10;
+                         ugid += *buf - '0';
+                 } else {
Index: pkgsrc/net/libnfs/patches/patch-lib_socket.c
diff -u /dev/null pkgsrc/net/libnfs/patches/patch-lib_socket.c:1.1
--- /dev/null   Fri May  1 19:43:30 2026
+++ pkgsrc/net/libnfs/patches/patch-lib_socket.c        Fri May  1 19:43:30 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-lib_socket.c,v 1.1 2026/05/01 19:43:30 vins Exp $
+
+Improve portability: Directly check for getprotobyname(3) instead of
+guessing with OS-specific CPP macros.
+
+--- lib/socket.c.orig  2025-11-14 14:14:24.604057983 +0000
++++ lib/socket.c
+@@ -170,7 +170,7 @@ set_tcp_sockopt(int sockfd, int optname,
+ {
+       int level;
+ 
+-      #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun) || (defined(__APPLE__) && defined(__MACH__))
++      #if defined(HAVE_GETPROTOBYNAME)
+       struct protoent *buf;
+ 
+       if ((buf = getprotobyname("tcp")) != NULL)



Home | Main Index | Thread Index | Old Index