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
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: %{name}-common = %{version}-%{release}
132 Requires: systemd-units >= 0.38
133 Provides: nfs-server-clients
135 Obsoletes: knfsd-clients
136 Obsoletes: nfs-server-clients
137 Obsoletes: nfs-utils-clients-systemd
139 Conflicts: krb5-common < 1.7
142 The nfs-server-clients package contains the showmount program.
143 Showmount queries the mount daemon on a remote host for information
144 about the NFS (Network File System) server on the remote host. For
145 example, showmount can display the clients which are mounted on that
146 host. This package is not needed to mount NFS volumes.
148 %description clients -l pl.UTF-8
149 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
150 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
151 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
152 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
153 zamountowania zasobów NFS.
156 Summary: Common programs for NFS
157 Summary(pl.UTF-8): Wspólne programy do obsługi NFS
159 Requires(post,preun): /sbin/chkconfig
160 Provides: user(rpcstatd)
161 Provides: group(rpcstatd)
163 Provides: nfs-utils-lock
164 Requires: libnfsidmap >= 0.25-3
166 Requires: rpcbind >= 0.1.7
167 Requires: systemd-units >= 0.38
168 Obsoletes: nfs-utils-common-systemd
169 Obsoletes: nfs-utils-lock
170 Obsoletes: knfsd-lock
172 Conflicts: mount < 2.13-0.pre7.1
175 Common programs for NFS.
177 %description common -l pl.UTF-8
178 Wspólne programy do obsługi NFS.
191 %{__aclocal} -I aclocal
201 --enable-mountconfig \
202 --enable-libmount-mount \
210 --with-statdpath=/var/lib/nfs/statd \
211 --with-statedir=/var/lib/nfs \
212 --with-statduser=rpcstatd \
213 --with-start-statd=/sbin/start-statd \
214 --with-tcp-wrappers \
220 rm -rf $RPM_BUILD_ROOT
221 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d} \
222 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
223 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
226 DESTDIR=$RPM_BUILD_ROOT
228 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
230 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
232 # mount.nfs calls this script when mounting a filesystem with locking
233 # enabled, but when statd does not seem to be running (based on
234 # /var/run/rpc.statd.pid).
235 exec /sbin/rpc.statd --no-notify
238 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
239 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
241 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
242 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
245 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
246 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
247 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
248 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
249 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
250 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
251 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
252 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
253 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
254 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
256 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
257 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
258 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
259 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
260 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
261 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
262 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
263 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
264 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
265 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
266 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
267 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
268 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
270 # Disable old SysV service for systemd installs
271 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
272 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
274 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
275 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
277 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
278 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
279 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
280 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
281 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
282 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
283 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
284 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
286 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
288 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
293 rm -rf $RPM_BUILD_ROOT
296 /sbin/chkconfig --add nfs
297 %service nfs restart "NFS daemon"
298 /sbin/chkconfig --add svcgssd
299 %service svcgssd restart "RPC svcgssd"
300 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
303 if [ "$1" = "0" ]; then
305 /sbin/chkconfig --del nfs
306 %service svcgssd stop
307 /sbin/chkconfig --del svcgssd
309 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
315 /sbin/chkconfig --add nfsfs
316 %service nfsfs restart
317 /sbin/chkconfig --add gssd
318 %service gssd restart "RPC gssd"
319 /sbin/chkconfig --add blkmapd
320 %service blkmapd restart "pNFS blkmapd"
321 %systemd_post blkmapd.service gssd.service
324 if [ "$1" = "0" ]; then
326 /sbin/chkconfig --del nfsfs
328 /sbin/chkconfig --del gssd
329 %service blkmapd stop
330 /sbin/chkconfig --del blkmapd
332 %systemd_preun blkmapd.service gssd.service
338 %groupadd -g 191 rpcstatd
339 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
342 /sbin/chkconfig --add idmapd
343 %service idmapd restart "RPC idmapd"
344 /sbin/chkconfig --add nfslock
345 %service nfslock restart "RPC statd"
346 %systemd_post idmapd.service nfslock.service
349 if [ "$1" = "0" ]; then
351 /sbin/chkconfig --del idmapd
352 %service nfslock stop
353 /sbin/chkconfig --del nfslock
355 %systemd_preun idmapd.service nfslock.service
358 if [ "$1" = "0" ]; then
360 %groupremove rpcstatd
364 %triggerpostun -- %{name} < 1.2.5-5
365 if [ -f /etc/sysconfig/nfsd ]; then
366 . /etc/sysconfig/nfsd
368 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
369 for vers in 2 3 4 ; do
370 __var=$(eval echo \$NFSv$vers)
371 [ -n "$__var" -a "$__var" != "yes" ] && \
372 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
374 [ -z "$__RPCMOUNTDOPTIONS" ] && exit 0
375 cp -f /etc/sysconfig/nfsd{,.rpmsave}
376 echo >>/etc/sysconfig/nfsd
377 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
378 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
380 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
382 %triggerpostun clients -- %{name}-clients < 1.2.5-5
383 %systemd_trigger blkmapd.service gssd.service
385 %triggerpostun common -- %{name}-lock < 1.2.5-3
386 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
387 mv -f /etc/sysconfig/nfslock{,.rpmnew}
388 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
391 %triggerpostun common -- %{name}-common < 1.2.5-5
392 if [ -f /etc/sysconfig/nfslock ]; then
393 . /etc/sysconfig/nfslock
394 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
395 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
396 [ -z "$STATDOPTS" ] && exit 0
397 cp -f /etc/sysconfig/nfslock{,.rpmsave}
398 echo >>/etc/sysconfig/nfslock
399 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
400 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
402 %systemd_trigger idmapd.service nfslock.service
405 %defattr(644,root,root,755)
406 %doc ChangeLog README html
407 %attr(755,root,root) /sbin/rpcdebug
408 %attr(755,root,root) /sbin/fsck.nfs
409 %attr(755,root,root) %{_sbindir}/exportfs
410 %attr(755,root,root) %{_sbindir}/rpc.mountd
411 %attr(755,root,root) %{_sbindir}/rpc.nfsd
412 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
413 %attr(755,root,root) %{_sbindir}/nfsstat
415 %attr(754,root,root) /etc/rc.d/init.d/nfs
416 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
418 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
419 %dir %{_sysconfdir}/exports.d
421 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
422 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
423 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
424 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
426 %{_mandir}/man5/exports.5*
427 %{_mandir}/man7/nfsd.7*
428 %{_mandir}/man8/exportfs.8*
429 %{_mandir}/man8/mountd.8*
430 %{_mandir}/man8/nfsd.8*
431 %{_mandir}/man8/nfsstat.8*
432 %{_mandir}/man8/rpc.mountd.8*
433 %{_mandir}/man8/rpc.nfsd.8*
434 %{_mandir}/man8/rpc.svcgssd.8*
435 %{_mandir}/man8/rpcdebug.8*
436 %{_mandir}/man8/svcgssd.8*
438 %{systemdunitdir}/nfs.service
439 %{systemdunitdir}/nfsd.service
440 %{systemdunitdir}/nfsd-exportfs.service
441 %{systemdunitdir}/nfsd-mountd.service
442 %{systemdunitdir}/svcgssd.service
443 %{systemdunitdir}/proc-fs-nfsd.mount
444 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
445 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
448 %defattr(644,root,root,755)
449 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
450 %attr(754,root,root) /etc/rc.d/init.d/gssd
451 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
452 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
453 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
454 %attr(4755,root,root) /sbin/mount.nfs
455 %attr(4755,root,root) /sbin/umount.nfs
456 %attr(4755,root,root) /sbin/mount.nfs4
457 %attr(4755,root,root) /sbin/umount.nfs4
458 %attr(755,root,root) /sbin/blkmapd
459 %attr(755,root,root) /sbin/rpc.gssd
460 %attr(755,root,root) %{_sbindir}/mountstats
461 %attr(755,root,root) %{_sbindir}/nfsiostat
462 %attr(755,root,root) %{_sbindir}/showmount
463 %{_mandir}/man5/nfsmount.conf.5*
464 %{_mandir}/man8/blkmapd.8*
465 %{_mandir}/man8/gssd.8*
466 %{_mandir}/man8/mount.nfs.8*
467 %{_mandir}/man8/mountstats.8*
468 %{_mandir}/man8/nfsiostat.8*
469 %{_mandir}/man8/rpc.gssd.8*
470 %{_mandir}/man8/showmount.8*
471 %{_mandir}/man8/umount.nfs.8*
473 %{systemdunitdir}/nfsfs.service
474 %{systemdunitdir}/blkmapd.service
475 %{systemdunitdir}/gssd.service
478 %defattr(644,root,root,755)
479 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
480 %attr(754,root,root) /etc/rc.d/init.d/idmapd
481 %attr(754,root,root) /etc/rc.d/init.d/nfslock
482 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
483 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
484 %attr(755,root,root) %{_sbindir}/sm-notify
485 %attr(755,root,root) /sbin/nfsidmap
486 %attr(755,root,root) /sbin/rpc.idmapd
487 %attr(755,root,root) /sbin/rpc.statd
488 %attr(755,root,root) /sbin/start-statd
490 %dir %{_var}/lib/nfs/rpc_pipefs
491 %dir %{_var}/lib/nfs/v4recovery
492 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
493 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
494 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
495 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
496 %{_mandir}/man5/nfs.5*
497 %{_mandir}/man8/idmapd.8*
498 %{_mandir}/man8/nfsidmap.8*
499 %{_mandir}/man8/rpc.idmapd.8*
500 %{_mandir}/man8/rpc.sm-notify.8*
501 %{_mandir}/man8/rpc.statd.8*
502 %{_mandir}/man8/sm-notify.8*
503 %{_mandir}/man8/statd.8*
505 %{systemdunitdir}/idmapd.service
506 %{systemdunitdir}/nfslock.service
507 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
508 %dir %{_datadir}/nfs-utils
509 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig