3 %bcond_with krb5 # build with MIT Kerberos (+libgssglue) 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: http://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: 8395ac770720b83c5c469f88306d7765
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
32 Source100: proc-fs-nfsd.mount
33 Source101: var-lib-nfs-rpc_pipefs.mount
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}-heimdal-kcm.patch
51 URL: http://nfs.sourceforge.net/
52 BuildRequires: autoconf >= 2.59
53 BuildRequires: automake
55 BuildRequires: keyutils-devel
56 BuildRequires: libblkid-devel >= 1.40
57 BuildRequires: libmount-devel
58 BuildRequires: libcap-devel
59 BuildRequires: device-mapper-devel
60 BuildRequires: libevent-devel >= 1.2
61 BuildRequires: libnfsidmap-devel >= 0.24
62 BuildRequires: libtool
63 BuildRequires: libwrap-devel
64 BuildRequires: pkgconfig
65 BuildRequires: rpm-pythonprov
67 BuildRequires: libtirpc-devel >= 1:0.1.10-4
69 BuildRequires: librpcsecgss-devel >= 0.16
72 BuildRequires: krb5-devel >= 1.6
73 BuildRequires: libgssglue-devel >= 0.3
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: %{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
93 Conflicts: kernel < 2.2.5
94 Conflicts: krb5-common < 1.7
96 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
99 This is the *new* kernel NFS server and related tools. It provides a
100 much higher level of performance than the traditional Linux user-land
103 %description -l pl.UTF-8
104 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
105 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
106 tradycyjny, działający na poziomie użytkownika serwer NFS.
108 %description -l pt_BR.UTF-8
109 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
112 %description -l ru.UTF-8
113 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
114 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
115 производительность, чем традиционные Linux NFS-сервера, используемые
116 большинством пользователей.
118 %description -l uk.UTF-8
119 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
120 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
121 традиційні Linux NFS-сервери, які використовує більшість користувачів.
124 Summary: Clients for connecting to a remote NFS server
125 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
127 Requires(post,preun): /sbin/chkconfig
128 Requires: %{name}-common = %{version}-%{release}
131 Requires: systemd-units >= 0.38
132 Provides: nfs-server-clients
134 Obsoletes: knfsd-clients
135 Obsoletes: nfs-server-clients
137 Conflicts: krb5-common < 1.7
140 The nfs-server-clients package contains the showmount program.
141 Showmount queries the mount daemon on a remote host for information
142 about the NFS (Network File System) server on the remote host. For
143 example, showmount can display the clients which are mounted on that
144 host. This package is not needed to mount NFS volumes.
146 %description clients -l pl.UTF-8
147 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
148 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
149 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
150 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
151 zamountowania zasobów NFS.
154 Summary: Common programs for NFS
155 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
157 Requires(post,preun): /sbin/chkconfig
158 Provides: user(rpcstatd)
159 Provides: group(rpcstatd)
161 Provides: nfs-utils-lock
162 Requires: libnfsidmap >= 0.25-3
164 Requires: rpcbind >= 0.1.7
165 Requires: systemd-units >= 0.38
166 Obsoletes: nfs-utils-lock
167 Obsoletes: knfsd-lock
169 Conflicts: mount < 2.13-0.pre7.1
172 Common programs for NFS.
174 %description common -l pl.UTF-8
175 Wspólne programy do obsługi NFS.
188 %{__aclocal} -I aclocal
198 --enable-mountconfig \
199 --enable-libmount-mount \
207 --with-statdpath=/var/lib/nfs/statd \
208 --with-statedir=/var/lib/nfs \
209 --with-statduser=rpcstatd \
210 --with-start-statd=/sbin/start-statd \
211 --with-tcp-wrappers \
217 rm -rf $RPM_BUILD_ROOT
218 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d} \
219 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
220 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
223 DESTDIR=$RPM_BUILD_ROOT
225 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
227 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
229 # mount.nfs calls this script when mounting a filesystem with locking
230 # enabled, but when statd does not seem to be running (based on
231 # /var/run/rpc.statd.pid).
232 exec /sbin/rpc.statd --no-notify
235 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
236 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
238 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
239 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
242 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
243 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
244 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
245 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
246 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
247 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
248 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
249 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
250 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
251 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
253 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
254 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
255 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
256 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
257 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
258 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
259 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
260 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
261 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
262 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
263 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
264 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
265 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
267 # Disable old SysV service for systemd installs
268 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
269 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
271 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
272 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
274 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
275 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
276 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
277 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
278 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
279 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
280 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
281 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
283 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
285 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
290 rm -rf $RPM_BUILD_ROOT
293 /sbin/chkconfig --add nfs
294 %service nfs restart "NFS daemon"
295 /sbin/chkconfig --add svcgssd
296 %service svcgssd restart "RPC svcgssd"
297 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
300 if [ "$1" = "0" ]; then
302 /sbin/chkconfig --del nfs
303 %service svcgssd stop
304 /sbin/chkconfig --del svcgssd
306 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
312 /sbin/chkconfig --add nfsfs
313 %service nfsfs restart
314 /sbin/chkconfig --add gssd
315 %service gssd restart "RPC gssd"
316 /sbin/chkconfig --add blkmapd
317 %service blkmapd restart "pNFS blkmapd"
318 %systemd_post blkmapd.service gssd.service
321 if [ "$1" = "0" ]; then
323 /sbin/chkconfig --del nfsfs
325 /sbin/chkconfig --del gssd
326 %service blkmapd stop
327 /sbin/chkconfig --del blkmapd
329 %systemd_preun blkmapd.service gssd.service
335 %groupadd -g 191 rpcstatd
336 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
339 /sbin/chkconfig --add idmapd
340 %service idmapd restart "RPC idmapd"
341 /sbin/chkconfig --add nfslock
342 %service nfslock restart "RPC statd"
343 %systemd_post idmapd.service nfslock.service
346 if [ "$1" = "0" ]; then
348 /sbin/chkconfig --del idmapd
349 %service nfslock stop
350 /sbin/chkconfig --del nfslock
352 %systemd_preun idmapd.service nfslock.service
355 if [ "$1" = "0" ]; then
357 %groupremove rpcstatd
361 %triggerpostun -- %{name} < 1.2.5-5
362 if [ -f /etc/sysconfig/nfsd ]; then
363 . /etc/sysconfig/nfsd
365 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
366 for vers in 2 3 4 ; do
367 __var=$(eval echo \$NFSv$vers)
368 [ -n "$__var" -a "$__var" != "yes" ] && \
369 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
371 [ -z "$__RPCMOUNTDOPTIONS" ] && exit 0
372 cp -f /etc/sysconfig/nfsd{,.rpmsave}
373 echo >>/etc/sysconfig/nfsd
374 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
375 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
377 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
379 %triggerpostun clients -- %{name}-clients < 1.2.5-5
380 %systemd_trigger blkmapd.service gssd.service
382 %triggerpostun common -- %{name}-lock < 1.2.5-3
383 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
384 mv -f /etc/sysconfig/nfslock{,.rpmnew}
385 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
388 %triggerpostun common -- %{name}-common < 1.2.5-5
389 if [ -f /etc/sysconfig/nfslock ]; then
390 . /etc/sysconfig/nfslock
391 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
392 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
393 [ -z "$STATDOPTS" ] && exit 0
394 cp -f /etc/sysconfig/nfslock{,.rpmsave}
395 echo >>/etc/sysconfig/nfslock
396 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
397 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
399 %systemd_trigger idmapd.service nfslock.service
402 %defattr(644,root,root,755)
403 %doc ChangeLog README html
404 %attr(755,root,root) /sbin/rpcdebug
405 %attr(755,root,root) /sbin/fsck.nfs
406 %attr(755,root,root) %{_sbindir}/exportfs
407 %attr(755,root,root) %{_sbindir}/rpc.mountd
408 %attr(755,root,root) %{_sbindir}/rpc.nfsd
409 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
410 %attr(755,root,root) %{_sbindir}/nfsstat
412 %attr(754,root,root) /etc/rc.d/init.d/nfs
413 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
415 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
416 %dir %{_sysconfdir}/exports.d
418 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
419 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
420 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
421 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
423 %{_mandir}/man5/exports.5*
424 %{_mandir}/man7/nfsd.7*
425 %{_mandir}/man8/exportfs.8*
426 %{_mandir}/man8/mountd.8*
427 %{_mandir}/man8/nfsd.8*
428 %{_mandir}/man8/nfsstat.8*
429 %{_mandir}/man8/rpc.mountd.8*
430 %{_mandir}/man8/rpc.nfsd.8*
431 %{_mandir}/man8/rpc.svcgssd.8*
432 %{_mandir}/man8/rpcdebug.8*
433 %{_mandir}/man8/svcgssd.8*
435 %{systemdunitdir}/nfs.service
436 %{systemdunitdir}/nfsd.service
437 %{systemdunitdir}/nfsd-exportfs.service
438 %{systemdunitdir}/nfsd-mountd.service
439 %{systemdunitdir}/svcgssd.service
440 %{systemdunitdir}/proc-fs-nfsd.mount
441 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
442 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
445 %defattr(644,root,root,755)
446 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
447 %attr(754,root,root) /etc/rc.d/init.d/gssd
448 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
449 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
450 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
451 %attr(4755,root,root) /sbin/mount.nfs
452 %attr(4755,root,root) /sbin/umount.nfs
453 %attr(4755,root,root) /sbin/mount.nfs4
454 %attr(4755,root,root) /sbin/umount.nfs4
455 %attr(755,root,root) /sbin/blkmapd
456 %attr(755,root,root) /sbin/rpc.gssd
457 %attr(755,root,root) %{_sbindir}/mountstats
458 %attr(755,root,root) %{_sbindir}/nfsiostat
459 %attr(755,root,root) %{_sbindir}/showmount
460 %{_mandir}/man5/nfsmount.conf.5*
461 %{_mandir}/man8/blkmapd.8*
462 %{_mandir}/man8/gssd.8*
463 %{_mandir}/man8/mount.nfs.8*
464 %{_mandir}/man8/mountstats.8*
465 %{_mandir}/man8/nfsiostat.8*
466 %{_mandir}/man8/rpc.gssd.8*
467 %{_mandir}/man8/showmount.8*
468 %{_mandir}/man8/umount.nfs.8*
470 %{systemdunitdir}/nfsfs.service
471 %{systemdunitdir}/blkmapd.service
472 %{systemdunitdir}/gssd.service
475 %defattr(644,root,root,755)
476 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
477 %attr(754,root,root) /etc/rc.d/init.d/idmapd
478 %attr(754,root,root) /etc/rc.d/init.d/nfslock
479 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
480 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
481 %attr(755,root,root) %{_sbindir}/sm-notify
482 %attr(755,root,root) /sbin/nfsidmap
483 %attr(755,root,root) /sbin/rpc.idmapd
484 %attr(755,root,root) /sbin/rpc.statd
485 %attr(755,root,root) /sbin/start-statd
487 %dir %{_var}/lib/nfs/rpc_pipefs
488 %dir %{_var}/lib/nfs/v4recovery
489 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
490 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
491 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
492 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
493 %{_mandir}/man5/nfs.5*
494 %{_mandir}/man8/idmapd.8*
495 %{_mandir}/man8/nfsidmap.8*
496 %{_mandir}/man8/rpc.idmapd.8*
497 %{_mandir}/man8/rpc.sm-notify.8*
498 %{_mandir}/man8/rpc.statd.8*
499 %{_mandir}/man8/sm-notify.8*
500 %{_mandir}/man8/statd.8*
502 %{systemdunitdir}/idmapd.service
503 %{systemdunitdir}/nfslock.service
504 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
505 %dir %{_datadir}/nfs-utils
506 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig