305 lines
10 KiB
Plaintext
305 lines
10 KiB
Plaintext
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
|