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
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: %{name}-heimdal-kcm.patch
52 URL: http://nfs.sourceforge.net/
53 BuildRequires: autoconf >= 2.59
54 BuildRequires: automake
56 BuildRequires: keyutils-devel
57 BuildRequires: libblkid-devel >= 1.40
58 BuildRequires: libmount-devel
59 BuildRequires: libcap-devel
60 BuildRequires: device-mapper-devel
61 BuildRequires: libevent-devel >= 1.2
62 BuildRequires: libnfsidmap-devel >= 0.24
63 BuildRequires: libtool
64 BuildRequires: libwrap-devel
65 BuildRequires: pkgconfig
66 BuildRequires: rpm-pythonprov
68 BuildRequires: libtirpc-devel >= 1:0.1.10-4
70 BuildRequires: librpcsecgss-devel >= 0.16
73 BuildRequires: krb5-devel >= 1.6
74 BuildRequires: libgssglue-devel >= 0.3
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: %{name}-common = %{version}-%{release}
85 Requires: libevent >= 2.0.14-2
86 Requires: rc-scripts >= 0.4.1.5
87 Requires: rpcbind >= 0.1.7
88 Requires: setup >= 2.4.6-7
89 Requires: systemd-units >= 0.38
93 Obsoletes: nfs-utils-systemd
95 Conflicts: kernel < 2.2.5
96 Conflicts: krb5-common < 1.7
98 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
101 This is the *new* kernel NFS server and related tools. It provides a
102 much higher level of performance than the traditional Linux user-land
105 %description -l pl.UTF-8
106 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
107 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
108 tradycyjny, działający na poziomie użytkownika serwer NFS.
110 %description -l pt_BR.UTF-8
111 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
114 %description -l ru.UTF-8
115 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
116 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
117 производительность, чем традиционные Linux NFS-сервера, используемые
118 большинством пользователей.
120 %description -l uk.UTF-8
121 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
122 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
123 традиційні Linux NFS-сервери, які використовує більшість користувачів.
126 Summary: Clients for connecting to a remote NFS server
127 Summary(pl.UTF-8): Klienci do łączenia się ze zdalnym serwerem NFS
129 Requires(post,preun): /sbin/chkconfig
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 Provides: user(rpcstatd)
162 Provides: group(rpcstatd)
164 Provides: nfs-utils-lock
165 Requires: libnfsidmap >= 0.25-3
167 Requires: rpcbind >= 0.1.7
168 Requires: systemd-units >= 0.38
169 Obsoletes: nfs-utils-common-systemd
170 Obsoletes: nfs-utils-lock
171 Obsoletes: knfsd-lock
173 Conflicts: mount < 2.13-0.pre7.1
176 Common programs for NFS.
178 %description common -l pl.UTF-8
179 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 \
221 rm -rf $RPM_BUILD_ROOT
222 install -d $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig,exports.d,modprobe.d} \
223 $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery} \
224 $RPM_BUILD_ROOT{%{systemdunitdir},%{_datadir}/nfs-utils}
227 DESTDIR=$RPM_BUILD_ROOT
229 install -p utils/mount/nfsmount.conf $RPM_BUILD_ROOT/etc
231 cat >$RPM_BUILD_ROOT/sbin/start-statd <<EOF
233 # mount.nfs calls this script when mounting a filesystem with locking
234 # enabled, but when statd does not seem to be running (based on
235 # /var/run/rpc.statd.pid).
236 exec /sbin/rpc.statd --no-notify
239 %{__sed} -i -e "s|#!/bin/bash|#!/bin/sh|" $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
240 %{__sed} -i -e 's|%{_sbindir}nfsidmap|/sbin/nfsidmap|g' $RPM_BUILD_ROOT%{_mandir}/man8/nfsidmap.8
242 for f in rpcdebug blkmapd nfsidmap rpc.gssd rpc.idmapd rpc.statd ; do
243 mv $RPM_BUILD_ROOT%{_sbindir}/$f $RPM_BUILD_ROOT/sbin
246 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
247 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
248 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
249 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
250 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
251 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
252 install %{SOURCE11} $RPM_BUILD_ROOT/etc/rc.d/init.d/blkmapd
253 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
254 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
255 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
257 install %{SOURCE12} $RPM_BUILD_ROOT/etc/modprobe.d/sunrpc.conf
259 install %{SOURCE100} $RPM_BUILD_ROOT%{systemdunitdir}/proc-fs-nfsd.mount
260 install %{SOURCE101} $RPM_BUILD_ROOT%{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
261 install %{SOURCE102} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd.service
262 install %{SOURCE103} $RPM_BUILD_ROOT%{systemdunitdir}/blkmapd.service
263 install %{SOURCE104} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-exportfs.service
264 install %{SOURCE105} $RPM_BUILD_ROOT%{systemdunitdir}/gssd.service
265 install %{SOURCE106} $RPM_BUILD_ROOT%{systemdunitdir}/idmapd.service
266 install %{SOURCE107} $RPM_BUILD_ROOT%{systemdunitdir}/nfslock.service
267 install %{SOURCE108} $RPM_BUILD_ROOT%{systemdunitdir}/nfsd-mountd.service
268 install %{SOURCE109} $RPM_BUILD_ROOT%{systemdunitdir}/svcgssd.service
269 install %{SOURCE110} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.postconfig
270 install %{SOURCE111} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfsd.preconfig
271 install %{SOURCE112} $RPM_BUILD_ROOT%{_datadir}/nfs-utils/nfslock.preconfig
273 # Disable old SysV service for systemd installs
274 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfs.service
275 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/nfsfs.service
277 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
278 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
280 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,sm-notify,svcgssd,gssd,idmapd}.8
281 echo ".so mountd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
282 echo ".so nfsd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
283 echo ".so statd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
284 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
285 echo ".so gssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
286 echo ".so idmapd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
287 echo ".so svcgssd.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
289 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
291 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
296 rm -rf $RPM_BUILD_ROOT
299 /sbin/chkconfig --add nfs
300 %service nfs restart "NFS daemon"
301 /sbin/chkconfig --add svcgssd
302 %service svcgssd restart "RPC svcgssd"
303 %systemd_post nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
306 if [ "$1" = "0" ]; then
308 /sbin/chkconfig --del nfs
309 %service svcgssd stop
310 /sbin/chkconfig --del svcgssd
312 %systemd_preun nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
318 /sbin/chkconfig --add nfsfs
319 %service nfsfs restart
320 /sbin/chkconfig --add gssd
321 %service gssd restart "RPC gssd"
322 /sbin/chkconfig --add blkmapd
323 %service blkmapd restart "pNFS blkmapd"
324 %systemd_post blkmapd.service gssd.service
327 if [ "$1" = "0" ]; then
329 /sbin/chkconfig --del nfsfs
331 /sbin/chkconfig --del gssd
332 %service blkmapd stop
333 /sbin/chkconfig --del blkmapd
335 %systemd_preun blkmapd.service gssd.service
341 %groupadd -g 191 rpcstatd
342 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
345 /sbin/chkconfig --add idmapd
346 %service idmapd restart "RPC idmapd"
347 /sbin/chkconfig --add nfslock
348 %service nfslock restart "RPC statd"
349 %systemd_post idmapd.service nfslock.service
352 if [ "$1" = "0" ]; then
354 /sbin/chkconfig --del idmapd
355 %service nfslock stop
356 /sbin/chkconfig --del nfslock
358 %systemd_preun idmapd.service nfslock.service
361 if [ "$1" = "0" ]; then
363 %groupremove rpcstatd
367 %triggerpostun -- %{name} < 1.2.5-7
368 if [ -f /etc/sysconfig/nfsd ]; then
369 . /etc/sysconfig/nfsd
371 [ -n "$MOUNTD_PORT" ] && __RPCMOUNTDOPTIONS="-p $MOUNTD_PORT"
372 for vers in 2 3 4 ; do
373 __var=$(eval echo \$NFSv$vers)
374 [ -n "$__var" -a "$__var" != "yes" ] && \
375 __RPCMOUNTDOPTIONS="$__RPCMOUNTDOPTIONS --no-nfs-version $vers"
377 if [ -n "$__RPCMOUNTDOPTIONS" ]; then
378 %{__cp} -f /etc/sysconfig/nfsd{,.rpmsave}
379 echo >>/etc/sysconfig/nfsd
380 echo "# Added by rpm trigger" >>/etc/sysconfig/nfsd
381 echo "RPCMOUNTDOPTIONS=\"$RPCMOUNTOPTIONS $__RPCMOUNTDOPTIONS\"" >>/etc/sysconfig/nfsd
384 %systemd_trigger nfsd.service nfsd-exportfs.service nfsd-mountd.service svcgssd.service
386 %triggerpostun clients -- %{name}-clients < 1.2.5-7
387 %systemd_trigger blkmapd.service gssd.service
389 %triggerpostun common -- %{name}-lock < 1.2.5-3
390 if [ -f /etc/sysconfig/nfslock.rpmsave ]; then
391 mv -f /etc/sysconfig/nfslock{,.rpmnew}
392 mv -f /etc/sysconfig/nfslock.rpmsave /etc/sysconfig/nfslock
395 %triggerpostun common -- %{name}-common < 1.2.5-7
396 if [ -f /etc/sysconfig/nfslock ]; then
397 . /etc/sysconfig/nfslock
398 [ -n "$STATD_PORT" ] && STATDOPTS="$STATDOPTS -p $STATD_PORT"
399 [ -n "$STATD_OUTPORT" ] && STATDOPTS="$STATDOPTS -o $STATD_OUTPORT"
400 if [ -n "$STATDOPTS" ]; then
401 %{__cp} -f /etc/sysconfig/nfslock{,.rpmsave}
402 echo >>/etc/sysconfig/nfslock
403 echo "# Added by rpm trigger" >>/etc/sysconfig/nfslock
404 echo "STATDOPTIONS=\"$STATDOPTS\"" >>/etc/sysconfig/nfslock
407 %systemd_trigger idmapd.service nfslock.service
410 %defattr(644,root,root,755)
411 %doc ChangeLog README html
412 %attr(755,root,root) /sbin/rpcdebug
413 %attr(755,root,root) /sbin/fsck.nfs
414 %attr(755,root,root) %{_sbindir}/exportfs
415 %attr(755,root,root) %{_sbindir}/rpc.mountd
416 %attr(755,root,root) %{_sbindir}/rpc.nfsd
417 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
418 %attr(755,root,root) %{_sbindir}/nfsstat
420 %attr(754,root,root) /etc/rc.d/init.d/nfs
421 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
423 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
424 %dir %{_sysconfdir}/exports.d
426 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
427 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
428 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
429 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
431 %{_mandir}/man5/exports.5*
432 %{_mandir}/man7/nfsd.7*
433 %{_mandir}/man8/exportfs.8*
434 %{_mandir}/man8/mountd.8*
435 %{_mandir}/man8/nfsd.8*
436 %{_mandir}/man8/nfsstat.8*
437 %{_mandir}/man8/rpc.mountd.8*
438 %{_mandir}/man8/rpc.nfsd.8*
439 %{_mandir}/man8/rpc.svcgssd.8*
440 %{_mandir}/man8/rpcdebug.8*
441 %{_mandir}/man8/svcgssd.8*
443 %{systemdunitdir}/nfs.service
444 %{systemdunitdir}/nfsd.service
445 %{systemdunitdir}/nfsd-exportfs.service
446 %{systemdunitdir}/nfsd-mountd.service
447 %{systemdunitdir}/svcgssd.service
448 %{systemdunitdir}/proc-fs-nfsd.mount
449 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.postconfig
450 %attr(755,root,root) %{_datadir}/nfs-utils/nfsd.preconfig
453 %defattr(644,root,root,755)
454 %attr(754,root,root) /etc/rc.d/init.d/blkmapd
455 %attr(754,root,root) /etc/rc.d/init.d/gssd
456 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
457 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
458 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) /etc/nfsmount.conf
459 %attr(4755,root,root) /sbin/mount.nfs
460 %attr(4755,root,root) /sbin/umount.nfs
461 %attr(4755,root,root) /sbin/mount.nfs4
462 %attr(4755,root,root) /sbin/umount.nfs4
463 %attr(755,root,root) /sbin/blkmapd
464 %attr(755,root,root) /sbin/rpc.gssd
465 %attr(755,root,root) %{_sbindir}/mountstats
466 %attr(755,root,root) %{_sbindir}/nfsiostat
467 %attr(755,root,root) %{_sbindir}/showmount
468 %{_mandir}/man5/nfsmount.conf.5*
469 %{_mandir}/man8/blkmapd.8*
470 %{_mandir}/man8/gssd.8*
471 %{_mandir}/man8/mount.nfs.8*
472 %{_mandir}/man8/mountstats.8*
473 %{_mandir}/man8/nfsiostat.8*
474 %{_mandir}/man8/rpc.gssd.8*
475 %{_mandir}/man8/showmount.8*
476 %{_mandir}/man8/umount.nfs.8*
478 %{systemdunitdir}/nfsfs.service
479 %{systemdunitdir}/blkmapd.service
480 %{systemdunitdir}/gssd.service
483 %defattr(644,root,root,755)
484 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
485 %attr(754,root,root) /etc/rc.d/init.d/idmapd
486 %attr(754,root,root) /etc/rc.d/init.d/nfslock
487 %config(noreplace) %verify(not md5 mtime size) /etc/modprobe.d/sunrpc.conf
488 %attr(755,root,root) %{_sbindir}/gss_clnt_send_err
489 %attr(755,root,root) %{_sbindir}/gss_destroy_creds
490 %attr(755,root,root) %{_sbindir}/sm-notify
491 %attr(755,root,root) /sbin/nfsidmap
492 %attr(755,root,root) /sbin/rpc.idmapd
493 %attr(755,root,root) /sbin/rpc.statd
494 %attr(755,root,root) /sbin/start-statd
496 %dir %{_var}/lib/nfs/rpc_pipefs
497 %dir %{_var}/lib/nfs/v4recovery
498 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
499 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm
500 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd/sm.bak
501 %attr(600,rpcstatd,rpcstatd) %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/statd/state
502 %{_mandir}/man5/nfs.5*
503 %{_mandir}/man8/idmapd.8*
504 %{_mandir}/man8/nfsidmap.8*
505 %{_mandir}/man8/rpc.idmapd.8*
506 %{_mandir}/man8/rpc.sm-notify.8*
507 %{_mandir}/man8/rpc.statd.8*
508 %{_mandir}/man8/sm-notify.8*
509 %{_mandir}/man8/statd.8*
511 %{systemdunitdir}/idmapd.service
512 %{systemdunitdir}/nfslock.service
513 %{systemdunitdir}/var-lib-nfs-rpc_pipefs.mount
514 %dir %{_datadir}/nfs-utils
515 %attr(755,root,root) %{_datadir}/nfs-utils/nfslock.preconfig