2 # - two python scripts in -clients:
3 # /usr/sbin/mountstats: Python script, ASCII text executable
4 # /usr/sbin/nfsiostat: Python script, ASCII text executable
5 # appeared in commit e8168b4 with 1.2.3 update
8 %bcond_with krb5 # build with MIT Kerberos instead of Heimdal
9 %bcond_without tirpc # use librpcsecgss instead of libtirpc
11 Summary: Kernel NFS server
12 Summary(pl.UTF-8): Działający na poziomie jądra serwer NFS
13 Summary(pt_BR.UTF-8): Os utilitários para o cliente e servidor NFS do Linux
14 Summary(ru.UTF-8): Утилиты для NFS и демоны поддержки для NFS-сервера ядра
15 Summary(uk.UTF-8): Утиліти для NFS та демони підтримки для NFS-сервера ядра
20 Group: Networking/Daemons
21 #Source0: https://www.kernel.org/pub/linux/utils/nfs/%{name}-%{version}.tar.bz2
22 Source0: http://downloads.sourceforge.net/nfs/%{name}-%{version}.tar.bz2
23 # Source0-md5: 9b87d890669eaaec8e97a2b0a35b2665
24 #Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
25 Source1: nfs.doc.tar.gz
26 # Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
30 Source5: rpcidmapd.init
32 Source7: rpcsvcgssd.init
33 Source8: nfs.sysconfig
34 Source9: nfslock.sysconfig
35 Source10: nfsfs.sysconfig
36 Source11: blkmapd.init
38 Source13: nfs-utils_env.sh
39 Source102: nfsd.service
40 Source103: nfs-blkmapd.service
41 Source104: nfs-exportfs.service
42 Source105: nfs-gssd.service
43 Source106: nfs-idmapd.service
44 Source107: nfs-lock.service
45 Source108: nfs-mountd.service
46 Source109: nfs-svcgssd.service
47 Source110: nfsd.postconfig
48 Source111: nfsd.preconfig
49 Source112: nfs-lock.preconfig
50 Patch0: %{name}-install.patch
51 Patch1: %{name}-statdpath.patch
52 Patch2: %{name}-subsys.patch
53 Patch3: %{name}-union-mount.patch
54 Patch4: %{name}-heimdal.patch
55 Patch5: %{name}-x32.patch
56 URL: http://nfs.sourceforge.net/
57 BuildRequires: autoconf >= 2.59
58 BuildRequires: automake
60 BuildRequires: device-mapper-devel
61 BuildRequires: keyutils-devel
62 BuildRequires: libblkid-devel >= 1.40
63 BuildRequires: libcap-devel
64 BuildRequires: libevent-devel >= 1.2
65 BuildRequires: libmount-devel
66 BuildRequires: libnfsidmap-devel >= 0.24
67 BuildRequires: libtool
68 BuildRequires: libwrap-devel
69 BuildRequires: pkgconfig
70 BuildRequires: rpm-pythonprov
71 BuildRequires: sqlite3-devel >= 3.3
73 BuildRequires: libtirpc-devel >= 1:0.1.10-4
75 BuildRequires: librpcsecgss-devel >= 0.16
78 BuildRequires: krb5-devel >= 1.6
80 BuildRequires: heimdal-devel >= 1.0
82 BuildRequires: rpmbuild(macros) >= 1.623
83 # lucid context fields mismatch with current version of spkm3.h
84 BuildConflicts: gss_mech_spkm3-devel
85 Requires(post): fileutils
86 Requires(post): sed >= 4.0
87 Requires(post,preun): /sbin/chkconfig
88 Requires(post,preun,postun): systemd-units >= 38
89 Requires: %{name}-common = %{version}-%{release}
90 Requires: libevent >= 2.0.14-2
91 Requires: rc-scripts >= 0.4.1.5
92 Requires: rpcbind >= 0.1.7
93 Requires: setup >= 2.4.6-7
94 Requires: systemd-units >= 0.38
98 Obsoletes: nfs-utils-systemd
100 Conflicts: kernel < 2.2.5
101 Conflicts: krb5-common < 1.7
103 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
106 This is the *new* kernel NFS server and related tools. It provides a
107 much higher level of performance than the traditional Linux user-land
110 %description -l pl.UTF-8
111 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
112 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
113 tradycyjny, działający na poziomie użytkownika serwer NFS.
115 %description -l pt_BR.UTF-8
116 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
119 %description -l ru.UTF-8
120 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
121 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
122 производительность, чем традиционные Linux NFS-сервера, используемые
123 большинством пользователей.
125 %description -l uk.UTF-8
126 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
127 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
128 традиційні Linux NFS-сервери, які використовує більшість користувачів.
131 Summary: Clients for connecting to a remote NFS server
132 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
134 Requires(post,preun): /sbin/chkconfig
135 Requires(post,preun,postun): systemd-units >= 38
136 Requires: %{name}-common = %{version}-%{release}
139 Requires: systemd-units >= 0.38
140 Provides: nfs-server-clients
142 Obsoletes: knfsd-clients
143 Obsoletes: nfs-server-clients
144 Obsoletes: nfs-utils-clients-systemd
146 Conflicts: krb5-common < 1.7
149 The nfs-server-clients package contains the showmount program.
150 Showmount queries the mount daemon on a remote host for information
151 about the NFS (Network File System) server on the remote host. For
152 example, showmount can display the clients which are mounted on that
153 host. This package is not needed to mount NFS volumes.
155 %description clients -l pl.UTF-8
156 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
157 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
158 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
159 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
160 zamountowania zasobów NFS.
163 Summary: Common programs for NFS
164 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
166 Requires(post,preun): /sbin/chkconfig
167 Requires(post,preun,postun): systemd-units >= 38
168 Provides: user(rpcstatd)
169 Provides: group(rpcstatd)
171 Provides: nfs-utils-lock
172 Requires: libnfsidmap >= 0.25-3
174 Requires: rpcbind >= 0.1.7
175 Requires: systemd-units >= 0.38
176 Obsoletes: nfs-utils-common-systemd
177 Obsoletes: nfs-utils-lock
178 Obsoletes: knfsd-lock
180 Conflicts: mount < 2.13-0.pre7.1
183 Common programs for NFS.
185 %description common -l pl.UTF-8
186 Wspólne programy do obsługi NFS.
199 %{__aclocal} -I aclocal
208 --enable-mountconfig \
209 --enable-libmount-mount \
218 --with-statdpath=/var/lib/nfs/statd \
219 --with-statedir=/var/lib/nfs \
220 --with-statduser=rpcstatd \
221 --with-start-statd=/sbin/start-statd \
222 --with-tcp-wrappers \
229 rm -rf $RPM_BUILD_ROOT
230 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
231 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
232 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
235 DESTDIR=$RPM_BUILD_ROOT
237 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
239 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
240 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
242 # mount.nfs calls this script when mounting a filesystem with locking
243 # enabled, but when statd does not seem to be running (based on
244 # /var/run/rpc.statd.pid).
245 exec /sbin/rpc.statd --no-notify
248 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
250 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
251 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
254 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
255 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
256 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
257 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
258 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
259 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
260 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
261 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
262 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
263 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
265 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
267 install systemd/proc-fs-nfsd.mount $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
268 install systemd/var-lib-nfs-rpc_pipefs.mount $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
269 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
270 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
271 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
272 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
273 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
274 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
275 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
276 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
277 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
278 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
279 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
281 # Disable old SysV service for systemd installs
282 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
283 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
285 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
286 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
288 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
289 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
290 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
291 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
292 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
293 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
294 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
295 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
297 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
299 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
304 rm -rf $RPM_BUILD_ROOT
307 /sbin/chkconfig --add nfs
308 %service nfs restart "NFS daemon"
309 /sbin/chkconfig --add svcgssd
310 %service svcgssd restart "RPC svcgssd"
311 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
314 if [ "$1" = "0" ]; then
316 /sbin/chkconfig --del nfs
317 %service svcgssd stop
318 /sbin/chkconfig --del svcgssd
320 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
326 /sbin/chkconfig --add nfsfs
327 %service nfsfs restart
328 /sbin/chkconfig --add gssd
329 %service gssd restart "RPC gssd"
330 /sbin/chkconfig --add blkmapd
331 %service blkmapd restart "pNFS blkmapd"
332 %systemd_post blkmapd.service gssd.service
335 if [ "$1" = "0" ]; then
337 /sbin/chkconfig --del nfsfs
339 /sbin/chkconfig --del gssd
340 %service blkmapd stop
341 /sbin/chkconfig --del blkmapd
343 %systemd_preun blkmapd.service gssd.service
349 %groupadd -g 191 rpcstatd
350 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
353 /sbin/chkconfig --add idmapd
354 %service idmapd restart "RPC idmapd"
355 /sbin/chkconfig --add nfslock
356 %service nfslock restart "RPC statd"
357 %systemd_post idmapd.service nfslock.service
360 if [ "$1" = "0" ]; then
362 /sbin/chkconfig --del idmapd
363 %service nfslock stop
364 /sbin/chkconfig --del nfslock
366 %systemd_preun idmapd.service nfslock.service
369 if [ "$1" = "0" ]; then
371 %groupremove rpcstatd
375 %triggerpostun -- %{name} < 1.2.5-7
376 if [ -f /etc/sysconfig/nfsd ]; then
377 . /etc/sysconfig/nfsd
379 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
380 for vers in 2 3 4 ; do
381 __var=$(eval echo \$NFSv$vers)
382 [ -n "$__var" -a "$__var" != "yes" ] && \
383 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
385 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
386 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
387 echo >>/etc/sysconfig/nfsd
388 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
389 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
392 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
394 %triggerpostun clients -- %{name}-clients < 1.2.5-7
395 %systemd_trigger blkmapd.service gssd.service
397 %triggerpostun common -- %{name}-lock < 1.2.5-3
398 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
399 mv -f /etc/sysconfig/nfslock{,.rpmnew}
400 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
403 %triggerpostun common -- %{name}-common < 1.2.5-7
404 if [ -f /etc/sysconfig/nfslock ]; then
405 . /etc/sysconfig/nfslock
406 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
407 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
408 if [ -n "$STATDOPTS" ]; then
409 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
410 echo >>/etc/sysconfig/nfslock
411 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
412 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
415 %systemd_trigger idmapd.service nfslock.service
418 %defattr(644,root,root,755)
420 %attr(755,root,root) /sbin/nfsdcltrack
421 %attr(755,root,root) /sbin/rpcdebug
422 %attr(755,root,root) /sbin/fsck.nfs
423 %attr(755,root,root) %{_sbindir}/exportfs
424 %attr(755,root,root) %{_sbindir}/rpc.mountd
425 %attr(755,root,root) %{_sbindir}/rpc.nfsd
426 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
427 %attr(755,root,root) %{_sbindir}/nfsstat
429 %attr(754,root,root) /etc/rc.d/init.d/nfs
430 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
432 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
433 %dir %{_sysconfdir}/exports.d
435 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
436 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
437 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
438 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
440 %{_mandir}/man5/exports.5*
441 %{_mandir}/man7/nfsd.7*
442 %{_mandir}/man8/exportfs.8*
443 %{_mandir}/man8/mountd.8*
444 %{_mandir}/man8/nfsd.8*
445 %{_mandir}/man8/nfsdcltrack.8*
446 %{_mandir}/man8/nfsstat.8*
447 %{_mandir}/man8/rpc.mountd.8*
448 %{_mandir}/man8/rpc.nfsd.8*
449 %{_mandir}/man8/rpc.svcgssd.8*
450 %{_mandir}/man8/rpcdebug.8*
451 %{_mandir}/man8/svcgssd.8*
453 %{systemdunitdir}/nfs.service
454 %{systemdunitdir}/nfsd.service
455 %{systemdunitdir}/nfsd-exportfs.service
456 %{systemdunitdir}/nfsd-mountd.service
457 %{systemdunitdir}/svcgssd.service
458 %{systemdunitdir}/proc-fs-nfsd.mount
459 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
460 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
463 %defattr(644,root,root,755)
464 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
465 %attr(754,root,root) /etc/rc.d/init.d/gssd
466 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
467 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
468 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
469 %attr(4755,root,root) /sbin/mount.nfs
470 %attr(4755,root,root) /sbin/umount.nfs
471 %attr(4755,root,root) /sbin/mount.nfs4
472 %attr(4755,root,root) /sbin/umount.nfs4
473 %attr(755,root,root) /sbin/blkmapd
474 %attr(755,root,root) /sbin/osd_login
475 %attr(755,root,root) /sbin/rpc.gssd
476 %attr(755,root,root) %{_sbindir}/mountstats
477 %attr(755,root,root) %{_sbindir}/nfsiostat
478 %attr(755,root,root) %{_sbindir}/showmount
479 %{_mandir}/man5/nfsmount.conf.5*
480 %{_mandir}/man8/blkmapd.8*
481 %{_mandir}/man8/gssd.8*
482 %{_mandir}/man8/mount.nfs.8*
483 %{_mandir}/man8/mountstats.8*
484 %{_mandir}/man8/nfsiostat.8*
485 %{_mandir}/man8/rpc.gssd.8*
486 %{_mandir}/man8/showmount.8*
487 %{_mandir}/man8/umount.nfs.8*
489 %{systemdunitdir}/nfsfs.service
490 %{systemdunitdir}/blkmapd.service
491 %{systemdunitdir}/gssd.service
494 %defattr(644,root,root,755)
495 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
496 %attr(754,root,root) /etc/rc.d/init.d/idmapd
497 %attr(754,root,root) /etc/rc.d/init.d/nfslock
498 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
499 %attr(755,root,root) %{_sbindir}/sm-notify
500 %attr(755,root,root) /sbin/nfsidmap
501 %attr(755,root,root) /sbin/rpc.idmapd
502 %attr(755,root,root) /sbin/rpc.statd
503 %attr(755,root,root) /sbin/start-statd
505 %dir %{_var}/lib/nfs/rpc_pipefs
506 %dir %{_var}/lib/nfs/v4recovery
507 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
508 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
509 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
510 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
511 %{_mandir}/man5/nfs.5*
512 %{_mandir}/man8/idmapd.8*
513 %{_mandir}/man8/nfsidmap.8*
514 %{_mandir}/man8/rpc.idmapd.8*
515 %{_mandir}/man8/rpc.sm-notify.8*
516 %{_mandir}/man8/rpc.statd.8*
517 %{_mandir}/man8/sm-notify.8*
518 %{_mandir}/man8/statd.8*
520 %{systemdunitdir}/idmapd.service
521 %{systemdunitdir}/nfslock.service
522 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
523 %dir %{_datadir}/nfs-utils
524 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig