]> git.pld-linux.org Git - packages/nfs-utils.git/blobdiff - nfs-utils.spec
- rel 2
[packages/nfs-utils.git] / nfs-utils.spec
index 2d6f345c2e5469774fcc8d42258ffaba50128c27..f492a3ba889dda475ada6ea743178b9cc5741b82 100644 (file)
@@ -1,8 +1,9 @@
 # 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
+%bcond_with    heimdal         # build with Heimdal Kerberos instead of MIT
 #
 Summary:       Kernel NFS server
 Summary(pl.UTF-8):     Działający na poziomie jądra serwer NFS
@@ -10,51 +11,60 @@ Summary(pt_BR.UTF-8):       Os utilitários para o cliente e servidor NFS do Linux
 Summary(ru.UTF-8):     Утилиты для NFS и демоны поддержки для NFS-сервера ядра
 Summary(uk.UTF-8):     Утиліти для NFS та демони підтримки для NFS-сервера ядра
 Name:          nfs-utils
-Version:       1.0.12
-Release:       5.1
-License:       GPL
+Version:       1.2.0
+Release:       2
+License:       GPL v2
 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:       http://www.kernel.org/pub/linux/utils/nfs/%{name}-%{version}.tar.bz2
+# Source0-md5: 779cf81044e92cb51ad590960e7b3671
+#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
-Source4:       rquotad.init
-Source5:       nfs.sysconfig
-Source6:       nfslock.sysconfig
-Source7:       rquotad.sysconfig
-Source8:       nfsfs.init
-Source9:       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
+Source4:       nfsfs.init
+Source5:       rpcidmapd.init
+Source6:       rpcgssd.init
+Source7:       rpcsvcgssd.init
+Source8:       nfs.sysconfig
+Source9:       nfslock.sysconfig
+Source10:      nfsfs.sysconfig
+Patch0:                %{name}-install.patch
+Patch1:                %{name}-statdpath.patch
+Patch2:                %{name}-keytab-path.patch
+Patch3:                %{name}-subsys.patch
+Patch4:                %{name}-union-mount.patch
+Patch5:                %{name}-kerberos-ac.patch
+Patch6:                %{name}-no_libgssapi.patch
+Patch7:                %{name}-pkgconfig_ac.patch
+Patch8:                %{name}-heimdal_functions.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: libevent-devel >= 1.2
-BuildRequires: libnfsidmap-devel
-BuildRequires: librpcsecgss-devel >= 0.11-3
+%if %{with heimdal}
+BuildRequires: heimdal-devel >= 1.0
+%else
+BuildRequires: krb5-devel >= 1.6
+BuildRequires: libgssglue-devel >= 0.1
 %endif
+BuildRequires: libblkid-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
+# 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:      portmap >= 4.0
-Requires:      rc-scripts >= 0.4.0
+Requires:      rpcbind >= 0.1.7
+Requires:      rc-scripts >= 0.4.1.5
 Requires:      setup >= 2.4.6-7
 Provides:      nfsdaemon
 Obsoletes:     knfsd
@@ -122,9 +132,10 @@ Summary:   Programs for NFS file locking
 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:      rpcbind >= 0.1.7
 Requires:      rc-scripts
+Provides:      group(rpcstatd)
+Provides:      user(rpcstatd)
 Provides:      nfslockd
 Obsoletes:     knfsd-lock
 Obsoletes:     nfslockd
@@ -137,30 +148,12 @@ Install nfs-lock if you want to use file lock over NFS.
 Ten pakiet zawiera programy umożliwiające wykonywanie blokowania
 plików (file locking) poprzez NFS.
 
-%package rquotad
-Summary:       Remote quota server
-Summary(pl.UTF-8):     Zdalny serwer quota
-Group:         Networking/Daemons
-Requires(post,preun):  /sbin/chkconfig
-Requires:      rc-scripts
-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.
-
-%description rquotad -l pl.UTF-8
-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.
-
 %package common
 Summary:       Common programs for NFS
 Summary(pl.UTF-8):     Wspólne programy do obsługi NFS
 Group:         Networking
+Requires:      libnfsidmap >= 0.21-3
+Conflicts:     mount < 2.13-0.pre7.1
 
 %description common
 Common programs for NFS.
@@ -172,80 +165,91 @@ Wspólne programy do obsługi NFS.
 %setup -q -a1
 %patch0 -p1
 %patch1 -p1
-%patch2 -p1
+%{!?with_heimdal:%patch2 -p1}
 %patch3 -p1
-# temporary hack
-rm -f utils/mountd/fsloc.[ch]
 %patch4 -p1
+%if %{with heimdal}
 %patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p0
+%endif
+
+# conflict with GNU stdio extension
+sed -i -e 's/dprintf/dbgprintf/' support/include/ha-callout.h utils/statd/*.[ch]
 
 %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
+%{__libtoolize}
 %{__aclocal} -I aclocal
 %{__autoconf}
+%{__autoheader}
 %{__automake}
 %configure \
-%if %{with nfs4}
-       --enable-gss \
-       --with-krb5=%{_prefix} \
+       --enable-nfsv3 \
        --enable-nfsv4 \
+       --enable-gss \
+       --enable-mount \
+       --enable-tirpc \
+       --enable-ipv6 \
+       --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
-       --disable-gss \
-       --disable-nfsv4 \
+       --with-krb5=%{_prefix}
 %endif
-       --enable-nfsv3 \
-       --enable-secure-statd \
-       --with-statedir=/var/lib/nfs \
-       --with-tcp-wrappers
 
 %{__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} \
+install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig} \
        $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery}
 
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
-install tools/rpcdebug/rpcdebug $RPM_BUILD_ROOT/sbin
-install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir}/
+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 %{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 %{SOURCE8} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
-install %{SOURCE7} $RPM_BUILD_ROOT/etc/sysconfig/rquotad
-install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
+install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
+install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
+install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
+install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
+install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
 
 > $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,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
+rm $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{svcgssd,gssd,idmapd}.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 sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.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
@@ -254,26 +258,38 @@ rm -rf $RPM_BUILD_ROOT
 %post
 /sbin/chkconfig --add nfs
 %service nfs restart "NFS daemon"
+/sbin/chkconfig --add svcgssd
+%service svcgssd restart "RPC svcgssd"
 
 %preun
 if [ "$1" = "0" ]; then
        %service nfs stop
        /sbin/chkconfig --del nfs
+       %service svcgssd stop
+       /sbin/chkconfig --del svcgssd
 fi
 
 %post clients
 /sbin/chkconfig --add nfsfs
 %service nfsfs restart
+/sbin/chkconfig --add gssd
+%service gssd restart "RPC gssd"
 
 %preun clients
 if [ "$1" = "0" ]; then
        %service nfsfs stop
        /sbin/chkconfig --del nfsfs
+       %service gssd stop
+       /sbin/chkconfig --del gssd
 fi
 
+%pre lock
+%groupadd -g 191 rpcstatd
+%useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
+
 %post lock
 /sbin/chkconfig --add nfslock
-%service nfslock restart "nfslock daemon"
+%service nfslock restart "RPC statd"
 
 %preun lock
 if [ "$1" = "0" ]; then
@@ -281,21 +297,39 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del nfslock
 fi
 
-%post rquotad
-/sbin/chkconfig --add rquotad
-%service rquotad restart "NFS quota daemon"
+%postun lock
+if [ "$1" = "0" ]; then
+       %userremove rpcstatd
+       %groupremove rpcstatd
+fi
+
+%post common
+/sbin/chkconfig --add idmapd
+%service idmapd restart "RPC idmapd"
 
-%preun rquotad
+%preun common
 if [ "$1" = "0" ]; then
-       %service rquotad stop
-       /sbin/chkconfig --del rquotad
+       %service idmapd stop
+       /sbin/chkconfig --del idmapd
 fi
 
-%triggerpostun clients -- %{name}-clients < 1.0.10-1.2
+%triggerpostun -- %{name} < 1.1.0-0.rc1.1
+/sbin/chkconfig nfs reset
+/sbin/chkconfig svcgssd reset
+
+%triggerpostun lock -- %{name}-lock < 1.1.0-0.rc1.1
+/sbin/chkconfig nfslock reset
+
+%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
+/sbin/chkconfig gssd reset
+
+%triggerpostun common -- %{name}-common < 1.1.0-0.rc1.1
+/sbin/chkconfig idmapd reset
 
 %files
 %defattr(644,root,root,755)
@@ -323,22 +357,24 @@ fi
 %{_mandir}/man8/nfsstat.8*
 %{_mandir}/man8/rpc.mountd.8*
 %{_mandir}/man8/rpc.nfsd.8*
-%if %{with nfs4}
+%{_mandir}/man8/rpcdebug.8*
+%attr(754,root,root) /etc/rc.d/init.d/svcgssd
 %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(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
+%attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
+%attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
+%attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
 %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*
-%config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/state
+%{_mandir}/man8/*statd.8*
+%{_mandir}/man8/*sm-notify.8*
 
 %files clients
 %defattr(644,root,root,755)
@@ -346,28 +382,23 @@ fi
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
 %attr(755,root,root) %{_sbindir}/showmount
 %{_mandir}/man8/showmount.8*
-
-%if %{with nfs4}
+%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}/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) %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}
+%{_mandir}/man5/nfs*
+%attr(754,root,root) /etc/rc.d/init.d/idmapd
 %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
This page took 0.060416 seconds and 4 git commands to generate.