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