# TODO
-# - should unmount /proc/fs/nfsd at package uninstall (or in service nfs stop)
+# - should unmount /proc/fs/nfsd and /var/lib/nfs/rpc_pipefs at package
+# uninstall (or in service nfs stop)
#
# Conditional build:
%bcond_without nfs4 # without NFSv4 support
Summary(ru.UTF-8): Утилиты для NFS и демоны поддержки для NFS-сервера ядра
Summary(uk.UTF-8): Утиліти для NFS та демони підтримки для NFS-сервера ядра
Name: nfs-utils
-Version: 1.0.12
-Release: 6
+Version: 1.1.0
+Release: 5
License: GPL
Group: Networking/Daemons
-Source0: http://dl.sourceforge.net/nfs/%{name}-%{version}.tar.gz
-# Source0-md5: acf3656cec3872deb597aa7ac13f3c3a
-Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
+Source0: ftp://ftp.kernel.org/pub/linux/utils/nfs/%{name}-%{version}.tar.gz
+# Source0-md5: df88c6fe88a26f9797e74cb2d3291a2a
+#Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
+Source1: nfs.doc.tar.gz
# Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
Source2: nfs.init
Source3: nfslock.init
Source10: nfsfs.sysconfig
Patch0: %{name}-eepro-support.patch
Patch1: %{name}-install.patch
-Patch2: %{name}-heimdal.patch
-Patch3: %{name}-heimdal-internals.patch
-# http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/
-#Patch4: %{name}-1.0.11-CITI_NFS4_ALL-1.dif
-Patch4: %{name}-CITI_NFS4.patch
-Patch5: %{name}-mountd-leak.patch
-Patch6: %{name}-statdpath.patch
-Patch7: %{name}-mount-fake.patch
-Patch8: %{name}-mountd.patch
-Patch9: %{name}-privports.patch
-Patch10: %{name}-mount-man-nfs.patch
-Patch11: %{name}-mount-fsc.patch
-Patch12: %{name}-idmapd.conf.patch
+# http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/1.1.0-1/nfs-utils-1.1.0-CITI_NFS4_ALL-1.dif
+Patch2: %{name}-CITI_NFS4.patch
+Patch3: %{name}-statdpath.patch
+Patch4: %{name}-mount-fake.patch
+Patch5: %{name}-mountd.patch
+Patch6: %{name}-idmapd.conf.patch
+Patch7: %{name}-keytab-path.patch
+Patch8: %{name}-subsys.patch
+Patch9: %{name}-mountd-leak.patch
+Patch10: %{name}-libgssglue.patch
URL: http://nfs.sourceforge.net/
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: cpp
BuildRequires: e2fsprogs-devel >= 1.39-5
%if %{with nfs4}
-BuildRequires: heimdal-devel >= 0.7
+BuildRequires: krb5-devel >= 1.6
BuildRequires: libevent-devel >= 1.2
+BuildRequires: libgssglue-devel >= 0.1
BuildRequires: libnfsidmap-devel
BuildRequires: librpcsecgss-devel >= 0.11-3
%endif
Requires(post,preun): /sbin/chkconfig
Requires: %{name}-common = %{version}-%{release}
Requires: portmap >= 4.0
-Requires: rc-scripts >= 0.4.0
+Requires: rc-scripts >= 0.4.1.5
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: kernel >= 2.2.5
Requires: portmap >= 4.0
Requires: rc-scripts
Provides: group(rpcstatd)
%patch1 -p1
%patch2 -p1
%patch3 -p1
-# temporary hack
-rm -f utils/mountd/fsloc.[ch]
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
-%patch11 -p1
-%patch12 -p1
%build
-%if "%{_lib}" == "lib64"
-sed -i -e 's#/lib/#/%{_lib}/#g' aclocal/kerberos5.m4
-%endif
-sed -i -e 's#libroken.a#libroken.so#g' aclocal/kerberos5.m4
-%{__aclocal} -I aclocal
-%{__autoconf}
-%{__automake}
%configure \
%if %{with nfs4}
--enable-gss \
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-%if %{with mount}
-mv $RPM_BUILD_ROOT%{_sbindir}/{mount,umount}.* $RPM_BUILD_ROOT/sbin
-%endif
+cat >$RPM_BUILD_ROOT%{_sbindir}/start-statd <<EOF
+#!/bin/sh
+# mount.nfs calls this script when mounting a filesystem with locking
+# enabled, but when statd does not seem to be running (based on
+# /var/run/rpc.statd.pid).
+exec /sbin/service nfslock start
+EOF
+
+sed -e "s|#!/bin/bash|#!/bin/sh|" utils/gssd/gss_destroy_creds > $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
mv $RPM_BUILD_ROOT%{_sbindir}/rpcdebug $RPM_BUILD_ROOT/sbin
install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir}/
> $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
> $RPM_BUILD_ROOT%{_sysconfdir}/exports
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,lockd,svcgssd,gssd,idmapd}.8
-rm -f $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
-echo ".so lockd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.lockd.8
+rm $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify}.8
echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
+echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
%if %{with nfs4}
+rm $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{svcgssd,gssd,idmapd}.8
echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
-echo ".so idmapd.conf.5" > $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
%endif
touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
-rm -rf html
cp -a nfs html
%clean
%service nfs restart "NFS daemon"
%if %{with nfs4}
/sbin/chkconfig --add svcgssd
-%service svcgssd restart "RPC svcgssd daemon"
+%service svcgssd restart "RPC svcgssd"
%endif
%preun
%service nfsfs restart
%if %{with nfs4}
/sbin/chkconfig --add gssd
-%service gssd restart "RPC gssd daemon"
+%service gssd restart "RPC gssd"
%endif
%preun clients
%post lock
/sbin/chkconfig --add nfslock
-%service nfslock restart "nfslock daemon"
+%service nfslock restart "RPC statd"
%preun lock
if [ "$1" = "0" ]; then
%if %{with nfs4}
%post common
/sbin/chkconfig --add idmapd
-%service idmapd restart "RPC idmapd daemon"
+%service idmapd restart "RPC idmapd"
%preun common
if [ "$1" = "0" ]; then
fi
%endif
-%triggerpostun -- %{name} <= 1.0.12-5
+%triggerpostun -- %{name} <= 1.1.0-0.rc1.1
/sbin/chkconfig nfs reset
+%if %{with nfs4}
+/sbin/chkconfig svcgssd reset
+%endif
-%triggerpostun lock -- %{name}-lock <= 1.0.12-5
+%triggerpostun lock -- %{name}-lock <= 1.1.0-0.rc1.1
/sbin/chkconfig nfslock reset
-%triggerpostun clients -- %{name}-clients < 1.0.10-1.2
+%triggerpostun clients -- %{name}-clients < 1.1.0-0.rc1.1
if [ -f /etc/sysconfig/nfsclient.rpmsave ]; then
mv -f /etc/sysconfig/nfsfs{,.rpmnew}
mv -f /etc/sysconfig/nfsclient.rpmsave /etc/sysconfig/nfsfs
fi
/sbin/chkconfig nfsfs reset
+%if %{with nfs4}
+/sbin/chkconfig gssd reset
+%endif
+
+%if %{with nfs4}
+%triggerpostun common -- %{name}-common <= 1.1.0-0.rc1.1
+/sbin/chkconfig idmapd reset
+%endif
%files
%defattr(644,root,root,755)
%files lock
%defattr(644,root,root,755)
%attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
-%attr(755,root,root) %{_sbindir}/rpc.lockd
%attr(755,root,root) %{_sbindir}/rpc.statd
+%attr(755,root,root) %{_sbindir}/sm-notify
+%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/rpc.lockd.8*
-%{_mandir}/man8/lockd.8*
-%{_mandir}/man8/rpc.statd.8*
-%{_mandir}/man8/statd.8*
+%{_mandir}/man8/*statd.8*
+%{_mandir}/man8/*sm-notify.8*
%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/state
%files clients