3 %bcond_with krb5 # build with MIT Kerberos (+libgssglue) instead of Heimdal
4 %bcond_without tirpc # use librpcsecgss instead of libtirpc
6 Summary: Kernel NFS server
7 Summary(pl.UTF-8): Działający na poziomie jądra serwer NFS
8 Summary(pt_BR.UTF-8): Os utilitários para o cliente e servidor NFS do Linux
9 Summary(ru.UTF-8): Утилиты для NFS и демоны поддержки для NFS-сервера ядра
10 Summary(uk.UTF-8): Утиліти для NFS та демони підтримки для NFS-сервера ядра
15 Group: Networking/Daemons
16 #Source0: http://www.kernel.org/pub/linux/utils/nfs/%{name}-%{version}.tar.bz2
17 Source0: http://downloads.sourceforge.net/nfs/%{name}-%{version}.tar.bz2
18 # Source0-md5: 3b5ca797197765dc0c3a4122720c7716
19 #Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
20 Source1: nfs.doc.tar.gz
21 # Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
25 Source5: rpcidmapd.init
27 Source7: rpcsvcgssd.init
28 Source8: nfs.sysconfig
29 Source9: nfslock.sysconfig
30 Source10: nfsfs.sysconfig
31 Source11: blkmapd.init
33 Source100: proc-fs-nfsd.mount
34 Source101: var-lib-nfs-rpc_pipefs.mount
35 Source102: nfsd.service
36 Source103: nfs-blkmapd.service
37 Source104: nfs-exportfs.service
38 Source105: nfs-gssd.service
39 Source106: nfs-idmapd.service
40 Source107: nfs-lock.service
41 Source108: nfs-mountd.service
42 Source109: nfs-svcgssd.service
43 Source110: nfsd.postconfig
44 Source111: nfsd.preconfig
45 Source112: nfs-lock.preconfig
46 Patch0: %{name}-install.patch
47 Patch1: %{name}-statdpath.patch
48 Patch2: %{name}-subsys.patch
49 Patch3: %{name}-union-mount.patch
50 Patch4: %{name}-heimdal.patch
51 URL: http://nfs.sourceforge.net/
52 BuildRequires: autoconf >= 2.59
53 BuildRequires: automake
55 BuildRequires: device-mapper-devel
56 BuildRequires: keyutils-devel
57 BuildRequires: libblkid-devel >= 1.40
58 BuildRequires: libcap-devel
59 BuildRequires: libevent-devel >= 1.2
60 BuildRequires: libmount-devel
61 BuildRequires: libnfsidmap-devel >= 0.24
62 BuildRequires: libtool
63 BuildRequires: libwrap-devel
64 BuildRequires: pkgconfig
65 BuildRequires: rpm-pythonprov
67 BuildRequires: libtirpc-devel >= 1:0.1.10-4
69 BuildRequires: librpcsecgss-devel >= 0.16
72 BuildRequires: krb5-devel >= 1.6
73 BuildRequires: libgssglue-devel >= 0.3
75 BuildRequires: heimdal-devel >= 1.0
77 BuildRequires: rpmbuild(macros) >= 1.623
78 # lucid context fields mismatch with current version of spkm3.h
79 BuildConflicts: gss_mech_spkm3-devel
80 Requires(post): fileutils
81 Requires(post): sed >= 4.0
82 Requires(post,preun): /sbin/chkconfig
83 Requires(post,preun,postun): systemd-units >= 38
84 Requires: %{name}-common = %{version}-%{release}
85 Requires: libevent >= 2.0.14-2
86 Requires: rc-scripts >= 0.4.1.5
87 Requires: rpcbind >= 0.1.7
88 Requires: setup >= 2.4.6-7
89 Requires: systemd-units >= 0.38
93 Obsoletes: nfs-utils-systemd
95 Conflicts: kernel < 2.2.5
96 Conflicts: krb5-common < 1.7
98 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
101 This is the *new* kernel NFS server and related tools. It provides a
102 much higher level of performance than the traditional Linux user-land
105 %description -l pl.UTF-8
106 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
107 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
108 tradycyjny, działający na poziomie użytkownika serwer NFS.
110 %description -l pt_BR.UTF-8
111 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
114 %description -l ru.UTF-8
115 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
116 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
117 производительность, чем традиционные Linux NFS-сервера, используемые
118 большинством пользователей.
120 %description -l uk.UTF-8
121 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
122 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
123 традиційні Linux NFS-сервери, які використовує більшість користувачів.
126 Summary: Clients for connecting to a remote NFS server
127 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
129 Requires(post,preun): /sbin/chkconfig
130 Requires(post,preun,postun): systemd-units >= 38
131 Requires: %{name}-common = %{version}-%{release}
134 Requires: systemd-units >= 0.38
135 Provides: nfs-server-clients
137 Obsoletes: knfsd-clients
138 Obsoletes: nfs-server-clients
139 Obsoletes: nfs-utils-clients-systemd
141 Conflicts: krb5-common < 1.7
144 The nfs-server-clients package contains the showmount program.
145 Showmount queries the mount daemon on a remote host for information
146 about the NFS (Network File System) server on the remote host. For
147 example, showmount can display the clients which are mounted on that
148 host. This package is not needed to mount NFS volumes.
150 %description clients -l pl.UTF-8
151 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
152 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
153 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
154 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
155 zamountowania zasobów NFS.
158 Summary: Common programs for NFS
159 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
161 Requires(post,preun): /sbin/chkconfig
162 Requires(post,preun,postun): systemd-units >= 38
163 Provides: user(rpcstatd)
164 Provides: group(rpcstatd)
166 Provides: nfs-utils-lock
167 Requires: libnfsidmap >= 0.25-3
169 Requires: rpcbind >= 0.1.7
170 Requires: systemd-units >= 0.38
171 Obsoletes: nfs-utils-common-systemd
172 Obsoletes: nfs-utils-lock
173 Obsoletes: knfsd-lock
175 Conflicts: mount < 2.13-0.pre7.1
178 Common programs for NFS.
180 %description common -l pl.UTF-8
181 Wspólne programy do obsługi NFS.
193 %{__aclocal} -I aclocal
203 --enable-mountconfig \
204 --enable-libmount-mount \
212 --with-statdpath=/var/lib/nfs/statd \
213 --with-statedir=/var/lib/nfs \
214 --with-statduser=rpcstatd \
215 --with-start-statd=/sbin/start-statd \
216 --with-tcp-wrappers \
222 rm -rf $RPM_BUILD_ROOT
223 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
224 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
225 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
228 DESTDIR=$RPM_BUILD_ROOT
230 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
232 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
234 # mount.nfs calls this script when mounting a filesystem with locking
235 # enabled, but when statd does not seem to be running (based on
236 # /var/run/rpc.statd.pid).
237 exec /sbin/rpc.statd --no-notify
240 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
241 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
243 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
244 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
247 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
248 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
249 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
250 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
251 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
252 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
253 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
254 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
255 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
256 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
258 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
260 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
261 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
262 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
263 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
264 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
265 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
266 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
267 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
268 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
269 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
270 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
271 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
272 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
274 # Disable old SysV service for systemd installs
275 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
276 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
278 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
279 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
281 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
282 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
283 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
284 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
285 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
286 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
287 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
288 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
290 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
292 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
297 rm -rf $RPM_BUILD_ROOT
300 /sbin/chkconfig --add nfs
301 %service nfs restart "NFS daemon"
302 /sbin/chkconfig --add svcgssd
303 %service svcgssd restart "RPC svcgssd"
304 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
307 if [ "$1" = "0" ]; then
309 /sbin/chkconfig --del nfs
310 %service svcgssd stop
311 /sbin/chkconfig --del svcgssd
313 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
319 /sbin/chkconfig --add nfsfs
320 %service nfsfs restart
321 /sbin/chkconfig --add gssd
322 %service gssd restart "RPC gssd"
323 /sbin/chkconfig --add blkmapd
324 %service blkmapd restart "pNFS blkmapd"
325 %systemd_post blkmapd.service gssd.service
328 if [ "$1" = "0" ]; then
330 /sbin/chkconfig --del nfsfs
332 /sbin/chkconfig --del gssd
333 %service blkmapd stop
334 /sbin/chkconfig --del blkmapd
336 %systemd_preun blkmapd.service gssd.service
342 %groupadd -g 191 rpcstatd
343 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
346 /sbin/chkconfig --add idmapd
347 %service idmapd restart "RPC idmapd"
348 /sbin/chkconfig --add nfslock
349 %service nfslock restart "RPC statd"
350 %systemd_post idmapd.service nfslock.service
353 if [ "$1" = "0" ]; then
355 /sbin/chkconfig --del idmapd
356 %service nfslock stop
357 /sbin/chkconfig --del nfslock
359 %systemd_preun idmapd.service nfslock.service
362 if [ "$1" = "0" ]; then
364 %groupremove rpcstatd
368 %triggerpostun -- %{name} < 1.2.5-7
369 if [ -f /etc/sysconfig/nfsd ]; then
370 . /etc/sysconfig/nfsd
372 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
373 for vers in 2 3 4 ; do
374 __var=$(eval echo \$NFSv$vers)
375 [ -n "$__var" -a "$__var" != "yes" ] && \
376 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
378 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
379 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
380 echo >>/etc/sysconfig/nfsd
381 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
382 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
385 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
387 %triggerpostun clients -- %{name}-clients < 1.2.5-7
388 %systemd_trigger blkmapd.service gssd.service
390 %triggerpostun common -- %{name}-lock < 1.2.5-3
391 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
392 mv -f /etc/sysconfig/nfslock{,.rpmnew}
393 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
396 %triggerpostun common -- %{name}-common < 1.2.5-7
397 if [ -f /etc/sysconfig/nfslock ]; then
398 . /etc/sysconfig/nfslock
399 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
400 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
401 if [ -n "$STATDOPTS" ]; then
402 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
403 echo >>/etc/sysconfig/nfslock
404 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
405 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
408 %systemd_trigger idmapd.service nfslock.service
411 %defattr(644,root,root,755)
412 %doc ChangeLog README html
413 %attr(755,root,root) /sbin/rpcdebug
414 %attr(755,root,root) /sbin/fsck.nfs
415 %attr(755,root,root) %{_sbindir}/exportfs
416 %attr(755,root,root) %{_sbindir}/rpc.mountd
417 %attr(755,root,root) %{_sbindir}/rpc.nfsd
418 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
419 %attr(755,root,root) %{_sbindir}/nfsstat
420 %attr(755,root,root) %{_sbindir}/nfsdcltrack
422 %attr(754,root,root) /etc/rc.d/init.d/nfs
423 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
425 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
426 %dir %{_sysconfdir}/exports.d
428 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
429 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
430 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
431 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
433 %{_mandir}/man5/exports.5*
434 %{_mandir}/man7/nfsd.7*
435 %{_mandir}/man8/exportfs.8*
436 %{_mandir}/man8/mountd.8*
437 %{_mandir}/man8/nfsd.8*
438 %{_mandir}/man8/nfsdcltrack.8*
439 %{_mandir}/man8/nfsstat.8*
440 %{_mandir}/man8/rpc.mountd.8*
441 %{_mandir}/man8/rpc.nfsd.8*
442 %{_mandir}/man8/rpc.svcgssd.8*
443 %{_mandir}/man8/rpcdebug.8*
444 %{_mandir}/man8/svcgssd.8*
446 %{systemdunitdir}/nfs.service
447 %{systemdunitdir}/nfsd.service
448 %{systemdunitdir}/nfsd-exportfs.service
449 %{systemdunitdir}/nfsd-mountd.service
450 %{systemdunitdir}/svcgssd.service
451 %{systemdunitdir}/proc-fs-nfsd.mount
452 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
453 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
456 %defattr(644,root,root,755)
457 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
458 %attr(754,root,root) /etc/rc.d/init.d/gssd
459 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
460 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
461 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
462 %attr(4755,root,root) /sbin/mount.nfs
463 %attr(4755,root,root) /sbin/umount.nfs
464 %attr(4755,root,root) /sbin/mount.nfs4
465 %attr(4755,root,root) /sbin/umount.nfs4
466 %attr(755,root,root) /sbin/blkmapd
467 %attr(755,root,root) /sbin/osd_login
468 %attr(755,root,root) /sbin/rpc.gssd
469 %attr(755,root,root) %{_sbindir}/mountstats
470 %attr(755,root,root) %{_sbindir}/nfsiostat
471 %attr(755,root,root) %{_sbindir}/showmount
472 %{_mandir}/man5/nfsmount.conf.5*
473 %{_mandir}/man8/blkmapd.8*
474 %{_mandir}/man8/gssd.8*
475 %{_mandir}/man8/mount.nfs.8*
476 %{_mandir}/man8/mountstats.8*
477 %{_mandir}/man8/nfsiostat.8*
478 %{_mandir}/man8/rpc.gssd.8*
479 %{_mandir}/man8/showmount.8*
480 %{_mandir}/man8/umount.nfs.8*
482 %{systemdunitdir}/nfsfs.service
483 %{systemdunitdir}/blkmapd.service
484 %{systemdunitdir}/gssd.service
487 %defattr(644,root,root,755)
488 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
489 %attr(754,root,root) /etc/rc.d/init.d/idmapd
490 %attr(754,root,root) /etc/rc.d/init.d/nfslock
491 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
492 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
493 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
494 %attr(755,root,root) %{_sbindir}/sm-notify
495 %attr(755,root,root) /sbin/nfsidmap
496 %attr(755,root,root) /sbin/rpc.idmapd
497 %attr(755,root,root) /sbin/rpc.statd
498 %attr(755,root,root) /sbin/start-statd
500 %dir %{_var}/lib/nfs/rpc_pipefs
501 %dir %{_var}/lib/nfs/v4recovery
502 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
503 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
504 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
505 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
506 %{_mandir}/man5/nfs.5*
507 %{_mandir}/man8/idmapd.8*
508 %{_mandir}/man8/nfsidmap.8*
509 %{_mandir}/man8/rpc.idmapd.8*
510 %{_mandir}/man8/rpc.sm-notify.8*
511 %{_mandir}/man8/rpc.statd.8*
512 %{_mandir}/man8/sm-notify.8*
513 %{_mandir}/man8/statd.8*
515 %{systemdunitdir}/idmapd.service
516 %{systemdunitdir}/nfslock.service
517 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
518 %dir %{_datadir}/nfs-utils
519 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig