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: 8395ac770720b83c5c469f88306d7765
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
32 Source100: proc-fs-nfsd.mount
33 Source101: var-lib-nfs-rpc_pipefs.mount
34 Source102: nfsd.service
35 Source103: nfs-blkmapd.service
36 Source104: nfs-exportfs.service
37 Source105: nfs-gssd.service
38 Source106: nfs-idmapd.service
39 Source107: nfs-lock.service
40 Source108: nfs-mountd.service
41 Source109: nfs-svcgssd.service
42 Source110: nfsd.postconfig
43 Source111: nfsd.preconfig
44 Source112: nfs-lock.preconfig
45 Patch0: %{name}-install.patch
46 Patch1: %{name}-statdpath.patch
47 Patch2: %{name}-subsys.patch
48 Patch3: %{name}-union-mount.patch
49 Patch4: %{name}-heimdal.patch
50 Patch5: %{name}-heimdal-kcm.patch
51 URL: http://nfs.sourceforge.net/
52 BuildRequires: autoconf >= 2.59
53 BuildRequires: automake
55 BuildRequires: keyutils-devel
56 BuildRequires: libblkid-devel >= 1.40
57 BuildRequires: libmount-devel
58 BuildRequires: libcap-devel
59 BuildRequires: device-mapper-devel
60 BuildRequires: libevent-devel >= 1.2
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: %{name}-common = %{version}-%{release}
84 Requires: libevent >= 2.0.14-2
85 Requires: rc-scripts >= 0.4.1.5
86 Requires: rpcbind >= 0.1.7
87 Requires: setup >= 2.4.6-7
88 Requires: systemd-units >= 0.38
92 Obsoletes: nfs-utils-systemd
94 Conflicts: kernel < 2.2.5
95 Conflicts: krb5-common < 1.7
97 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
100 This is the *new* kernel NFS server and related tools. It provides a
101 much higher level of performance than the traditional Linux user-land
104 %description -l pl.UTF-8
105 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
106 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
107 tradycyjny, działający na poziomie użytkownika serwer NFS.
109 %description -l pt_BR.UTF-8
110 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
113 %description -l ru.UTF-8
114 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
115 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
116 производительность, чем традиционные Linux NFS-сервера, используемые
117 большинством пользователей.
119 %description -l uk.UTF-8
120 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
121 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
122 традиційні Linux NFS-сервери, які використовує більшість користувачів.
125 Summary: Clients for connecting to a remote NFS server
126 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
128 Requires(post,preun): /sbin/chkconfig
129 Requires: %{name}-common = %{version}-%{release}
132 Requires: systemd-units >= 0.38
133 Provides: nfs-server-clients
135 Obsoletes: knfsd-clients
136 Obsoletes: nfs-server-clients
137 Obsoletes: nfs-utils-clients-systemd
139 Conflicts: krb5-common < 1.7
142 The nfs-server-clients package contains the showmount program.
143 Showmount queries the mount daemon on a remote host for information
144 about the NFS (Network File System) server on the remote host. For
145 example, showmount can display the clients which are mounted on that
146 host. This package is not needed to mount NFS volumes.
148 %description clients -l pl.UTF-8
149 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
150 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
151 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
152 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
153 zamountowania zasobów NFS.
156 Summary: Common programs for NFS
157 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
159 Requires(post,preun): /sbin/chkconfig
160 Provides: user(rpcstatd)
161 Provides: group(rpcstatd)
163 Provides: nfs-utils-lock
164 Requires: libnfsidmap >= 0.25-3
166 Requires: rpcbind >= 0.1.7
167 Requires: systemd-units >= 0.38
168 Obsoletes: nfs-utils-common-systemd
169 Obsoletes: nfs-utils-lock
170 Obsoletes: knfsd-lock
172 Conflicts: mount < 2.13-0.pre7.1
175 Common programs for NFS.
177 %description common -l pl.UTF-8
178 Wspólne programy do obsługi NFS.
191 %{__aclocal} -I aclocal
201 --enable-mountconfig \
202 --enable-libmount-mount \
210 --with-statdpath=/var/lib/nfs/statd \
211 --with-statedir=/var/lib/nfs \
212 --with-statduser=rpcstatd \
213 --with-start-statd=/sbin/start-statd \
214 --with-tcp-wrappers \
220 rm -rf $RPM_BUILD_ROOT
221 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d} \
222 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
223 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
226 DESTDIR=$RPM_BUILD_ROOT
228 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
230 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
232 # mount.nfs calls this script when mounting a filesystem with locking
233 # enabled, but when statd does not seem to be running (based on
234 # /var/run/rpc.statd.pid).
235 exec /sbin/rpc.statd --no-notify
238 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
239 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
241 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
242 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
245 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
246 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
247 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
248 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
249 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
250 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
251 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
252 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
253 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
254 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
256 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
257 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
258 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
259 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
260 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
261 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
262 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
263 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
264 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
265 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
266 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
267 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
268 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
270 # Disable old SysV service for systemd installs
271 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
272 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
274 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
275 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
277 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
278 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
279 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
280 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
281 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
282 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
283 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
284 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
286 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
288 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
293 rm -rf $RPM_BUILD_ROOT
296 /sbin/chkconfig --add nfs
297 %service nfs restart "NFS daemon"
298 /sbin/chkconfig --add svcgssd
299 %service svcgssd restart "RPC svcgssd"
300 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
303 if [ "$1" = "0" ]; then
305 /sbin/chkconfig --del nfs
306 %service svcgssd stop
307 /sbin/chkconfig --del svcgssd
309 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
315 /sbin/chkconfig --add nfsfs
316 %service nfsfs restart
317 /sbin/chkconfig --add gssd
318 %service gssd restart "RPC gssd"
319 /sbin/chkconfig --add blkmapd
320 %service blkmapd restart "pNFS blkmapd"
321 %systemd_post blkmapd.service gssd.service
324 if [ "$1" = "0" ]; then
326 /sbin/chkconfig --del nfsfs
328 /sbin/chkconfig --del gssd
329 %service blkmapd stop
330 /sbin/chkconfig --del blkmapd
332 %systemd_preun blkmapd.service gssd.service
338 %groupadd -g 191 rpcstatd
339 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
342 /sbin/chkconfig --add idmapd
343 %service idmapd restart "RPC idmapd"
344 /sbin/chkconfig --add nfslock
345 %service nfslock restart "RPC statd"
346 %systemd_post idmapd.service nfslock.service
349 if [ "$1" = "0" ]; then
351 /sbin/chkconfig --del idmapd
352 %service nfslock stop
353 /sbin/chkconfig --del nfslock
355 %systemd_preun idmapd.service nfslock.service
358 if [ "$1" = "0" ]; then
360 %groupremove rpcstatd
364 %triggerpostun -- %{name} < 1.2.5-7
365 if [ -f /etc/sysconfig/nfsd ]; then
366 . /etc/sysconfig/nfsd
368 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
369 for vers in 2 3 4 ; do
370 __var=$(eval echo \$NFSv$vers)
371 [ -n "$__var" -a "$__var" != "yes" ] && \
372 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
374 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
375 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
376 echo >>/etc/sysconfig/nfsd
377 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
378 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
381 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
383 %triggerpostun clients -- %{name}-clients < 1.2.5-7
384 %systemd_trigger blkmapd.service gssd.service
386 %triggerpostun common -- %{name}-lock < 1.2.5-3
387 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
388 mv -f /etc/sysconfig/nfslock{,.rpmnew}
389 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
392 %triggerpostun common -- %{name}-common < 1.2.5-7
393 if [ -f /etc/sysconfig/nfslock ]; then
394 . /etc/sysconfig/nfslock
395 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
396 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
397 if [ -n "$STATDOPTS" ]; then
398 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
399 echo >>/etc/sysconfig/nfslock
400 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
401 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
404 %systemd_trigger idmapd.service nfslock.service
407 %defattr(644,root,root,755)
408 %doc ChangeLog README html
409 %attr(755,root,root) /sbin/rpcdebug
410 %attr(755,root,root) /sbin/fsck.nfs
411 %attr(755,root,root) %{_sbindir}/exportfs
412 %attr(755,root,root) %{_sbindir}/rpc.mountd
413 %attr(755,root,root) %{_sbindir}/rpc.nfsd
414 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
415 %attr(755,root,root) %{_sbindir}/nfsstat
417 %attr(754,root,root) /etc/rc.d/init.d/nfs
418 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
420 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
421 %dir %{_sysconfdir}/exports.d
423 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
424 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
425 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
426 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
428 %{_mandir}/man5/exports.5*
429 %{_mandir}/man7/nfsd.7*
430 %{_mandir}/man8/exportfs.8*
431 %{_mandir}/man8/mountd.8*
432 %{_mandir}/man8/nfsd.8*
433 %{_mandir}/man8/nfsstat.8*
434 %{_mandir}/man8/rpc.mountd.8*
435 %{_mandir}/man8/rpc.nfsd.8*
436 %{_mandir}/man8/rpc.svcgssd.8*
437 %{_mandir}/man8/rpcdebug.8*
438 %{_mandir}/man8/svcgssd.8*
440 %{systemdunitdir}/nfs.service
441 %{systemdunitdir}/nfsd.service
442 %{systemdunitdir}/nfsd-exportfs.service
443 %{systemdunitdir}/nfsd-mountd.service
444 %{systemdunitdir}/svcgssd.service
445 %{systemdunitdir}/proc-fs-nfsd.mount
446 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
447 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
450 %defattr(644,root,root,755)
451 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
452 %attr(754,root,root) /etc/rc.d/init.d/gssd
453 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
454 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
455 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
456 %attr(4755,root,root) /sbin/mount.nfs
457 %attr(4755,root,root) /sbin/umount.nfs
458 %attr(4755,root,root) /sbin/mount.nfs4
459 %attr(4755,root,root) /sbin/umount.nfs4
460 %attr(755,root,root) /sbin/blkmapd
461 %attr(755,root,root) /sbin/rpc.gssd
462 %attr(755,root,root) %{_sbindir}/mountstats
463 %attr(755,root,root) %{_sbindir}/nfsiostat
464 %attr(755,root,root) %{_sbindir}/showmount
465 %{_mandir}/man5/nfsmount.conf.5*
466 %{_mandir}/man8/blkmapd.8*
467 %{_mandir}/man8/gssd.8*
468 %{_mandir}/man8/mount.nfs.8*
469 %{_mandir}/man8/mountstats.8*
470 %{_mandir}/man8/nfsiostat.8*
471 %{_mandir}/man8/rpc.gssd.8*
472 %{_mandir}/man8/showmount.8*
473 %{_mandir}/man8/umount.nfs.8*
475 %{systemdunitdir}/nfsfs.service
476 %{systemdunitdir}/blkmapd.service
477 %{systemdunitdir}/gssd.service
480 %defattr(644,root,root,755)
481 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
482 %attr(754,root,root) /etc/rc.d/init.d/idmapd
483 %attr(754,root,root) /etc/rc.d/init.d/nfslock
484 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
485 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
486 %attr(755,root,root) %{_sbindir}/sm-notify
487 %attr(755,root,root) /sbin/nfsidmap
488 %attr(755,root,root) /sbin/rpc.idmapd
489 %attr(755,root,root) /sbin/rpc.statd
490 %attr(755,root,root) /sbin/start-statd
492 %dir %{_var}/lib/nfs/rpc_pipefs
493 %dir %{_var}/lib/nfs/v4recovery
494 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
495 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
496 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
497 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
498 %{_mandir}/man5/nfs.5*
499 %{_mandir}/man8/idmapd.8*
500 %{_mandir}/man8/nfsidmap.8*
501 %{_mandir}/man8/rpc.idmapd.8*
502 %{_mandir}/man8/rpc.sm-notify.8*
503 %{_mandir}/man8/rpc.statd.8*
504 %{_mandir}/man8/sm-notify.8*
505 %{_mandir}/man8/statd.8*
507 %{systemdunitdir}/idmapd.service
508 %{systemdunitdir}/nfslock.service
509 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
510 %dir %{_datadir}/nfs-utils
511 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig