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: 1e2f3c1ed468dee02d00c534c002ea10
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 Patch6: %{name}-fix-statd-nodaemon.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.
196 %{__aclocal} -I aclocal
206 --enable-mountconfig \
207 --enable-libmount-mount \
216 --with-statdpath=/var/lib/nfs/statd \
217 --with-statedir=/var/lib/nfs \
218 --with-statduser=rpcstatd \
219 --with-start-statd=/sbin/start-statd \
220 --with-tcp-wrappers \
227 rm -rf $RPM_BUILD_ROOT
228 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
229 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
230 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
233 DESTDIR=$RPM_BUILD_ROOT
235 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
237 %{__rm} $RPM_BUILD_ROOT%{_sbindir}/start-statd
238 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
240 # mount.nfs calls this script when mounting a filesystem with locking
241 # enabled, but when statd does not seem to be running (based on
242 # /var/run/rpc.statd.pid).
243 exec /sbin/rpc.statd --no-notify
246 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
248 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
249 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
252 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
253 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
254 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
255 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
256 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
257 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
258 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
259 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
260 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
261 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
263 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
265 install systemd/proc-fs-nfsd.mount $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
266 install systemd/var-lib-nfs-rpc_pipefs.mount $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
267 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
268 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
269 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
270 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
271 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
272 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
273 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
274 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
275 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
276 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
277 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
279 # Disable old SysV service for systemd installs
280 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
281 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
283 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
284 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
286 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
287 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
288 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
289 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
290 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
291 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
292 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
293 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
295 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
297 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
302 rm -rf $RPM_BUILD_ROOT
305 /sbin/chkconfig --add nfs
306 %service nfs restart "NFS daemon"
307 /sbin/chkconfig --add svcgssd
308 %service svcgssd restart "RPC svcgssd"
309 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
312 if [ "$1" = "0" ]; then
314 /sbin/chkconfig --del nfs
315 %service svcgssd stop
316 /sbin/chkconfig --del svcgssd
318 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
324 /sbin/chkconfig --add nfsfs
325 %service nfsfs restart
326 /sbin/chkconfig --add gssd
327 %service gssd restart "RPC gssd"
328 /sbin/chkconfig --add blkmapd
329 %service blkmapd restart "pNFS blkmapd"
330 %systemd_post blkmapd.service gssd.service
333 if [ "$1" = "0" ]; then
335 /sbin/chkconfig --del nfsfs
337 /sbin/chkconfig --del gssd
338 %service blkmapd stop
339 /sbin/chkconfig --del blkmapd
341 %systemd_preun blkmapd.service gssd.service
347 %groupadd -g 191 rpcstatd
348 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
351 /sbin/chkconfig --add idmapd
352 %service idmapd restart "RPC idmapd"
353 /sbin/chkconfig --add nfslock
354 %service nfslock restart "RPC statd"
355 %systemd_post idmapd.service nfslock.service
358 if [ "$1" = "0" ]; then
360 /sbin/chkconfig --del idmapd
361 %service nfslock stop
362 /sbin/chkconfig --del nfslock
364 %systemd_preun idmapd.service nfslock.service
367 if [ "$1" = "0" ]; then
369 %groupremove rpcstatd
373 %triggerpostun -- %{name} < 1.2.5-7
374 if [ -f /etc/sysconfig/nfsd ]; then
375 . /etc/sysconfig/nfsd
377 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
378 for vers in 2 3 4 ; do
379 __var=$(eval echo \$NFSv$vers)
380 [ -n "$__var" -a "$__var" != "yes" ] && \
381 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
383 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
384 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
385 echo >>/etc/sysconfig/nfsd
386 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
387 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
390 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
392 %triggerpostun clients -- %{name}-clients < 1.2.5-7
393 %systemd_trigger blkmapd.service gssd.service
395 %triggerpostun common -- %{name}-lock < 1.2.5-3
396 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
397 mv -f /etc/sysconfig/nfslock{,.rpmnew}
398 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
401 %triggerpostun common -- %{name}-common < 1.2.5-7
402 if [ -f /etc/sysconfig/nfslock ]; then
403 . /etc/sysconfig/nfslock
404 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
405 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
406 if [ -n "$STATDOPTS" ]; then
407 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
408 echo >>/etc/sysconfig/nfslock
409 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
410 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
413 %systemd_trigger idmapd.service nfslock.service
416 %defattr(644,root,root,755)
418 %attr(755,root,root) /sbin/nfsdcltrack
419 %attr(755,root,root) /sbin/rpcdebug
420 %attr(755,root,root) /sbin/fsck.nfs
421 %attr(755,root,root) %{_sbindir}/exportfs
422 %attr(755,root,root) %{_sbindir}/rpc.mountd
423 %attr(755,root,root) %{_sbindir}/rpc.nfsd
424 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
425 %attr(755,root,root) %{_sbindir}/nfsstat
427 %attr(754,root,root) /etc/rc.d/init.d/nfs
428 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
430 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
431 %dir %{_sysconfdir}/exports.d
433 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
434 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
435 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
436 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
438 %{_mandir}/man5/exports.5*
439 %{_mandir}/man7/nfsd.7*
440 %{_mandir}/man8/exportfs.8*
441 %{_mandir}/man8/mountd.8*
442 %{_mandir}/man8/nfsd.8*
443 %{_mandir}/man8/nfsdcltrack.8*
444 %{_mandir}/man8/nfsstat.8*
445 %{_mandir}/man8/rpc.mountd.8*
446 %{_mandir}/man8/rpc.nfsd.8*
447 %{_mandir}/man8/rpc.svcgssd.8*
448 %{_mandir}/man8/rpcdebug.8*
449 %{_mandir}/man8/svcgssd.8*
451 %{systemdunitdir}/nfs.service
452 %{systemdunitdir}/nfsd.service
453 %{systemdunitdir}/nfsd-exportfs.service
454 %{systemdunitdir}/nfsd-mountd.service
455 %{systemdunitdir}/svcgssd.service
456 %{systemdunitdir}/proc-fs-nfsd.mount
457 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
458 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
461 %defattr(644,root,root,755)
462 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
463 %attr(754,root,root) /etc/rc.d/init.d/gssd
464 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
465 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
466 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
467 %attr(4755,root,root) /sbin/mount.nfs
468 %attr(4755,root,root) /sbin/umount.nfs
469 %attr(4755,root,root) /sbin/mount.nfs4
470 %attr(4755,root,root) /sbin/umount.nfs4
471 %attr(755,root,root) /sbin/blkmapd
472 %attr(755,root,root) /sbin/osd_login
473 %attr(755,root,root) /sbin/rpc.gssd
474 %attr(755,root,root) %{_sbindir}/mountstats
475 %attr(755,root,root) %{_sbindir}/nfsiostat
476 %attr(755,root,root) %{_sbindir}/showmount
477 %{_mandir}/man5/nfsmount.conf.5*
478 %{_mandir}/man8/blkmapd.8*
479 %{_mandir}/man8/gssd.8*
480 %{_mandir}/man8/mount.nfs.8*
481 %{_mandir}/man8/mountstats.8*
482 %{_mandir}/man8/nfsiostat.8*
483 %{_mandir}/man8/rpc.gssd.8*
484 %{_mandir}/man8/showmount.8*
485 %{_mandir}/man8/umount.nfs.8*
487 %{systemdunitdir}/nfsfs.service
488 %{systemdunitdir}/blkmapd.service
489 %{systemdunitdir}/gssd.service
492 %defattr(644,root,root,755)
493 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
494 %attr(754,root,root) /etc/rc.d/init.d/idmapd
495 %attr(754,root,root) /etc/rc.d/init.d/nfslock
496 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
497 %attr(755,root,root) %{_sbindir}/sm-notify
498 %attr(755,root,root) /sbin/nfsidmap
499 %attr(755,root,root) /sbin/rpc.idmapd
500 %attr(755,root,root) /sbin/rpc.statd
501 %attr(755,root,root) /sbin/start-statd
503 %dir %{_var}/lib/nfs/rpc_pipefs
504 %dir %{_var}/lib/nfs/v4recovery
505 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
506 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
507 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
508 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
509 %{_mandir}/man5/nfs.5*
510 %{_mandir}/man8/idmapd.8*
511 %{_mandir}/man8/nfsidmap.8*
512 %{_mandir}/man8/rpc.idmapd.8*
513 %{_mandir}/man8/rpc.sm-notify.8*
514 %{_mandir}/man8/rpc.statd.8*
515 %{_mandir}/man8/sm-notify.8*
516 %{_mandir}/man8/statd.8*
518 %{systemdunitdir}/idmapd.service
519 %{systemdunitdir}/nfslock.service
520 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
521 %dir %{_datadir}/nfs-utils
522 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig