libnfs/packaging/RPM/libnfs.spec.in

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