+# TODO
+# - should unmount /proc/fs/nfsd at package uninstall (or in service nfs stop)
+#
+# Conditional build:
+%bcond_without nfs4 # without NFSv4 support
+#
Summary: Kernel NFS server
Summary(pl): Dzia³aj±cy na poziomie j±dra serwer NFS
+Summary(pt_BR): Os utilitários para o cliente e servidor NFS do Linux
+Summary(ru): õÔÉÌÉÔÙ ÄÌÑ NFS É ÄÅÍÏÎÙ ÐÏÄÄÅÒÖËÉ ÄÌÑ NFS-ÓÅÒ×ÅÒÁ ÑÄÒÁ
+Summary(uk): õÔÉ̦ÔÉ ÄÌÑ NFS ÔÁ ÄÅÍÏÎÉ Ð¦ÄÔÒÉÍËÉ ÄÌÑ NFS-ÓÅÒ×ÅÒÁ ÑÄÒÁ
Name: nfs-utils
-Version: 0.3.3
-Release: 1
+Version: 1.0.8
+Release: 0.1
License: GPL
Group: Networking/Daemons
-Group(de): Netzwerkwesen/Server
-Group(pl): Sieciowe/Serwery
-Source0: http://download.sourceforge.net/nfs/%{name}-%{version}.tar.gz
+Source0: http://dl.sourceforge.net/nfs/%{name}-%{version}.tar.gz
+# Source0-md5: 74fc2dd04b40c9d619ca41d3787ef8db
Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
+# Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
Source2: nfs.init
Source3: nfslock.init
Source4: rquotad.init
Source6: nfslock.sysconfig
Source7: rquotad.sysconfig
Source8: nfsfs.init
-Patch0: %{name}-paths.patch
-Patch1: %{name}-time.patch
-Patch2: %{name}-eepro-support.patch
-#Requires: kernel >= 2.2.5
+Source9: nfsfs.sysconfig
+Patch0: %{name}-eepro-support.patch
+Patch1: %{name}-install.patch
+Patch2: %{name}-nolibs.patch
+Patch3: %{name}-heimdal.patch
+Patch4: %{name}-heimdal-internals.patch
+Patch5: http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/1.0.8-1/%{name}-1.0.8-CITI_NFS4_ALL-1.dif
+URL: http://nfs.sourceforge.net/
+BuildRequires: autoconf
+BuildRequires: automake
+%if %{with nfs4}
+BuildRequires: heimdal-devel >= 0.7
+BuildRequires: libevent-devel >= 1.1a
+BuildRequires: libnfsidmap-devel
+BuildRequires: librpcsecgss-devel >= 0.11-3
+%endif
+BuildRequires: libwrap-devel
+BuildRequires: sed >= 4.0
+Requires(post): fileutils
+Requires(post): sed >= 4.0
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-common = %{version}-%{release}
Requires: portmap >= 4.0
-Obsoletes: nfsdaemon nfs-server knfsd
+Requires: rc-scripts >= 0.4.0
+Requires: setup >= 2.4.6-7
Provides: nfsdaemon
-Prereq: rc-scripts
-Prereq: /sbin/chkconfig
-BuildRequires: autoconf
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes: knfsd
+Obsoletes: nfs-server
+Obsoletes: nfsdaemon
+Conflicts: kernel < 2.2.5
ExcludeArch: armv4l
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
This is the *new* kernel NFS server and related tools. It provides a
%description -l pl
To jest *nowy* dzia³aj±cy na poziomie j±dra serwer NFS oraz zwi±zane z
nim narzêdzia. Serwer ten dostarcza znacznie wiêksz± wydajno¶æ ni¿
-tradycyjny, dzia³aj±cy na poziomie uzytkownika serwer NFS.
+tradycyjny, dzia³aj±cy na poziomie u¿ytkownika serwer NFS.
+
+%description -l pt_BR
+O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
+do Linux.
+
+%description -l ru
+ðÁËÅÔ nfs-utils ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÄÅÍÏÎÁ ÄÌÑ NFS-ÓÅÒ×ÅÒÁ, ×ËÌÀÞÅÎÎÏÇÏ ×
+ÑÄÒÏ, É ÓÏÐÕÔÓÔ×ÕÀÝÉÅ ÕÔÉÌÉÔÙ, ËÏÔÏÒÙÅ ÏÂÅÓÐÅÞÉ×ÁÀÔ ÎÁÍÎÏÇÏ ÂÏÌØÛÕÀ
+ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÞÅÍ ÔÒÁÄÉÃÉÏÎÎÙÅ Linux NFS-ÓÅÒ×ÅÒÁ, ÉÓÐÏÌØÚÕÅÍÙÅ
+ÂÏÌØÛÉÎÓÔ×ÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ.
+
+%description -l uk
+ðÁËÅÔ nfs-utils ÎÁÄÁ¤ ÄÅÍÏÎÁ ÄÌÑ NFS-ÓÅÒ×ÅÒÁ, ×ÂÕÄÏ×ÁÎÏÇÏ × ÑÄÒÏ, ÔÁ
+ÓÕÐÕÔΦ ÕÔÉ̦ÔÉ, Ñ˦ ÚÁÂÅÚÐÅÞÕÀÔØ ÎÁÂÁÇÁÔÏ Â¦ÌØÛÕ ÐÒÏÄÕËÔÉ×ΦÓÔØ, ΦÖ
+ÔÒÁÄÉæÊΦ Linux NFS-ÓÅÒ×ÅÒÉ, Ñ˦ ×ÉËÏÒÉÓÔÏ×Õ¤ ¦ÌØÛ¦ÓÔØ ËÏÒÉÓÔÕ×ÁÞ¦×.
%package clients
Summary: Clients for connecting to a remote NFS server
Summary(pl): Klienci do ³±czenia siê ze zdalnym serwerem NFS
Group: Networking
-Group(de): Netzwerkwesen
-Group(es): Red
-Group(pl): Sieciowe
-Group(pt_BR): Rede
+Requires(post,preun): /sbin/chkconfig
+Requires: %{name}-common = %{version}-%{release}
Requires: psmisc
-Prereq: rc-scripts
-Prereq: /sbin/chkconfig
-Provides: nfsclient
+Requires: rc-scripts
Provides: nfs-server-clients
-Obsoletes: nfsclient
-Obsoletes: nfs-server-clients
+Provides: nfsclient
Obsoletes: knfsd-clients
+Obsoletes: nfs-server-clients
+Obsoletes: nfsclient
%description clients
The nfs-server-clients package contains the showmount program.
example, showmount can display the clients which are mounted on that
host. This package is not needed to mount NFS volumes.
-%description -l pl clients
+%description clients -l pl
Pakiet zawiera program showmount s³u¿±cy do odpytywania serwera NFS.
Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
ho¶cie. Na przyk³ad, showmount potrafi pokazaæ klientów, którzy s±
-zamountowani na tym serverze. Ten pakiet nie jest konieczny do
+zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
zamountowania zasobów NFS.
%package lock
Summary: Programs for NFS file locking
Summary(pl): Programy do obs³ugi blokowania plików poprzez NFS (lock)
Group: Networking
-Group(de): Netzwerkwesen
-Group(es): Red
-Group(pl): Sieciowe
-Group(pt_BR): Rede
+Requires(post,preun): /sbin/chkconfig
#Requires: kernel >= 2.2.5
Requires: portmap >= 4.0
-Prereq: rc-scripts
-Prereq: /sbin/chkconfig
-Obsoletes: nfslockd knfsd-lock
+Requires: rc-scripts
Provides: nfslockd
+Obsoletes: knfsd-lock
+Obsoletes: nfslockd
%description lock
The nfs-lock pacage contains programs which support the NFS file lock.
Install nfs-lock if you want to use file lock over NFS.
-%description -l pl lock
+%description lock -l pl
Ten pakiet zawiera programy umo¿liwiaj±ce wykonywanie blokowania
plików (file locking) poprzez NFS.
Summary: Remote quota server
Summary(pl): Zdalny serwer quota
Group: Networking/Daemons
-Group(de): Netzwerkwesen/Server
-Group(pl): Sieciowe/Serwery
-Prereq: rc-scripts
-Prereq: /sbin/chkconfig
+Requires(post,preun): /sbin/chkconfig
+Requires: rc-scripts
Obsoletes: quota-rquotad
%description rquotad
The results are used by quota(1) to display user quotas for remote
file systems.
-%description -l pl rquotad
+%description rquotad -l pl
rquotad jest serverem rpc(3N), który zwraca quoty u¿ytkownika
lokalnego systemu plików, który jest zamountowany przez zdaln± maszynê
-poprzez NFS. Rezultaty s± u¿ywane przez quota(1), aby wy¶wietliæ quote
+poprzez NFS. Rezultaty s± u¿ywane przez quota(1), aby wy¶wietliæ quotê
dla zdalnego systemu plików.
+%package common
+Summary: Common programs for NFS
+Summary(pl): Wspólne programy do obs³ugi NFS
+Group: Networking
+
+%description common
+Common programs for NFS.
+
+%description common -l pl
+Wspólne programy do obs³ugi NFS.
+
%prep
-%setup -q -a1
+%setup -q -a1
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
-autoconf
+%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 \
- --with-statedir=/var/lib/nfs \
+%if %{with nfs4}
+ --enable-gss \
+ --with-krb5=%{_prefix} \
+ --enable-nfsv4 \
+%else
+ --disable-gss \
+ --disable-nfsv4 \
+%endif
--enable-nfsv3 \
- --enable-secure-statd
+ --enable-secure-statd \
+ --with-statedir=/var/lib/nfs
+
%{__make} all
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{/sbin,%{_sbindir},%{_mandir}/man{5,8}} \
- $RPM_BUILD_ROOT{%{_sysconfdir}/{rc.d/init.d,sysconfig},%{_var}/lib/nfs}
+ $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig} \
+ $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery}
-%{__make} install install_prefix="$RPM_BUILD_ROOT"
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
install tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin
+install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir}/
+
install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/rquotad
install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
install %{SOURCE7} $RPM_BUILD_ROOT/etc/sysconfig/rquotad
-touch $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
+install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfsclient
-touch $RPM_BUILD_ROOT%{_sysconfdir}/exports
+> $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
+> $RPM_BUILD_ROOT%{_sysconfdir}/exports
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,rquotad,statd,lockd}.8
+rm -f $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,rquotad,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
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 rquotad.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.rquotad.8
echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
+%if %{with nfs4}
+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
-gzip -9nf ChangeLog README nfs/*.ps
+ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
-mv -f nfs/*.ps.gz ./
mv -f nfs html
%clean
%post
/sbin/chkconfig --add nfs
-if [ -r /var/lock/subsys/nfs ]; then
- /etc/rc.d/init.d/nfs restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/nfs start\" to start nfs daemon."
-fi
-sed -e 's/NFSDTYPE=.*/NFSDTYPE=K/' /etc/sysconfig/nfsd > /etc/sysconfig/nfsd.new
-mv -f /etc/sysconfig/nfsd.new /etc/sysconfig/nfsd
+%service nfs restart "NFS daemon"
%preun
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/nfs ]; then
- /etc/rc.d/init.d/nfs stop >&2
- fi
+ %service nfs stop
/sbin/chkconfig --del nfs
fi
%post clients
/sbin/chkconfig --add nfsfs
-if [ -r /var/lock/subsys/nfsfs ]; then
- /etc/rc.d/init.d/nfsfs restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/nfsfs start\" to mount all NFS volumens."
-fi
+%service nfsfs restart
%preun clients
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/nfsfs ]; then
- /etc/rc.d/init.d/nfsfs stop >&2
- fi
+ %service nfsfs stop
/sbin/chkconfig --del nfsfs
fi
%post lock
/sbin/chkconfig --add nfslock
-if [ -r /var/lock/subsys/nfslock ]; then
- /etc/rc.d/init.d/nfslock restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/nfslock start\" to start nfslock daemon."
-fi
+%service nfslock restart "nfslock daemon"
%preun lock
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/nfslock ]; then
- /etc/rc.d/init.d/nfslock stop >&2
- fi
+ %service nfslock stop
/sbin/chkconfig --del nfslock
fi
%post rquotad
/sbin/chkconfig --add rquotad
-if [ -r /var/lock/subsys/rquotad ]; then
- /etc/rc.d/init.d/rquotad restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/rquotad start\" to start NFS quota daemon."
-fi
+%service rquotad restart "NFS quota daemon"
%preun rquotad
if [ "$1" = "0" ]; then
- if [ -r /var/lock/subsys/rquotad ]; then
- /etc/rc.d/init.d/rquotad stop >&2
- fi
+ %service rquotad stop
/sbin/chkconfig --del rquotad
fi
%files
%defattr(644,root,root,755)
-%doc {ChangeLog,README,*.ps}.gz html
+%doc ChangeLog README html
%attr(755,root,root) /sbin/rpcdebug
+%attr(755,root,root) /sbin/fsck.nfs
%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}/nfsstat
+%attr(755,root,root) %{_sbindir}/nhfsgraph
+%attr(755,root,root) %{_sbindir}/nhfsnums
+%attr(755,root,root) %{_sbindir}/nhfsrun
%attr(755,root,root) %{_sbindir}/nhfsstone
%attr(754,root,root) /etc/rc.d/init.d/nfs
-%attr(755,root,root) %dir %{_var}/lib/nfs
-
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/exports
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/nfsd
-%config(noreplace) %verify(not size mtime md5) %{_var}/lib/nfs/xtab
-%config(noreplace) %verify(not size mtime md5) %{_var}/lib/nfs/etab
-%config(noreplace) %verify(not size mtime md5) %{_var}/lib/nfs/rmtab
+%attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
+%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
+%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
+%{_mandir}/man5/exports.5*
+%{_mandir}/man7/nfsd.7*
%{_mandir}/man8/exportfs.8*
%{_mandir}/man8/mountd.8*
+%{_mandir}/man8/nhfsgraph.8*
+%{_mandir}/man8/nhfsnums.8*
+%{_mandir}/man8/nhfsrun.8*
+%{_mandir}/man8/nhfsstone.8*
%{_mandir}/man8/nfsd.8*
%{_mandir}/man8/nfsstat.8*
%{_mandir}/man8/rpc.mountd.8*
%{_mandir}/man8/rpc.nfsd.8*
-%{_mandir}/man5/exports.5*
+%if %{with nfs4}
+%attr(755,root,root) %{_sbindir}/rpc.svcgssd
+%{_mandir}/man8/*svcgss*
+%endif
%files lock
%defattr(644,root,root,755)
%attr(755,root,root) %{_sbindir}/rpc.lockd
%attr(755,root,root) %{_sbindir}/rpc.statd
%attr(754,root,root) /etc/rc.d/init.d/nfslock
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/nfslock
-%attr(755,root,root) %dir %{_var}/lib/nfs
+%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*
+%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/state
%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/nfsclient
%attr(755,root,root) %{_sbindir}/showmount
%{_mandir}/man8/showmount.8*
-%files rquotad
+%if %{with nfs4}
+%attr(755,root,root) %{_sbindir}/rpc.gssd
+%{_mandir}/man8/rpc.gssd*
+%{_mandir}/man8/gssd*
+%endif
+
+#%files rquotad
+#%defattr(644,root,root,755)
+#%attr(755,root,root) %{_sbindir}/rpc.rquotad
+#%attr(754,root,root) /etc/rc.d/init.d/rquotad
+#%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rquotad
+#%%{_mandir}/man8/rpc.rquotad.8*
+
+%files common
%defattr(644,root,root,755)
-%attr(755,root,root) %{_sbindir}/rpc.rquotad
-%attr(754,root,root) /etc/rc.d/init.d/rquotad
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/rquotad
-%{_mandir}/man8/rpc.rquotad.8*
+%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
+%if %{with nfs4}
+%attr(755,root,root) %{_sbindir}/gss_*
+%attr(755,root,root) %{_sbindir}/rpc.idmapd
+%attr(660,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/idmapd.conf
+%{_mandir}/man[58]/*idmap*
+%endif