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: 18869d16db3f49c053f8c68eba3fe2e0
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: fix-minorversion.patch
52 URL: http://nfs.sourceforge.net/
53 BuildRequires: autoconf >= 2.59
54 BuildRequires: automake
56 BuildRequires: device-mapper-devel
57 BuildRequires: keyutils-devel
58 BuildRequires: libblkid-devel >= 1.40
59 BuildRequires: libcap-devel
60 BuildRequires: libevent-devel >= 1.2
61 BuildRequires: libmount-devel
62 BuildRequires: libnfsidmap-devel >= 0.24
63 BuildRequires: libtool
64 BuildRequires: libwrap-devel
65 BuildRequires: pkgconfig
66 BuildRequires: rpm-pythonprov
67 BuildRequires: sqlite3-devel >= 3.3
69 BuildRequires: libtirpc-devel >= 1:0.1.10-4
71 BuildRequires: librpcsecgss-devel >= 0.16
74 BuildRequires: krb5-devel >= 1.6
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 \
225 rm -rf $RPM_BUILD_ROOT
226 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
227 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
228 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
231 DESTDIR=$RPM_BUILD_ROOT
233 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
235 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
236 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
238 # mount.nfs calls this script when mounting a filesystem with locking
239 # enabled, but when statd does not seem to be running (based on
240 # /var/run/rpc.statd.pid).
241 exec /sbin/rpc.statd --no-notify
244 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
246 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
247 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
250 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
251 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
252 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
253 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
254 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
255 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
256 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
257 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
258 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
259 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
261 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
263 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
264 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
265 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
266 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
267 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
268 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
269 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
270 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
271 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
272 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
273 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
274 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
275 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
277 # Disable old SysV service for systemd installs
278 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
279 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
281 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
282 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
284 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
285 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
286 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
287 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
288 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
289 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
290 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
291 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
293 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
295 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
300 rm -rf $RPM_BUILD_ROOT
303 /sbin/chkconfig --add nfs
304 %service nfs restart "NFS daemon"
305 /sbin/chkconfig --add svcgssd
306 %service svcgssd restart "RPC svcgssd"
307 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
310 if [ "$1" = "0" ]; then
312 /sbin/chkconfig --del nfs
313 %service svcgssd stop
314 /sbin/chkconfig --del svcgssd
316 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
322 /sbin/chkconfig --add nfsfs
323 %service nfsfs restart
324 /sbin/chkconfig --add gssd
325 %service gssd restart "RPC gssd"
326 /sbin/chkconfig --add blkmapd
327 %service blkmapd restart "pNFS blkmapd"
328 %systemd_post blkmapd.service gssd.service
331 if [ "$1" = "0" ]; then
333 /sbin/chkconfig --del nfsfs
335 /sbin/chkconfig --del gssd
336 %service blkmapd stop
337 /sbin/chkconfig --del blkmapd
339 %systemd_preun blkmapd.service gssd.service
345 %groupadd -g 191 rpcstatd
346 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
349 /sbin/chkconfig --add idmapd
350 %service idmapd restart "RPC idmapd"
351 /sbin/chkconfig --add nfslock
352 %service nfslock restart "RPC statd"
353 %systemd_post idmapd.service nfslock.service
356 if [ "$1" = "0" ]; then
358 /sbin/chkconfig --del idmapd
359 %service nfslock stop
360 /sbin/chkconfig --del nfslock
362 %systemd_preun idmapd.service nfslock.service
365 if [ "$1" = "0" ]; then
367 %groupremove rpcstatd
371 %triggerpostun -- %{name} < 1.2.5-7
372 if [ -f /etc/sysconfig/nfsd ]; then
373 . /etc/sysconfig/nfsd
375 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
376 for vers in 2 3 4 ; do
377 __var=$(eval echo \$NFSv$vers)
378 [ -n "$__var" -a "$__var" != "yes" ] && \
379 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
381 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
382 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
383 echo >>/etc/sysconfig/nfsd
384 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
385 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
388 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
390 %triggerpostun clients -- %{name}-clients < 1.2.5-7
391 %systemd_trigger blkmapd.service gssd.service
393 %triggerpostun common -- %{name}-lock < 1.2.5-3
394 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
395 mv -f /etc/sysconfig/nfslock{,.rpmnew}
396 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
399 %triggerpostun common -- %{name}-common < 1.2.5-7
400 if [ -f /etc/sysconfig/nfslock ]; then
401 . /etc/sysconfig/nfslock
402 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
403 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
404 if [ -n "$STATDOPTS" ]; then
405 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
406 echo >>/etc/sysconfig/nfslock
407 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
408 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
411 %systemd_trigger idmapd.service nfslock.service
414 %defattr(644,root,root,755)
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
423 %attr(755,root,root) %{_sbindir}/nfsdcltrack
425 %attr(754,root,root) /etc/rc.d/init.d/nfs
426 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
428 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
429 %dir %{_sysconfdir}/exports.d
431 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
432 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
433 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
434 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
436 %{_mandir}/man5/exports.5*
437 %{_mandir}/man7/nfsd.7*
438 %{_mandir}/man8/exportfs.8*
439 %{_mandir}/man8/mountd.8*
440 %{_mandir}/man8/nfsd.8*
441 %{_mandir}/man8/nfsdcltrack.8*
442 %{_mandir}/man8/nfsstat.8*
443 %{_mandir}/man8/rpc.mountd.8*
444 %{_mandir}/man8/rpc.nfsd.8*
445 %{_mandir}/man8/rpc.svcgssd.8*
446 %{_mandir}/man8/rpcdebug.8*
447 %{_mandir}/man8/svcgssd.8*
449 %{systemdunitdir}/nfs.service
450 %{systemdunitdir}/nfsd.service
451 %{systemdunitdir}/nfsd-exportfs.service
452 %{systemdunitdir}/nfsd-mountd.service
453 %{systemdunitdir}/svcgssd.service
454 %{systemdunitdir}/proc-fs-nfsd.mount
455 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
456 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
459 %defattr(644,root,root,755)
460 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
461 %attr(754,root,root) /etc/rc.d/init.d/gssd
462 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
463 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
464 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
465 %attr(4755,root,root) /sbin/mount.nfs
466 %attr(4755,root,root) /sbin/umount.nfs
467 %attr(4755,root,root) /sbin/mount.nfs4
468 %attr(4755,root,root) /sbin/umount.nfs4
469 %attr(755,root,root) /sbin/blkmapd
470 %attr(755,root,root) /sbin/osd_login
471 %attr(755,root,root) /sbin/rpc.gssd
472 %attr(755,root,root) %{_sbindir}/mountstats
473 %attr(755,root,root) %{_sbindir}/nfsiostat
474 %attr(755,root,root) %{_sbindir}/showmount
475 %{_mandir}/man5/nfsmount.conf.5*
476 %{_mandir}/man8/blkmapd.8*
477 %{_mandir}/man8/gssd.8*
478 %{_mandir}/man8/mount.nfs.8*
479 %{_mandir}/man8/mountstats.8*
480 %{_mandir}/man8/nfsiostat.8*
481 %{_mandir}/man8/rpc.gssd.8*
482 %{_mandir}/man8/showmount.8*
483 %{_mandir}/man8/umount.nfs.8*
485 %{systemdunitdir}/nfsfs.service
486 %{systemdunitdir}/blkmapd.service
487 %{systemdunitdir}/gssd.service
490 %defattr(644,root,root,755)
491 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
492 %attr(754,root,root) /etc/rc.d/init.d/idmapd
493 %attr(754,root,root) /etc/rc.d/init.d/nfslock
494 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
495 %attr(755,root,root) %{_sbindir}/sm-notify
496 %attr(755,root,root) /sbin/nfsidmap
497 %attr(755,root,root) /sbin/rpc.idmapd
498 %attr(755,root,root) /sbin/rpc.statd
499 %attr(755,root,root) /sbin/start-statd
501 %dir %{_var}/lib/nfs/rpc_pipefs
502 %dir %{_var}/lib/nfs/v4recovery
503 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
504 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
505 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
506 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
507 %{_mandir}/man5/nfs.5*
508 %{_mandir}/man8/idmapd.8*
509 %{_mandir}/man8/nfsidmap.8*
510 %{_mandir}/man8/rpc.idmapd.8*
511 %{_mandir}/man8/rpc.sm-notify.8*
512 %{_mandir}/man8/rpc.statd.8*
513 %{_mandir}/man8/sm-notify.8*
514 %{_mandir}/man8/statd.8*
516 %{systemdunitdir}/idmapd.service
517 %{systemdunitdir}/nfslock.service
518 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
519 %dir %{_datadir}/nfs-utils
520 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig