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
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 Patch5: %{name}-heimdal-kcm.patch
52 URL: http://nfs.sourceforge.net/
53 BuildRequires: autoconf >= 2.59
54 BuildRequires: automake
56 BuildRequires: keyutils-devel
57 BuildRequires: libblkid-devel >= 1.40
58 BuildRequires: libmount-devel
59 BuildRequires: libcap-devel
60 BuildRequires: device-mapper-devel
61 BuildRequires: libevent-devel >= 1.2
62 BuildRequires: libnfsidmap-devel >= 0.24
63 BuildRequires: libtool
64 BuildRequires: libwrap-devel
65 BuildRequires: pkgconfig
66 BuildRequires: rpm-pythonprov
68 BuildRequires: libtirpc-devel >= 1:0.1.10-4
70 BuildRequires: librpcsecgss-devel >= 0.16
73 BuildRequires: krb5-devel >= 1.6
74 BuildRequires: libgssglue-devel >= 0.3
76 BuildRequires: heimdal-devel >= 1.0
78 BuildRequires: rpmbuild(macros) >= 1.623
79 # lucid context fields mismatch with current version of spkm3.h
80 BuildConflicts: gss_mech_spkm3-devel
81 Requires(post): fileutils
82 Requires(post): sed >= 4.0
83 Requires(post,preun): /sbin/chkconfig
84 Requires(post,preun,postun): systemd-units >= 38
85 Requires: %{name}-common = %{version}-%{release}
86 Requires: libevent >= 2.0.14-2
87 Requires: rc-scripts >= 0.4.1.5
88 Requires: rpcbind >= 0.1.7
89 Requires: setup >= 2.4.6-7
90 Requires: systemd-units >= 0.38
94 Obsoletes: nfs-utils-systemd
96 Conflicts: kernel < 2.2.5
97 Conflicts: krb5-common < 1.7
99 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
102 This is the *new* kernel NFS server and related tools. It provides a
103 much higher level of performance than the traditional Linux user-land
106 %description -l pl.UTF-8
107 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
108 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
109 tradycyjny, działający na poziomie użytkownika serwer NFS.
111 %description -l pt_BR.UTF-8
112 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
115 %description -l ru.UTF-8
116 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
117 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
118 производительность, чем традиционные Linux NFS-сервера, используемые
119 большинством пользователей.
121 %description -l uk.UTF-8
122 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
123 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
124 традиційні Linux NFS-сервери, які використовує більшість користувачів.
127 Summary: Clients for connecting to a remote NFS server
128 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
130 Requires(post,preun): /sbin/chkconfig
131 Requires(post,preun,postun): systemd-units >= 38
132 Requires: %{name}-common = %{version}-%{release}
135 Requires: systemd-units >= 0.38
136 Provides: nfs-server-clients
138 Obsoletes: knfsd-clients
139 Obsoletes: nfs-server-clients
140 Obsoletes: nfs-utils-clients-systemd
142 Conflicts: krb5-common < 1.7
145 The nfs-server-clients package contains the showmount program.
146 Showmount queries the mount daemon on a remote host for information
147 about the NFS (Network File System) server on the remote host. For
148 example, showmount can display the clients which are mounted on that
149 host. This package is not needed to mount NFS volumes.
151 %description clients -l pl.UTF-8
152 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
153 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
154 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
155 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
156 zamountowania zasobów NFS.
159 Summary: Common programs for NFS
160 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
162 Requires(post,preun): /sbin/chkconfig
163 Requires(post,preun,postun): systemd-units >= 38
164 Provides: user(rpcstatd)
165 Provides: group(rpcstatd)
167 Provides: nfs-utils-lock
168 Requires: libnfsidmap >= 0.25-3
170 Requires: rpcbind >= 0.1.7
171 Requires: systemd-units >= 0.38
172 Obsoletes: nfs-utils-common-systemd
173 Obsoletes: nfs-utils-lock
174 Obsoletes: knfsd-lock
176 Conflicts: mount < 2.13-0.pre7.1
179 Common programs for NFS.
181 %description common -l pl.UTF-8
182 Wspólne programy do obsługi NFS.
195 %{__aclocal} -I aclocal
205 --enable-mountconfig \
206 --enable-libmount-mount \
214 --with-statdpath=/var/lib/nfs/statd \
215 --with-statedir=/var/lib/nfs \
216 --with-statduser=rpcstatd \
217 --with-start-statd=/sbin/start-statd \
218 --with-tcp-wrappers \
224 rm -rf $RPM_BUILD_ROOT
225 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
226 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
227 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
230 DESTDIR=$RPM_BUILD_ROOT
232 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
234 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
236 # mount.nfs calls this script when mounting a filesystem with locking
237 # enabled, but when statd does not seem to be running (based on
238 # /var/run/rpc.statd.pid).
239 exec /sbin/rpc.statd --no-notify
242 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
243 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
245 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
246 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
249 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
250 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
251 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
252 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
253 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
254 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
255 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
256 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
257 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
258 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
260 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
262 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
263 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
264 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
265 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
266 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
267 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
268 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
269 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
270 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
271 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
272 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
273 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
274 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
276 # Disable old SysV service for systemd installs
277 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
278 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
280 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
281 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
283 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
284 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
285 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
286 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
287 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
288 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
289 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
290 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
292 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
294 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
299 rm -rf $RPM_BUILD_ROOT
302 /sbin/chkconfig --add nfs
303 %service nfs restart "NFS daemon"
304 /sbin/chkconfig --add svcgssd
305 %service svcgssd restart "RPC svcgssd"
306 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
309 if [ "$1" = "0" ]; then
311 /sbin/chkconfig --del nfs
312 %service svcgssd stop
313 /sbin/chkconfig --del svcgssd
315 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
321 /sbin/chkconfig --add nfsfs
322 %service nfsfs restart
323 /sbin/chkconfig --add gssd
324 %service gssd restart "RPC gssd"
325 /sbin/chkconfig --add blkmapd
326 %service blkmapd restart "pNFS blkmapd"
327 %systemd_post blkmapd.service gssd.service
330 if [ "$1" = "0" ]; then
332 /sbin/chkconfig --del nfsfs
334 /sbin/chkconfig --del gssd
335 %service blkmapd stop
336 /sbin/chkconfig --del blkmapd
338 %systemd_preun blkmapd.service gssd.service
344 %groupadd -g 191 rpcstatd
345 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
348 /sbin/chkconfig --add idmapd
349 %service idmapd restart "RPC idmapd"
350 /sbin/chkconfig --add nfslock
351 %service nfslock restart "RPC statd"
352 %systemd_post idmapd.service nfslock.service
355 if [ "$1" = "0" ]; then
357 /sbin/chkconfig --del idmapd
358 %service nfslock stop
359 /sbin/chkconfig --del nfslock
361 %systemd_preun idmapd.service nfslock.service
364 if [ "$1" = "0" ]; then
366 %groupremove rpcstatd
370 %triggerpostun -- %{name} < 1.2.5-7
371 if [ -f /etc/sysconfig/nfsd ]; then
372 . /etc/sysconfig/nfsd
374 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
375 for vers in 2 3 4 ; do
376 __var=$(eval echo \$NFSv$vers)
377 [ -n "$__var" -a "$__var" != "yes" ] && \
378 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
380 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
381 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
382 echo >>/etc/sysconfig/nfsd
383 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
384 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
387 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
389 %triggerpostun clients -- %{name}-clients < 1.2.5-7
390 %systemd_trigger blkmapd.service gssd.service
392 %triggerpostun common -- %{name}-lock < 1.2.5-3
393 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
394 mv -f /etc/sysconfig/nfslock{,.rpmnew}
395 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
398 %triggerpostun common -- %{name}-common < 1.2.5-7
399 if [ -f /etc/sysconfig/nfslock ]; then
400 . /etc/sysconfig/nfslock
401 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
402 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
403 if [ -n "$STATDOPTS" ]; then
404 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
405 echo >>/etc/sysconfig/nfslock
406 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
407 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
410 %systemd_trigger idmapd.service nfslock.service
413 %defattr(644,root,root,755)
414 %doc ChangeLog README html
415 %attr(755,root,root) /sbin/rpcdebug
416 %attr(755,root,root) /sbin/fsck.nfs
417 %attr(755,root,root) %{_sbindir}/exportfs
418 %attr(755,root,root) %{_sbindir}/rpc.mountd
419 %attr(755,root,root) %{_sbindir}/rpc.nfsd
420 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
421 %attr(755,root,root) %{_sbindir}/nfsstat
423 %attr(754,root,root) /etc/rc.d/init.d/nfs
424 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
426 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
427 %dir %{_sysconfdir}/exports.d
429 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
430 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
431 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
432 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
434 %{_mandir}/man5/exports.5*
435 %{_mandir}/man7/nfsd.7*
436 %{_mandir}/man8/exportfs.8*
437 %{_mandir}/man8/mountd.8*
438 %{_mandir}/man8/nfsd.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/rpc.gssd
468 %attr(755,root,root) %{_sbindir}/mountstats
469 %attr(755,root,root) %{_sbindir}/nfsiostat
470 %attr(755,root,root) %{_sbindir}/showmount
471 %{_mandir}/man5/nfsmount.conf.5*
472 %{_mandir}/man8/blkmapd.8*
473 %{_mandir}/man8/gssd.8*
474 %{_mandir}/man8/mount.nfs.8*
475 %{_mandir}/man8/mountstats.8*
476 %{_mandir}/man8/nfsiostat.8*
477 %{_mandir}/man8/rpc.gssd.8*
478 %{_mandir}/man8/showmount.8*
479 %{_mandir}/man8/umount.nfs.8*
481 %{systemdunitdir}/nfsfs.service
482 %{systemdunitdir}/blkmapd.service
483 %{systemdunitdir}/gssd.service
486 %defattr(644,root,root,755)
487 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
488 %attr(754,root,root) /etc/rc.d/init.d/idmapd
489 %attr(754,root,root) /etc/rc.d/init.d/nfslock
490 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
491 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
492 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
493 %attr(755,root,root) %{_sbindir}/sm-notify
494 %attr(755,root,root) /sbin/nfsidmap
495 %attr(755,root,root) /sbin/rpc.idmapd
496 %attr(755,root,root) /sbin/rpc.statd
497 %attr(755,root,root) /sbin/start-statd
499 %dir %{_var}/lib/nfs/rpc_pipefs
500 %dir %{_var}/lib/nfs/v4recovery
501 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
502 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
503 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
504 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
505 %{_mandir}/man5/nfs.5*
506 %{_mandir}/man8/idmapd.8*
507 %{_mandir}/man8/nfsidmap.8*
508 %{_mandir}/man8/rpc.idmapd.8*
509 %{_mandir}/man8/rpc.sm-notify.8*
510 %{_mandir}/man8/rpc.statd.8*
511 %{_mandir}/man8/sm-notify.8*
512 %{_mandir}/man8/statd.8*
514 %{systemdunitdir}/idmapd.service
515 %{systemdunitdir}/nfslock.service
516 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
517 %dir %{_datadir}/nfs-utils
518 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig