+# TODO:
+# - where to put idmapd binaries (server/client/both)?
+# - gss daemons, main or separate package?
+#
+# Conditional build:
+%bcond_without nfs4 # without NFSv4 support
+#
Summary: Kernel NFS server
-Summary(pl): Dzia³aj±cy na poziomie j±dra serwer NFS.
+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.1.7
-Release: 4
-Copyright: GPL
+Version: 1.0.7
+Release: 2.1
+License: GPL
Group: Networking/Daemons
-Group(pl): Sieciowe/Serwery
-Source0: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/%{name}-%{version}.tar.gz
+Source0: http://dl.sourceforge.net/nfs/%{name}-%{version}.tar.gz
+# Source0-md5: 8f863120261cd572ad320a9152581e11
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: nfs-utils-paths.patch
-#Requires: kernel >= 2.2.5
+Patch0: %{name}-paths.patch
+Patch1: %{name}-time.patch
+Patch2: %{name}-eepro-support.patch
+Patch3: %{name}-install.patch
+Patch4: %{name}-nolibs.patch
+Patch5: %{name}-usn36.patch
+Patch6: %{name}-gss.patch
+URL: http://nfs.sourceforge.net/
+BuildRequires: autoconf
+%{?with_nfs4:BuildRequires: heimdal-devel}
+%{?with_nfs4:BuildRequires: libevent-devel}
+BuildRequires: libwrap-devel
+%{?with_nfs4:BuildRequires: nfsidmap-devel}
+PreReq: rc-scripts >= 0.4.0
+PreReq: setup >= 2.4.6-7
+Requires(post,preun): /sbin/chkconfig
+Requires(post): fileutils
+Requires(post): sed
Requires: portmap >= 4.0
-Obsoletes: nfsdaemon nfs-server knfsd
Provides: nfsdaemon
-Requires: rc-scripts
-#Requires: /dev/nfsd_netlink
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Obsoletes: nfsdaemon
+Obsoletes: knfsd
+Obsoletes: nfs-server
+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 much
-higher level of performance than the traditional Linux user-land NFS server.
+This is the *new* kernel NFS server and related tools. It provides a
+much higher level of performance than the traditional Linux user-land
+NFS server.
%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.
+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 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
-Obsoletes: nfs-server-clients
-Provides: nfs-server-clients
-Summary: Clients for connecting to a remote NFS server.
-Summary(pl): Klienci do ³±czenia siê ze zdalnym serwerem NFS.
+Summary: Clients for connecting to a remote NFS server
+Summary(pl): Klienci do ³±czenia siê ze zdalnym serwerem NFS
Group: Networking
-Group(pl): Sieciowe
-Obsoletes: nfsclient nfs-server-clients knfsd-clients
+PreReq: rc-scripts
+Requires(post,preun): /sbin/chkconfig
+Requires: psmisc
Provides: nfsclient
+Provides: nfs-server-clients
+Obsoletes: nfsclient
+Obsoletes: nfs-server-clients
+Obsoletes: knfsd-clients
%description clients
The nfs-server-clients package contains the showmount program.
Showmount queries the mount daemon on a remote host for information
-about the NFS (Network File System) server on the remote host. For
+about the NFS (Network File System) server on the remote host. For
example, showmount can display the clients which are mounted on that
-host. This package is not needed to mount NFS volumes.
+host. This package is not needed to mount NFS volumes.
-%description -l pl clients
-Pakiet zawiera program showmount s³u¿±cy do odpytywania
-serwera NFS.
+%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 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).
+Summary: Programs for NFS file locking
+Summary(pl): Programy do obs³ugi blokowania plików poprzez NFS (lock)
+Group: Networking
+PreReq: rc-scripts
+Requires(post,preun): /sbin/chkconfig
#Requires: kernel >= 2.2.5
Requires: portmap >= 4.0
-Obsoletes: nfslockd knfsd-lock
Provides: nfslockd
-Group: Networking
-Group(pl): Sieciowe
+Obsoletes: nfslockd
+Obsoletes: knfsd-lock
%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
-Ten pakiet zawiera programy umo¿liwiaj±ce wykonywanie
-blokowania plików (file locking) poprzez NFS.
+%description lock -l pl
+Ten pakiet zawiera programy umo¿liwiaj±ce wykonywanie blokowania
+plików (file locking) poprzez NFS.
%package rquotad
-Summary: Remote quota server.
-Summary(pl): Zdalny serwer quota.
+Summary: Remote quota server
+Summary(pl): Zdalny serwer quota
Group: Networking/Daemons
-Group(pl): Sieciowe/Serwery
+PreReq: rc-scripts
+Requires(post,preun): /sbin/chkconfig
+Obsoletes: quota-rquotad
%description rquotad
-rquotad is an rpc(3N) server which returns quotas for a user of a local file system which
-is mounted by a remote machine over the NFS. The results are used by quota(1) to display
-user quotas for remote file systems.
+rquotad is an rpc(3N) server which returns quotas for a user of a
+local file system which is mounted by a remote machine over the NFS.
+The results are used by quota(1) to display user quotas for remote
+file systems.
-%description -l pl rquotad
-Zdalny serwer quota.
+%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æ quotê
+dla zdalnego systemu plików.
%prep
-%setup -q -a1
+%setup -q -a1
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+chmod u+w configure
%build
+rm -rf support/gssapi/*
+echo -ne "all:\ndep:\ninstall:\ninstallman:\n" > support/gssapi/Makefile
+ln -sf %{_includedir}/gssapi.h support/include/gssapi/gssapi.h
+%{__autoconf}
%configure \
- --with-statedir=/var/lib/nfs \
+%if %{without nfs4}
+ --disable-gss \
+ --disable-nfsv4 \
+%endif
--enable-nfsv3 \
- --enable-secure-statd
-make all
+ --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}
-install -d $RPM_BUILD_ROOT{/sbin,%{_sbindir},%{_mandir}/man{5,8}}
-install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,sysconfig},%{_var}/lib/nfs}
-
-make install install_prefix="$RPM_BUILD_ROOT"
+%{__make} install \
+ install_prefix=$RPM_BUILD_ROOT
-install -s tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin
+install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT/etc
+install tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin
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
-touch $RPM_BUILD_ROOT/etc/exports
+> $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
+> $RPM_BUILD_ROOT%{_sysconfdir}/exports
-rm $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,gssd,idmapd,svcgssd}.8
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
-
-strip --strip-unneeded $RPM_BUILD_ROOT{/sbin/*,%{_sbindir}/*} || :
+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
+rm -f $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
+echo ".so idmapd.conf.5" > $RPM_BUILD_ROOT%{_mandir}/man5/rpc.idmapd.conf.5
touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
-gzip -9nf ChangeLog README nfs/*.ps \
- $RPM_BUILD_ROOT%{_mandir}/man*/*
+ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
-mv -f nfs/*.ps.gz ./
-mv -f nfs html
+cp -a nfs nfs-copy
+mv -f nfs-copy/*.ps ./
+mv -f nfs-copy html
%clean
rm -rf $RPM_BUILD_ROOT
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."
+ echo "Run \"/etc/rc.d/init.d/nfs start\" to start NFS daemon."
fi
+umask 022
sed -e 's/NFSDTYPE=.*/NFSDTYPE=K/' /etc/sysconfig/nfsd > /etc/sysconfig/nfsd.new
mv -f /etc/sysconfig/nfsd.new /etc/sysconfig/nfsd
%preun
if [ "$1" = "0" ]; then
+ if [ -r /var/lock/subsys/nfs ]; then
+ /etc/rc.d/init.d/nfs stop >&2
+ fi
/sbin/chkconfig --del nfs
- /etc/rc.d/init.d/nfs stop >&2
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 volumes."
+fi
%preun clients
if [ "$1" = "0" ]; then
+ if [ -r /var/lock/subsys/nfsfs ]; then
+ /etc/rc.d/init.d/nfsfs stop >&2
+ fi
/sbin/chkconfig --del nfsfs
- /etc/rc.d/init.d/nfsfs stop >&2
fi
%post lock
%preun lock
if [ "$1" = "0" ]; then
+ if [ -r /var/lock/subsys/nfslock ]; then
+ /etc/rc.d/init.d/nfslock stop >&2
+ fi
/sbin/chkconfig --del nfslock
- /etc/rc.d/init.d/nfslock stop >&2
fi
%post 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 quota daemon."
+ echo "Run \"/etc/rc.d/init.d/rquotad start\" to start NFS quota daemon."
fi
%preun rquotad
if [ "$1" = "0" ]; then
+ if [ -r /var/lock/subsys/rquotad ]; then
+ /etc/rc.d/init.d/rquotad stop >&2
+ fi
/sbin/chkconfig --del rquotad
- /etc/rc.d/init.d/rquotad stop >&2
fi
%files
%defattr(644,root,root,755)
-%doc {ChangeLog,README,*.ps}.gz html
+%doc ChangeLog README *.ps 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
+%{?with_nfs4:%attr(755,root,root) %{_sbindir}/rpc.idmapd}
%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) /etc/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(660,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/idmapd.conf
+%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}/man[58]/*idmap*
+%{_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*
%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(755,root,root) %{_sbindir}/showmount
%{_mandir}/man8/showmount.8*
-%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 size mtime md5) /etc/sysconfig/rquotad
-%{_mandir}/man8/rpc.rquotad.8*
+#%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*