Name: libnfs Summary: NFS client library Vendor: Ronnie Sahlberg Packager: ronniesahlberg@gmail.com Version: @VERSION@ Release: 1 Epoch: 0 License: GNU LGPL version 2.1 Group: System Environment/Libraries URL: http://www.github.com/sahlberg/libnfs Source: libnfs-%{version}.tar.gz Provides: lib = %{version} Prefix: /usr BuildRoot: %{_tmppath}/%{name}-%{version}-root %description LibNFS is a NFS client library ####################################################################### %prep %setup -q # setup the init script and sysconfig file %setup -T -D -n libnfs-%{version} -q %build ## check for ccache if ccache -h >/dev/null 2>&1 ; then CC="ccache gcc" else CC="gcc" fi export CC ## always run autogen.sh aclocal autoheader autoconf libtoolize -c -f -i automake --add-missing CFLAGS="$RPM_OPT_FLAGS $EXTRA -O2 -g -D_GNU_SOURCE" %configure %install # Clean up in case there is trash left from a previous build rm -rf $RPM_BUILD_ROOT # Create the target build directory hierarchy make DESTDIR=$RPM_BUILD_ROOT install # Remove "*.old" files find $RPM_BUILD_ROOT -name "*.old" -exec rm -f {} \; %clean rm -rf $RPM_BUILD_ROOT ####################################################################### ## Files section ## ####################################################################### %files %defattr(-,root,root) %{_libdir}/libnfs.so* %package devel Summary: Development libraries for LibNFS Group: Development %description devel development libraries for LibNFS %files devel %defattr(-,root,root) %{_includedir}/nfsc/libnfs.h %{_includedir}/nfsc/libnfs-zdr.h %{_includedir}/nfsc/libnfs-raw.h %{_includedir}/nfsc/libnfs-raw-mount.h %{_includedir}/nfsc/libnfs-raw-nfs.h %{_includedir}/nfsc/libnfs-raw-nfs4.h %{_includedir}/nfsc/libnfs-raw-portmap.h %{_includedir}/nfsc/libnfs-raw-rquota.h %{_includedir}/nfsc/libnfs-raw-nlm.h %{_includedir}/nfsc/libnfs-raw-nsm.h %{_libdir}/libnfs.a %{_libdir}/libnfs.la %{_libdir}/pkgconfig/libnfs.pc %package utils Summary: Utility programs for LibNFS Group: Applications/System %description utils Utility programs for LibNFS %files utils %defattr(-,root,root) %{_bindir}/nfs-cat %{_bindir}/nfs-cp %{_bindir}/nfs-ls %{_mandir}/man1/nfs-cat.1.gz %{_mandir}/man1/nfs-cp.1.gz %{_mandir}/man1/nfs-ls.1.gz %changelog * Tue Feb 1 2022 : Version 5.0.1 - Fix non-pthread build * Fri Jan 28 2022 : Version 5.0.0 - Multithread support for Linux and Windows - Fix NFS4 behavior of chmod/chown/utimes - Add marshalling / unmarshalling of various NFSv4.1 structures (but not 4.1 support) - PS3 support - PS2 EE support - Support escaped characters in the URL - Fix MINGW build * Wed Feb 13 2019 : Version 4.0.0 - Fix the versioning in makerpms.sh - Fix some compile issues in the test programs. - NFSv3: skip commit on close if the file has not been written to. - Add nfs_umount() to NFSv3 - Add nfs_statvfs64() - Fix invalid shift of pid_t when generating rpc->xid - Compile fixes for Mac OSX - Fix for dup2() on Windows - NFSv4 fix for directory handling - Improvements to configure/bulding * Sun Jun 24 2018 : Version 3.0.0 - NFSv4 support. - lockf() support (NFSv4 only). - fcntl() support for locking (NFSv4 only). - Add CMake support. - URL arguments to select NFS version. - URL argument to set nfsport. This allows NFSv4 to work for servers without portmapper support. - URL argument to set he mount port. - NFSv4: use getpwnam to map NFSv4 (Ganesha) when passing uid/gid as a user/group name insead of as a uid/gid. - Added nfs-fh: a simle utility to print the filehandle for a nfs file. - Win32 build fixes. - Add a new open2() function that takes a mode argument. - Add a testsuite for libnfs. * Fri Jun 16 2017 : Version 2.0.0 - Add RPC/RAW layer support for NFSv4 - Add support for building RPC servers using libnfs - Add support for setting RPC timeouts for all interfaces. - Add O_NOFOLLOW to nfs_open() - Add a new mkdir2 command that also takes a mode argument. - Add a new readlink2 command that avoids having to preallocate the output buffer. - Build fixes for Mingw and Cygwin. - Use SOCK_CLOEXEC for the sockets - Make rpc_set{g|u}id() public - Performance optimization: socket: Batch pdu read in rpc_read_from_socket - Fix NULL pointer crash in nfs_link(). - Clamp read/write size for servers (Ganesha) that offer very large io sizes instead of failing to connect to the export. - Tell the server to commit all data to stable storage when we close files. - Double free fix: don't call rpc_free_pdu() after rpc_queue_pdu() failure. - Fix for memory leak in rpc_allocate_*(). - Fixes to build nfs-ls and nfs-cp on win32. - Abort the mount process correctly if MOUNT/MNT returns error or is cancelled. - Fix memory leak in error path in nfs_create_2_cb(). - Fix leak of rpc->inbuf if we destroy the context while we still have PDUs in flight. * Sun Oct 9 2016 : Version 1.11.0 - Reduce the number of memory allocations in the ZDR layer. - Check both seconds and nanoseconds field when validating dir cache. - Invalidate the dir cache immediately if we do something that would cause it to become stale, such as adding/removing objects from the cache. - Add options to enable/disable dir caching. - Discard readahead cache on [p]write and truncate. - Android fixes - Windows fixes - Support timeouts for sync functions - Add an internal pagecache - Add nfs_rewinddir(), nfs_seekdir() and nfs_telldir() - Fix crash in nfs_truncate() - Fix segfault that can trigger if we rpc_disconnect() during the mount. - Add support to bind to a specific interface (linux only) * Sun Jan 31 2016 : Version 1.10.0 - Fix a leak where we leaked one rdpe_cb_data structure on each open_dir() - Make building the utils optional - Android: the correct define is __ANDROID__ not ANDROID - Win32: Use _U_ instead of ATTRIBURE((unused)) - Win32: Fix nfs_stat declaration for Win32 - Various fixes for mingw builds - Make rpc->connect_cb a one shot callback and improve documentation - Remove the FUSE module. It now lives in its own repo - Fix POLLERR/POLLHUP handling to properly handle session failures and to try to auto-reconnect * Sun Aug 2 2015 : Version 1.9.8 - Disable multithreading in fuse_nfs - Add -Wall and -Werror compiler flags (and fix issues found by it) - Add nfs-cat utility - Switch to using nfs_[f]stat64 instead of the deprecated nfs_[f]stat call in all examples - If the server does not return any atttributes for entries in READDIRPLUS then try to fetch them using lookup instead. - Reconnection fixes - Enforce the max pdu size and add sanity checks when reading PDUs from the socket. - Stop using ioctl(FIONREAD) to find out how many bytes to read, and treat 0 as an indication of a problem. Some applications call their POLLIN handlers spuriosly even when there is no data to read, which breaks this check in libnfs. - Add basic support to do logging. * Mon Feb 9 2015 : Version 1.9.7 - Auto-traverse mounts. With this option (default to on) libnfs will autodiscover and handle any nested submounts. - Remove nfs_get_current_offset. Applications should use seek instead of this function. - Add umask() support. - Change set_tcp_sockopt() to be static. - Android fix for nfs-ls - Make S_IFLNK available on windows. - Fix a use after free. - Fix a bug where truncate() treated offset as 32bit. * Tue Nov 25 2014 : Version 1.9.6 - Add O_TRUNC support for nfs_create - Handle OOM during create - Return more stats fields as part of readdir since we get these for "free" when we use READDIRPLUS - Follow symlinks during path resolution - Add lchown, lstat and lutimes - Replace all [u_]quad types with [u]int types in our RPC layer - Solaris build fixes * Sat Jul 19 2014 : Version 1.9.5 - Remove old ONC-RPC symbols * Wed Mar 19 2014 : Version 1.9.3 - Add O_TRUNC support to nfs_open() - Add a simple but incomplete LD_PRELOAD tool - Fixes for some memory leaks and C++ compile support - Make ANDROID default uid/gid to 65534 - Allow the READDIRPLUS emulation to still work if some objects in the direcotry can not be lookedup (NFSv4 ACL denying READ-ATTRIBUTES) - Have libnfs retry any read/write operations where the server responds with a short read/write. Some servers do this when they are overloaded? * Thu Jan 30 2014 : Version 1.9.2 - Remove chdir change. This needs more testing. * Tue Jan 28 2014 : Version 1.9.1 - Restore libnfs-raw-*.h to make install * Mon Jan 27 2014 : Version 1.9 - Use _stat64 on windows so file sizes become 64bit always. - Increase default marshalling buffer so we can marshall large PDUs. - RPC layer support for NFSv2 - Win32 updates and fixes - Add URL parsing functions and URL argument support. - New utility: nfs-io - nfs-ls enhancements - RPC layer support for NSM - Add example FUSE filesystem. - Minor fixes. * Wed Oct 30 2013 : Version 1.8 - Fix nasty memory leak in read_from_socket - minor updates * Sun Oct 20 2013 : Version 1.7 - Allow nested eventloops so that a sync function can be called from a callback. - Fix a bug in unmarshalling a uint64. - Add PATHCONF support. - WIN32/64 updates - AROS updates * Mon May 27 2013 : Version 1.6 - AROS/Amiga support - Chose better initial xid value to reduce the probability for collissions. - Set default group to getgid() instead of -1. This fixes an interoperability problem with 3.9 linux knfsd. * Mon Dec 3 2012 : Version 1.5 - Switch to using our own RPC/XDR replacement ZDR instead of relying on the system RPC/TIRPC libraries. This allows using libnfs on platforms that lack RPC libraries completely. - Add support for Android. * Sun Nov 25 2012 : Version 1.4 - Add trackig of freed context and assert on using a context after it has been freed. - Windows x64 support and fixes. - Switch to using our own version of xdr_int64() since the one in libtirpc crashes on some platforms. - Fix memory leak in an error path for addrinfo. - Fix bug dereferencing a null pointer in the mount callback on error. * Sat Mar 3 2012 : Version 1.3 - add set/unset to portmapper - add mount v1 - try to rotate to find a free port better - minor fixes * Tue Dec 6 2011 : Version 1.2 - Add support for MKNOD - Add support for HaneWin NFS server - Change all [s]size_t offset_t to be 64bit clean scalars * Sun Nov 27 2011 : Version 1.1 - Fix definition and use of AUTH - Only call the "connect" callback if non-NULL - make sure the callback for connect is only invoked once for the sync api - make file offset bits 64 bits always * Sun Jul 31 2011 : Version 1.0 - Initial version