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: 3ac3726eda563946d1f44ac3e5b61d56
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 URL: http://nfs.sourceforge.net/
51 BuildRequires: autoconf >= 2.59
52 BuildRequires: automake
54 BuildRequires: device-mapper-devel
55 BuildRequires: keyutils-devel
56 BuildRequires: libblkid-devel >= 1.40
57 BuildRequires: libcap-devel
58 BuildRequires: libevent-devel >= 1.2
59 BuildRequires: libmount-devel
60 BuildRequires: libnfsidmap-devel >= 0.24
61 BuildRequires: libtool
62 BuildRequires: libwrap-devel
63 BuildRequires: pkgconfig
64 BuildRequires: rpm-pythonprov
65 BuildRequires: sqlite3-devel >= 3.3
67 BuildRequires: libtirpc-devel >= 1:0.1.10-4
69 BuildRequires: librpcsecgss-devel >= 0.16
72 BuildRequires: krb5-devel >= 1.6
74 BuildRequires: heimdal-devel >= 1.0
76 BuildRequires: rpmbuild(macros) >= 1.623
77 # lucid context fields mismatch with current version of spkm3.h
78 BuildConflicts: gss_mech_spkm3-devel
79 Requires(post): fileutils
80 Requires(post): sed >= 4.0
81 Requires(post,preun): /sbin/chkconfig
82 Requires(post,preun,postun): systemd-units >= 38
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(post,preun,postun): systemd-units >= 38
130 Requires: %{name}-common = %{version}-%{release}
133 Requires: systemd-units >= 0.38
134 Provides: nfs-server-clients
136 Obsoletes: knfsd-clients
137 Obsoletes: nfs-server-clients
138 Obsoletes: nfs-utils-clients-systemd
140 Conflicts: krb5-common < 1.7
143 The nfs-server-clients package contains the showmount program.
144 Showmount queries the mount daemon on a remote host for information
145 about the NFS (Network File System) server on the remote host. For
146 example, showmount can display the clients which are mounted on that
147 host. This package is not needed to mount NFS volumes.
149 %description clients -l pl.UTF-8
150 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
151 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
152 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
153 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
154 zamountowania zasobów NFS.
157 Summary: Common programs for NFS
158 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
160 Requires(post,preun): /sbin/chkconfig
161 Requires(post,preun,postun): systemd-units >= 38
162 Provides: user(rpcstatd)
163 Provides: group(rpcstatd)
165 Provides: nfs-utils-lock
166 Requires: libnfsidmap >= 0.25-3
168 Requires: rpcbind >= 0.1.7
169 Requires: systemd-units >= 0.38
170 Obsoletes: nfs-utils-common-systemd
171 Obsoletes: nfs-utils-lock
172 Obsoletes: knfsd-lock
174 Conflicts: mount < 2.13-0.pre7.1
177 Common programs for NFS.
179 %description common -l pl.UTF-8
180 Wspólne programy do obsługi NFS.
192 %{__aclocal} -I aclocal
202 --enable-mountconfig \
203 --enable-libmount-mount \
211 --with-statdpath=/var/lib/nfs/statd \
212 --with-statedir=/var/lib/nfs \
213 --with-statduser=rpcstatd \
214 --with-start-statd=/sbin/start-statd \
215 --with-tcp-wrappers \
222 rm -rf $RPM_BUILD_ROOT
223 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
224 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
225 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
228 DESTDIR=$RPM_BUILD_ROOT
230 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
232 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
233 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
235 # mount.nfs calls this script when mounting a filesystem with locking
236 # enabled, but when statd does not seem to be running (based on
237 # /var/run/rpc.statd.pid).
238 exec /sbin/rpc.statd --no-notify
241 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
243 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
244 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
247 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
248 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
249 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
250 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
251 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
252 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
253 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
254 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
255 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
256 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
258 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
260 install systemd/proc-fs-nfsd.mount $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
261 install systemd/var-lib-nfs-rpc_pipefs.mount $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
262 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
263 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
264 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
265 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
266 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
267 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
268 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
269 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
270 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
271 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
272 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
274 # Disable old SysV service for systemd installs
275 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
276 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
278 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
279 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
281 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
282 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
283 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
284 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
285 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
286 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
287 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
288 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
290 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
292 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
297 rm -rf $RPM_BUILD_ROOT
300 /sbin/chkconfig --add nfs
301 %service nfs restart "NFS daemon"
302 /sbin/chkconfig --add svcgssd
303 %service svcgssd restart "RPC svcgssd"
304 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
307 if [ "$1" = "0" ]; then
309 /sbin/chkconfig --del nfs
310 %service svcgssd stop
311 /sbin/chkconfig --del svcgssd
313 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
319 /sbin/chkconfig --add nfsfs
320 %service nfsfs restart
321 /sbin/chkconfig --add gssd
322 %service gssd restart "RPC gssd"
323 /sbin/chkconfig --add blkmapd
324 %service blkmapd restart "pNFS blkmapd"
325 %systemd_post blkmapd.service gssd.service
328 if [ "$1" = "0" ]; then
330 /sbin/chkconfig --del nfsfs
332 /sbin/chkconfig --del gssd
333 %service blkmapd stop
334 /sbin/chkconfig --del blkmapd
336 %systemd_preun blkmapd.service gssd.service
342 %groupadd -g 191 rpcstatd
343 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
346 /sbin/chkconfig --add idmapd
347 %service idmapd restart "RPC idmapd"
348 /sbin/chkconfig --add nfslock
349 %service nfslock restart "RPC statd"
350 %systemd_post idmapd.service nfslock.service
353 if [ "$1" = "0" ]; then
355 /sbin/chkconfig --del idmapd
356 %service nfslock stop
357 /sbin/chkconfig --del nfslock
359 %systemd_preun idmapd.service nfslock.service
362 if [ "$1" = "0" ]; then
364 %groupremove rpcstatd
368 %triggerpostun -- %{name} < 1.2.5-7
369 if [ -f /etc/sysconfig/nfsd ]; then
370 . /etc/sysconfig/nfsd
372 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
373 for vers in 2 3 4 ; do
374 __var=$(eval echo \$NFSv$vers)
375 [ -n "$__var" -a "$__var" != "yes" ] && \
376 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
378 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
379 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
380 echo >>/etc/sysconfig/nfsd
381 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
382 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
385 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
387 %triggerpostun clients -- %{name}-clients < 1.2.5-7
388 %systemd_trigger blkmapd.service gssd.service
390 %triggerpostun common -- %{name}-lock < 1.2.5-3
391 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
392 mv -f /etc/sysconfig/nfslock{,.rpmnew}
393 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
396 %triggerpostun common -- %{name}-common < 1.2.5-7
397 if [ -f /etc/sysconfig/nfslock ]; then
398 . /etc/sysconfig/nfslock
399 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
400 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
401 if [ -n "$STATDOPTS" ]; then
402 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
403 echo >>/etc/sysconfig/nfslock
404 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
405 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
408 %systemd_trigger idmapd.service nfslock.service
411 %defattr(644,root,root,755)
413 %attr(755,root,root) /sbin/rpcdebug
414 %attr(755,root,root) /sbin/fsck.nfs
415 %attr(755,root,root) %{_sbindir}/exportfs
416 %attr(755,root,root) %{_sbindir}/rpc.mountd
417 %attr(755,root,root) %{_sbindir}/rpc.nfsd
418 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
419 %attr(755,root,root) %{_sbindir}/nfsstat
420 %attr(755,root,root) %{_sbindir}/nfsdcltrack
422 %attr(754,root,root) /etc/rc.d/init.d/nfs
423 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
425 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
426 %dir %{_sysconfdir}/exports.d
428 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
429 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
430 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
431 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
433 %{_mandir}/man5/exports.5*
434 %{_mandir}/man7/nfsd.7*
435 %{_mandir}/man8/exportfs.8*
436 %{_mandir}/man8/mountd.8*
437 %{_mandir}/man8/nfsd.8*
438 %{_mandir}/man8/nfsdcltrack.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/osd_login
468 %attr(755,root,root) /sbin/rpc.gssd
469 %attr(755,root,root) %{_sbindir}/mountstats
470 %attr(755,root,root) %{_sbindir}/nfsiostat
471 %attr(755,root,root) %{_sbindir}/showmount
472 %{_mandir}/man5/nfsmount.conf.5*
473 %{_mandir}/man8/blkmapd.8*
474 %{_mandir}/man8/gssd.8*
475 %{_mandir}/man8/mount.nfs.8*
476 %{_mandir}/man8/mountstats.8*
477 %{_mandir}/man8/nfsiostat.8*
478 %{_mandir}/man8/rpc.gssd.8*
479 %{_mandir}/man8/showmount.8*
480 %{_mandir}/man8/umount.nfs.8*
482 %{systemdunitdir}/nfsfs.service
483 %{systemdunitdir}/blkmapd.service
484 %{systemdunitdir}/gssd.service
487 %defattr(644,root,root,755)
488 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
489 %attr(754,root,root) /etc/rc.d/init.d/idmapd
490 %attr(754,root,root) /etc/rc.d/init.d/nfslock
491 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
492 %attr(755,root,root) %{_sbindir}/sm-notify
493 %attr(755,root,root) /sbin/nfsidmap
494 %attr(755,root,root) /sbin/rpc.idmapd
495 %attr(755,root,root) /sbin/rpc.statd
496 %attr(755,root,root) /sbin/start-statd
498 %dir %{_var}/lib/nfs/rpc_pipefs
499 %dir %{_var}/lib/nfs/v4recovery
500 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
501 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
502 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
503 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
504 %{_mandir}/man5/nfs.5*
505 %{_mandir}/man8/idmapd.8*
506 %{_mandir}/man8/nfsidmap.8*
507 %{_mandir}/man8/rpc.idmapd.8*
508 %{_mandir}/man8/rpc.sm-notify.8*
509 %{_mandir}/man8/rpc.statd.8*
510 %{_mandir}/man8/sm-notify.8*
511 %{_mandir}/man8/statd.8*
513 %{systemdunitdir}/idmapd.service
514 %{systemdunitdir}/nfslock.service
515 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
516 %dir %{_datadir}/nfs-utils
517 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig