]> git.pld-linux.org Git - packages/nfs-utils.git/blobdiff - nfs-utils.spec
- build toolchain cleanups from Chuck Lever's git
[packages/nfs-utils.git] / nfs-utils.spec
index 4a84370db5024515b720badb57a0631d9052f9b8..43798479a235f2da0766bccef4901022d7757eea 100644 (file)
@@ -1,8 +1,10 @@
 # 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_without mount           # don't build mount.nfs program
 #
 Summary:       Kernel NFS server
 Summary(pl.UTF-8):     Działający na poziomie jądra serwer NFS
@@ -10,48 +12,53 @@ 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.10
-Release:       8
-License:       GPL
+Version:       1.1.4
+Release:       0.1
+License:       GPL v2
 Group:         Networking/Daemons
-Source0:       http://dl.sourceforge.net/nfs/%{name}-%{version}.tar.gz
-# Source0-md5: 1949634d0dc896696d8a880bdca622c8
-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: d7bc73915031b3291bbfd60984def329
+#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}-nolibs.patch
-Patch3:                %{name}-heimdal.patch
-Patch4:                %{name}-heimdal-internals.patch
-# http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/
-Patch5:                %{name}-1.0.10-CITI_NFS4_ALL-1.dif
+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
 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: libnfsidmap-devel
-BuildRequires: librpcsecgss-devel >= 0.11-3
+BuildRequires: libgssglue-devel >= 0.1
+BuildRequires: libnfsidmap-devel >= 0.21-3
+BuildRequires: librpcsecgss-devel >= 0.16
 %endif
+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:      rc-scripts >= 0.4.1.5
 Requires:      setup >= 2.4.6-7
 Provides:      nfsdaemon
 Obsoletes:     knfsd
@@ -119,9 +126,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:      rc-scripts
+Provides:      group(rpcstatd)
+Provides:      user(rpcstatd)
 Provides:      nfslockd
 Obsoletes:     knfsd-lock
 Obsoletes:     nfslockd
@@ -134,30 +142,14 @@ 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
+%if %{with nfs4}
+Requires:      libnfsidmap >= 0.21-3
+%endif
+Conflicts:     mount < 2.13-0.pre7.1
 
 %description common
 Common programs for NFS.
@@ -171,16 +163,15 @@ Wspólne programy do obsługi NFS.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
-%patch4 -p1
-%patch5 -p1
+
+# 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}
@@ -191,6 +182,7 @@ sed -i -e 's#libroken.a#libroken.so#g' aclocal/kerberos5.m4
        --disable-gss \
        --disable-nfsv4 \
 %endif
+       %{?with_mount:--enable-mount} \
        --enable-nfsv3 \
        --enable-secure-statd \
        --with-statedir=/var/lib/nfs \
@@ -202,45 +194,52 @@ sed -i -e 's#libroken.a#libroken.so#g' aclocal/kerberos5.m4
 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} \
-       $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery}
+       $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery,statd}
 
 %{__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
 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
+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
@@ -249,26 +248,46 @@ rm -rf $RPM_BUILD_ROOT
 %post
 /sbin/chkconfig --add nfs
 %service nfs restart "NFS daemon"
+%if %{with nfs4}
+/sbin/chkconfig --add svcgssd
+%service svcgssd restart "RPC svcgssd"
+%endif
 
 %preun
 if [ "$1" = "0" ]; then
        %service nfs stop
        /sbin/chkconfig --del nfs
+%if %{with nfs4}
+       %service svcgssd stop
+       /sbin/chkconfig --del svcgssd
+%endif
 fi
 
 %post clients
 /sbin/chkconfig --add nfsfs
 %service nfsfs restart
+%if %{with nfs4}
+/sbin/chkconfig --add gssd
+%service gssd restart "RPC gssd"
+%endif
 
 %preun clients
 if [ "$1" = "0" ]; then
        %service nfsfs stop
        /sbin/chkconfig --del nfsfs
+%if %{with nfs4}
+       %service gssd stop
+       /sbin/chkconfig --del gssd
+%endif
 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
@@ -276,21 +295,47 @@ 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
+
+%if %{with nfs4}
+%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
+%endif
+
+%triggerpostun -- %{name} < 1.1.0-0.rc1.1
+/sbin/chkconfig nfs reset
+%if %{with nfs4}
+/sbin/chkconfig svcgssd reset
+%endif
 
-%triggerpostun clients -- %{name}-clients < 1.0.10-1.2
+%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
+%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)
@@ -301,10 +346,6 @@ fi
 %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
 
@@ -318,29 +359,27 @@ fi
 %{_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}/man8/rpcdebug.8*
 %if %{with nfs4}
+%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(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
@@ -349,28 +388,29 @@ fi
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
 %attr(755,root,root) %{_sbindir}/showmount
 %{_mandir}/man8/showmount.8*
-
+%if %{with mount}
+%attr(4755,root,root) /sbin/mount.nfs
+%attr(4755,root,root) /sbin/mount.nfs4
+%attr(4755,root,root) /sbin/umount.nfs
+%attr(4755,root,root) /sbin/umount.nfs4
+%{_mandir}/man8/*mount.nfs.8*
+%endif
 %if %{with nfs4}
+%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
+%{_mandir}/man5/nfs*
 %if %{with nfs4}
+%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.047544 seconds and 4 git commands to generate.