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/%{name}-%{version}.tar.bz2
17 Source0: http://downloads.sourceforge.net/nfs/%{name}-%{version}.tar.bz2
18 # Source0-md5: 9b87d890669eaaec8e97a2b0a35b2665
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 Source13: nfs-utils_env.sh
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}-x32.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
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 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.
194 %{__aclocal} -I aclocal
203 --enable-mountconfig \
204 --enable-libmount-mount \
213 --with-statdpath=/var/lib/nfs/statd \
214 --with-statedir=/var/lib/nfs \
215 --with-statduser=rpcstatd \
216 --with-start-statd=/sbin/start-statd \
217 --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 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
235 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
237 # mount.nfs calls this script when mounting a filesystem with locking
238 # enabled, but when statd does not seem to be running (based on
239 # /var/run/rpc.statd.pid).
240 exec /sbin/rpc.statd --no-notify
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 systemd/proc-fs-nfsd.mount $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
263 install systemd/var-lib-nfs-rpc_pipefs.mount $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)
415 %attr(755,root,root) /sbin/nfsdcltrack
416 %attr(755,root,root) /sbin/rpcdebug
417 %attr(755,root,root) /sbin/fsck.nfs
418 %attr(755,root,root) %{_sbindir}/exportfs
419 %attr(755,root,root) %{_sbindir}/rpc.mountd
420 %attr(755,root,root) %{_sbindir}/rpc.nfsd
421 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
422 %attr(755,root,root) %{_sbindir}/nfsstat
424 %attr(754,root,root) /etc/rc.d/init.d/nfs
425 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
427 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
428 %dir %{_sysconfdir}/exports.d
430 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
431 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
432 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
433 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
435 %{_mandir}/man5/exports.5*
436 %{_mandir}/man7/nfsd.7*
437 %{_mandir}/man8/exportfs.8*
438 %{_mandir}/man8/mountd.8*
439 %{_mandir}/man8/nfsd.8*
440 %{_mandir}/man8/nfsdcltrack.8*
441 %{_mandir}/man8/nfsstat.8*
442 %{_mandir}/man8/rpc.mountd.8*
443 %{_mandir}/man8/rpc.nfsd.8*
444 %{_mandir}/man8/rpc.svcgssd.8*
445 %{_mandir}/man8/rpcdebug.8*
446 %{_mandir}/man8/svcgssd.8*
448 %{systemdunitdir}/nfs.service
449 %{systemdunitdir}/nfsd.service
450 %{systemdunitdir}/nfsd-exportfs.service
451 %{systemdunitdir}/nfsd-mountd.service
452 %{systemdunitdir}/svcgssd.service
453 %{systemdunitdir}/proc-fs-nfsd.mount
454 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
455 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
458 %defattr(644,root,root,755)
459 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
460 %attr(754,root,root) /etc/rc.d/init.d/gssd
461 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
462 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
463 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
464 %attr(4755,root,root) /sbin/mount.nfs
465 %attr(4755,root,root) /sbin/umount.nfs
466 %attr(4755,root,root) /sbin/mount.nfs4
467 %attr(4755,root,root) /sbin/umount.nfs4
468 %attr(755,root,root) /sbin/blkmapd
469 %attr(755,root,root) /sbin/osd_login
470 %attr(755,root,root) /sbin/rpc.gssd
471 %attr(755,root,root) %{_sbindir}/mountstats
472 %attr(755,root,root) %{_sbindir}/nfsiostat
473 %attr(755,root,root) %{_sbindir}/showmount
474 %{_mandir}/man5/nfsmount.conf.5*
475 %{_mandir}/man8/blkmapd.8*
476 %{_mandir}/man8/gssd.8*
477 %{_mandir}/man8/mount.nfs.8*
478 %{_mandir}/man8/mountstats.8*
479 %{_mandir}/man8/nfsiostat.8*
480 %{_mandir}/man8/rpc.gssd.8*
481 %{_mandir}/man8/showmount.8*
482 %{_mandir}/man8/umount.nfs.8*
484 %{systemdunitdir}/nfsfs.service
485 %{systemdunitdir}/blkmapd.service
486 %{systemdunitdir}/gssd.service
489 %defattr(644,root,root,755)
490 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
491 %attr(754,root,root) /etc/rc.d/init.d/idmapd
492 %attr(754,root,root) /etc/rc.d/init.d/nfslock
493 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
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