3 %bcond_with krb5 # build with MIT Kerberos 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: https://www.kernel.org/pub/linux/utils/nfs-utils/%{version}/%{name}-%{version}.tar.xz
17 # Source0-md5: 59dfcb2e6254b129f901f40c86086b13
18 #Source1: ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
19 Source1: nfs.doc.tar.gz
20 # Source1-md5: ae7db9c61c5ad04f83bb99e5caed73da
24 Source5: rpcidmapd.init
26 Source7: rpcsvcgssd.init
27 Source8: nfs.sysconfig
28 Source9: nfslock.sysconfig
29 Source10: nfsfs.sysconfig
30 Source11: blkmapd.init
32 Source13: %{name}_env.sh
33 Source102: nfsd.service
34 Source103: nfs-blkmapd.service
35 Source104: nfs-exportfs.service
36 Source105: nfs-gssd.service
37 Source106: nfs-idmapd.service
38 Source107: nfs-lock.service
39 Source108: nfs-mountd.service
40 Source109: nfs-svcgssd.service
41 Source110: nfsd.postconfig
42 Source111: nfsd.preconfig
43 Source112: nfs-lock.preconfig
44 Patch0: %{name}-install.patch
45 Patch1: %{name}-statdpath.patch
46 Patch2: %{name}-subsys.patch
47 Patch3: %{name}-union-mount.patch
48 Patch4: %{name}-heimdal.patch
49 Patch5: %{name}-x32.patch
50 Patch6: nfs-utils-2.1.1-rpc-include.patch
51 URL: http://linux-nfs.org/
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
66 BuildRequires: sqlite3-devel >= 3.3
68 BuildRequires: libtirpc-devel >= 1:0.1.10-4
70 BuildRequires: librpcsecgss-devel >= 0.16
73 BuildRequires: krb5-devel >= 1.6
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 Requires: libnfsidmap >= 0.25-3
165 Requires: rpcbind >= 0.1.7
166 Requires: systemd-units >= 0.38
167 Provides: group(rpcstatd)
168 Provides: nfs-utils-lock
170 Provides: user(rpcstatd)
171 Obsoletes: knfsd-lock
172 Obsoletes: nfs-utils-common-systemd
173 Obsoletes: nfs-utils-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.
195 %{__aclocal} -I aclocal
204 --enable-mountconfig \
205 --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 \
226 rm -rf $RPM_BUILD_ROOT
227 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
228 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
229 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
232 DESTDIR=$RPM_BUILD_ROOT
234 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
236 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
237 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
239 # mount.nfs calls this script when mounting a filesystem with locking
240 # enabled, but when statd does not seem to be running (based on
241 # /var/run/rpc.statd.pid).
242 exec /sbin/rpc.statd --no-notify
245 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
247 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
248 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
251 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
252 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
253 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
254 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
255 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
256 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
257 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
258 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
259 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
260 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
262 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
264 install systemd/proc-fs-nfsd.mount $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
265 install systemd/var-lib-nfs-rpc_pipefs.mount $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
266 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
267 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
268 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
269 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
270 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
271 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
272 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
273 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
274 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
275 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
276 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
278 # Disable old SysV service for systemd installs
279 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
280 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
282 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
283 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
285 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
286 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
287 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
288 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
289 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
290 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
291 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
292 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
294 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
296 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
300 # make python dep optional
301 chmod a-x $RPM_BUILD_ROOT%{_sbindir}/{mountstats,nfsiostat}
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}/man5/nfs.conf.5*
442 %{_mandir}/man7/nfsd.7*
443 %{_mandir}/man7/nfs.systemd.7*
444 %{_mandir}/man8/exportfs.8*
445 %{_mandir}/man8/mountd.8*
446 %{_mandir}/man8/nfsd.8*
447 %{_mandir}/man8/nfsdcltrack.8*
448 %{_mandir}/man8/nfsstat.8*
449 %{_mandir}/man8/rpc.mountd.8*
450 %{_mandir}/man8/rpc.nfsd.8*
451 %{_mandir}/man8/rpc.svcgssd.8*
452 %{_mandir}/man8/rpcdebug.8*
453 %{_mandir}/man8/svcgssd.8*
455 %{systemdunitdir}/nfs.service
456 %{systemdunitdir}/nfsd.service
457 %{systemdunitdir}/nfsd-exportfs.service
458 %{systemdunitdir}/nfsd-mountd.service
459 %{systemdunitdir}/svcgssd.service
460 %{systemdunitdir}/proc-fs-nfsd.mount
461 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
462 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
465 %defattr(644,root,root,755)
466 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
467 %attr(754,root,root) /etc/rc.d/init.d/gssd
468 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
469 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
470 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
471 %attr(4755,root,root) /sbin/mount.nfs
472 %attr(4755,root,root) /sbin/umount.nfs
473 %attr(4755,root,root) /sbin/mount.nfs4
474 %attr(4755,root,root) /sbin/umount.nfs4
475 %attr(755,root,root) /sbin/blkmapd
476 %attr(755,root,root) /sbin/osd_login
477 %attr(755,root,root) /sbin/rpc.gssd
478 %attr(755,root,root) %{_sbindir}/mountstats
479 %attr(755,root,root) %{_sbindir}/nfsiostat
480 %attr(755,root,root) %{_sbindir}/showmount
481 %{_mandir}/man5/nfsmount.conf.5*
482 %{_mandir}/man8/blkmapd.8*
483 %{_mandir}/man8/gssd.8*
484 %{_mandir}/man8/mount.nfs.8*
485 %{_mandir}/man8/mountstats.8*
486 %{_mandir}/man8/nfsiostat.8*
487 %{_mandir}/man8/rpc.gssd.8*
488 %{_mandir}/man8/showmount.8*
489 %{_mandir}/man8/umount.nfs.8*
491 %{systemdunitdir}/nfsfs.service
492 %{systemdunitdir}/blkmapd.service
493 %{systemdunitdir}/gssd.service
496 %defattr(644,root,root,755)
497 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
498 %attr(754,root,root) /etc/rc.d/init.d/idmapd
499 %attr(754,root,root) /etc/rc.d/init.d/nfslock
500 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
501 %attr(755,root,root) %{_sbindir}/sm-notify
502 %attr(755,root,root) /sbin/nfsidmap
503 %attr(755,root,root) /sbin/rpc.idmapd
504 %attr(755,root,root) /sbin/rpc.statd
505 %attr(755,root,root) /sbin/start-statd
507 %dir %{_var}/lib/nfs/rpc_pipefs
508 %dir %{_var}/lib/nfs/v4recovery
509 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
510 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
511 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
512 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
513 %{_mandir}/man5/nfs.5*
514 %{_mandir}/man8/idmapd.8*
515 %{_mandir}/man8/nfsidmap.8*
516 %{_mandir}/man8/rpc.idmapd.8*
517 %{_mandir}/man8/rpc.sm-notify.8*
518 %{_mandir}/man8/rpc.statd.8*
519 %{_mandir}/man8/sm-notify.8*
520 %{_mandir}/man8/statd.8*
522 %{systemdunitdir}/idmapd.service
523 %{systemdunitdir}/nfslock.service
524 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
525 %dir %{_datadir}/nfs-utils
526 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig