# TODO
+# - consider enabling: nfsv41, mountconfig, libmount-mount
# - should unmount /proc/fs/nfsd and /var/lib/nfs/rpc_pipefs at package
# uninstall (or in service nfs stop)
#
# Conditional build:
-%bcond_with heimdal # build with Heimdal Kerberos instead of MIT
+%bcond_with krb5 # build with MIT Kerberos (+libgssglue) instead of Heimdal
+%bcond_without tirpc # use librpcsecgss instead of libtirpc
#
Summary: Kernel NFS server
Summary(pl.UTF-8): Działający na poziomie jądra serwer NFS
Summary(ru.UTF-8): Утилиты для NFS и демоны поддержки для NFS-сервера ядра
Summary(uk.UTF-8): Утиліти для NFS та демони підтримки для NFS-сервера ядра
Name: nfs-utils
-Version: 1.2.0
+Version: 1.2.4
Release: 3
License: GPL v2
Group: Networking/Daemons
Source0: http://www.kernel.org/pub/linux/utils/nfs/%{name}-%{version}.tar.bz2
-# Source0-md5: 779cf81044e92cb51ad590960e7b3671
+# Source0-md5: 938dc0574f3eb9891a8ed4746f806277
#Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
Source1: nfs.doc.tar.gz
# Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
Patch1: %{name}-statdpath.patch
Patch2: %{name}-subsys.patch
Patch3: %{name}-union-mount.patch
-Patch4: %{name}-kerberos-ac.patch
-Patch5: %{name}-no_libgssapi.patch
-Patch6: %{name}-pkgconfig_ac.patch
-Patch7: %{name}-heimdal_functions.patch
+Patch4: %{name}-heimdal.patch
+Patch5: %{name}-heimdal-kcm.patch
URL: http://nfs.sourceforge.net/
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: cpp
-%if %{with heimdal}
-BuildRequires: heimdal-devel >= 1.0
-%else
-BuildRequires: krb5-devel >= 1.6
-BuildRequires: libgssglue-devel >= 0.1
-%endif
-BuildRequires: libblkid-devel
+BuildRequires: keyutils-devel
+BuildRequires: libblkid-devel >= 1.40
+BuildRequires: libcap-devel
BuildRequires: libevent-devel >= 1.2
BuildRequires: libnfsidmap-devel >= 0.21-3
-BuildRequires: librpcsecgss-devel >= 0.16
-BuildRequires: libtirpc-devel >= 1:0.1.10-4
BuildRequires: libtool
BuildRequires: libwrap-devel
BuildRequires: pkgconfig
-BuildRequires: sed >= 4.0
+BuildRequires: rpm-pythonprov
+%if %{with tirpc}
+BuildRequires: libtirpc-devel >= 1:0.1.10-4
+%else
+BuildRequires: librpcsecgss-devel >= 0.16
+%endif
+%if %{with krb5}
+BuildRequires: krb5-devel >= 1.6
+BuildRequires: libgssglue-devel >= 0.1
+%else
+BuildRequires: heimdal-devel >= 1.0
+%endif
# lucid context fields mismatch with current version of spkm3.h
BuildConflicts: gss_mech_spkm3-devel
Requires(post): fileutils
Requires(post): sed >= 4.0
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-common = %{version}-%{release}
-Requires: rpcbind >= 0.1.7
Requires: rc-scripts >= 0.4.1.5
+Requires: rpcbind >= 0.1.7
Requires: setup >= 2.4.6-7
Provides: nfsdaemon
Obsoletes: knfsd
Summary(pl.UTF-8): Programy do obsługi blokowania plików poprzez NFS (lock)
Group: Networking
Requires(post,preun): /sbin/chkconfig
-Requires: rpcbind >= 0.1.7
Requires: rc-scripts
+Requires: rpcbind >= 0.1.7
Provides: group(rpcstatd)
-Provides: user(rpcstatd)
Provides: nfslockd
+Provides: user(rpcstatd)
Obsoletes: knfsd-lock
Obsoletes: nfslockd
%patch2 -p1
%patch3 -p1
%patch4 -p1
-%{?with_heimdal:%patch5 -p1}
-%patch6 -p1
-%patch7 -p0
-
-# conflict with GNU stdio extension
-sed -i -e 's/dprintf/dbgprintf/' support/include/ha-callout.h utils/statd/*.[ch]
+%patch5 -p1
%build
%{__libtoolize}
--enable-nfsv4 \
--enable-gss \
--enable-mount \
+%if %{with tirpc}
--enable-tirpc \
--enable-ipv6 \
+%else
+ --disable-tirpc \
+ --disable-ipv6 \
+%endif
--with-statedir=/var/lib/nfs \
--with-statduser=rpcstatd \
--with-start-statd=%{_sbindir}/start-statd \
--with-tcp-wrappers \
-%if %{with heimdal}
- --with-krb5-config=%{_bindir}/krb5-config
-%else
- --with-krb5=%{_prefix}
-%endif
+ --with-krb5
%{__make} all
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig} \
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d} \
$RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery}
%{__make} install \
%attr(755,root,root) %{_sbindir}/exportfs
%attr(755,root,root) %{_sbindir}/rpc.mountd
%attr(755,root,root) %{_sbindir}/rpc.nfsd
+%attr(755,root,root) %{_sbindir}/rpc.svcgssd
%attr(755,root,root) %{_sbindir}/nfsstat
%attr(754,root,root) /etc/rc.d/init.d/nfs
+%attr(754,root,root) /etc/rc.d/init.d/svcgssd
%attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
+%dir %{_sysconfdir}/exports.d
+
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
%{_mandir}/man8/nfsstat.8*
%{_mandir}/man8/rpc.mountd.8*
%{_mandir}/man8/rpc.nfsd.8*
+%{_mandir}/man8/rpc.svcgssd.8*
%{_mandir}/man8/rpcdebug.8*
-%attr(754,root,root) /etc/rc.d/init.d/svcgssd
-%attr(755,root,root) %{_sbindir}/rpc.svcgssd
-%{_mandir}/man8/*svcgss*
+%{_mandir}/man8/svcgssd.8*
%files lock
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/start-statd
%attr(754,root,root) /etc/rc.d/init.d/nfslock
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
-%{_mandir}/man8/*statd.8*
-%{_mandir}/man8/*sm-notify.8*
+%{_mandir}/man8/rpc.sm-notify.8*
+%{_mandir}/man8/rpc.statd.8*
+%{_mandir}/man8/sm-notify.8*
+%{_mandir}/man8/statd.8*
%files clients
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/nfsfs
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
-%attr(755,root,root) %{_sbindir}/showmount
-%{_mandir}/man8/showmount.8*
%attr(4755,root,root) /sbin/mount.nfs
%attr(4755,root,root) /sbin/umount.nfs
%attr(4755,root,root) /sbin/mount.nfs4
%attr(4755,root,root) /sbin/umount.nfs4
-%{_mandir}/man8/*mount.nfs.8*
-%attr(754,root,root) /etc/rc.d/init.d/gssd
+%attr(755,root,root) %{_sbindir}/mountstats
+%attr(755,root,root) %{_sbindir}/nfsiostat
+%attr(755,root,root) %{_sbindir}/showmount
%attr(755,root,root) %{_sbindir}/rpc.gssd
-%{_mandir}/man8/rpc.gssd*
-%{_mandir}/man8/gssd*
+%attr(754,root,root) /etc/rc.d/init.d/gssd
+%{_mandir}/man8/gssd.8*
+%{_mandir}/man8/mount.nfs.8*
+%{_mandir}/man8/mountstats.8*
+%{_mandir}/man8/nfsiostat.8*
+%{_mandir}/man8/rpc.gssd.8*
+%{_mandir}/man8/showmount.8*
+%{_mandir}/man8/umount.nfs.8*
%files common
%defattr(644,root,root,755)
-%attr(755,root,root) %dir %{_var}/lib/nfs
-%attr(755,root,root) %dir %{_var}/lib/nfs/rpc_pipefs
-%attr(755,root,root) %dir %{_var}/lib/nfs/v4recovery
-%{_mandir}/man5/nfs*
-%attr(754,root,root) /etc/rc.d/init.d/idmapd
-%attr(755,root,root) %{_sbindir}/gss_*
+%attr(755,root,root) %{_sbindir}/gss_clnt_send_err
+%attr(755,root,root) %{_sbindir}/gss_destroy_creds
+%attr(755,root,root) %{_sbindir}/nfsidmap
%attr(755,root,root) %{_sbindir}/rpc.idmapd
-%{_mandir}/man[58]/*idmap*
+%attr(754,root,root) /etc/rc.d/init.d/idmapd
+%dir %{_var}/lib/nfs
+%dir %{_var}/lib/nfs/rpc_pipefs
+%dir %{_var}/lib/nfs/v4recovery
+%{_mandir}/man5/nfs.5*
+%{_mandir}/man8/idmapd.8*
+%{_mandir}/man8/nfsidmap.8*
+%{_mandir}/man8/rpc.idmapd.8*