]> git.pld-linux.org Git - packages/nfs-utils.git/blob - nfs-utils.spec
- fix memory leak in mountd
[packages/nfs-utils.git] / nfs-utils.spec
1 # TODO
2 # - should unmount /proc/fs/nfsd and /var/lib/nfs/rpc_pipefs at package
3 #       uninstall (or in service nfs stop)
4 #
5 # Conditional build:
6 %bcond_without  nfs4            # without NFSv4 support
7 %bcond_without  mount           # don't build mount.nfs program
8 #
9 Summary:        Kernel NFS server
10 Summary(pl.UTF-8):      Działający na poziomie jądra serwer NFS
11 Summary(pt_BR.UTF-8):   Os utilitários para o cliente e servidor NFS do Linux
12 Summary(ru.UTF-8):      Утилиты для NFS и демоны поддержки для NFS-сервера ядра
13 Summary(uk.UTF-8):      Утиліти для NFS та демони підтримки для NFS-сервера ядра
14 Name:           nfs-utils
15 Version:        1.1.0
16 %define _pre    rc2
17 Release:        0.%{_pre}.1
18 License:        GPL
19 Group:          Networking/Daemons
20 Source0:        ftp://ftp.kernel.org/pub/linux/utils/nfs/%{name}-%{version}-%{_pre}.tar.gz
21 # Source0-md5:  79125d8c058122611d1ef267c6498c4b
22 #Source1:       ftp://ftp.linuxnfs.sourceforge.org/pub/nfs/nfs.doc.tar.gz
23 Source1:        nfs.doc.tar.gz
24 # Source1-md5:  ae7db9c61c5ad04f83bb99e5caed73da
25 Source2:        nfs.init
26 Source3:        nfslock.init
27 Source4:        nfsfs.init
28 Source5:        rpcidmapd.init
29 Source6:        rpcgssd.init
30 Source7:        rpcsvcgssd.init
31 Source8:        nfs.sysconfig
32 Source9:        nfslock.sysconfig
33 Source10:       nfsfs.sysconfig
34 Patch0:         %{name}-eepro-support.patch
35 Patch1:         %{name}-install.patch
36 # http://www.citi.umich.edu/projects/nfsv4/linux/nfs-utils-patches/
37 #Patch2:                %{name}-1.0.11-CITI_NFS4_ALL-1.dif
38 Patch2:         %{name}-CITI_NFS4.patch
39 Patch3:         %{name}-statdpath.patch
40 Patch4:         %{name}-mount-fake.patch
41 Patch5:         %{name}-mountd.patch
42 Patch6:         %{name}-idmapd.conf.patch
43 Patch7:         %{name}-keytab-path.patch
44 Patch8:         %{name}-subsys.patch
45 URL:            http://nfs.sourceforge.net/
46 BuildRequires:  autoconf >= 2.59
47 BuildRequires:  automake
48 BuildRequires:  cpp
49 BuildRequires:  e2fsprogs-devel >= 1.39-5
50 %if %{with nfs4}
51 BuildRequires:  krb5-devel >= 1.6
52 BuildRequires:  libevent-devel >= 1.2
53 BuildRequires:  libnfsidmap-devel
54 BuildRequires:  librpcsecgss-devel >= 0.11-3
55 %endif
56 BuildRequires:  libtool
57 BuildRequires:  libwrap-devel
58 BuildRequires:  pkgconfig
59 BuildRequires:  sed >= 4.0
60 Requires(post): fileutils
61 Requires(post): sed >= 4.0
62 Requires(post,preun):   /sbin/chkconfig
63 Requires:       %{name}-common = %{version}-%{release}
64 Requires:       portmap >= 4.0
65 Requires:       rc-scripts >= 0.4.1.5
66 Requires:       setup >= 2.4.6-7
67 Provides:       nfsdaemon
68 Obsoletes:      knfsd
69 Obsoletes:      nfs-server
70 Obsoletes:      nfsdaemon
71 Conflicts:      kernel < 2.2.5
72 ExcludeArch:    armv4l
73 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
74
75 %description
76 This is the *new* kernel NFS server and related tools. It provides a
77 much higher level of performance than the traditional Linux user-land
78 NFS server.
79
80 %description -l pl.UTF-8
81 To jest *nowy* działający na poziomie jądra serwer NFS oraz związane z
82 nim narzędzia. Serwer ten dostarcza znacznie większą wydajność niż
83 tradycyjny, działający na poziomie użytkownika serwer NFS.
84
85 %description -l pt_BR.UTF-8
86 O pacote nfs-utils provê os utilitários para o cliente e servidor NFS
87 do Linux.
88
89 %description -l ru.UTF-8
90 Пакет nfs-utils предоставляет демона для NFS-сервера, включенного в
91 ядро, и сопутствующие утилиты, которые обеспечивают намного большую
92 производительность, чем традиционные Linux NFS-сервера, используемые
93 большинством пользователей.
94
95 %description -l uk.UTF-8
96 Пакет nfs-utils надає демона для NFS-сервера, вбудованого в ядро, та
97 супутні утиліти, які забезпечують набагато більшу продуктивність, ніж
98 традиційні Linux NFS-сервери, які використовує більшість користувачів.
99
100 %package clients
101 Summary:        Clients for connecting to a remote NFS server
102 Summary(pl.UTF-8):      Klienci do łączenia się ze zdalnym serwerem NFS
103 Group:          Networking
104 Requires(post,preun):   /sbin/chkconfig
105 Requires:       %{name}-common = %{version}-%{release}
106 Requires:       psmisc
107 Requires:       rc-scripts
108 Provides:       nfs-server-clients
109 Provides:       nfsclient
110 Obsoletes:      knfsd-clients
111 Obsoletes:      nfs-server-clients
112 Obsoletes:      nfsclient
113
114 %description clients
115 The nfs-server-clients package contains the showmount program.
116 Showmount queries the mount daemon on a remote host for information
117 about the NFS (Network File System) server on the remote host. For
118 example, showmount can display the clients which are mounted on that
119 host. This package is not needed to mount NFS volumes.
120
121 %description clients -l pl.UTF-8
122 Pakiet zawiera program showmount służący do odpytywania serwera NFS.
123 Showmount pyta demona na zdalnej maszynie o informacje NFS na zdalnym
124 hoście. Na przykład, showmount potrafi pokazać klientów, którzy są
125 zamountowani na tym serwerze. Ten pakiet nie jest konieczny do
126 zamountowania zasobów NFS.
127
128 %package lock
129 Summary:        Programs for NFS file locking
130 Summary(pl.UTF-8):      Programy do obsługi blokowania plików poprzez NFS (lock)
131 Group:          Networking
132 Requires(post,preun):   /sbin/chkconfig
133 Requires:       portmap >= 4.0
134 Requires:       rc-scripts
135 Provides:       group(rpcstatd)
136 Provides:       user(rpcstatd)
137 Provides:       nfslockd
138 Obsoletes:      knfsd-lock
139 Obsoletes:      nfslockd
140
141 %description lock
142 The nfs-lock pacage contains programs which support the NFS file lock.
143 Install nfs-lock if you want to use file lock over NFS.
144
145 %description lock -l pl.UTF-8
146 Ten pakiet zawiera programy umożliwiające wykonywanie blokowania
147 plików (file locking) poprzez NFS.
148
149 %package common
150 Summary:        Common programs for NFS
151 Summary(pl.UTF-8):      Wspólne programy do obsługi NFS
152 Group:          Networking
153
154 %description common
155 Common programs for NFS.
156
157 %description common -l pl.UTF-8
158 Wspólne programy do obsługi NFS.
159
160 %prep
161 %setup -q -a1 -n %{name}-%{version}-%{_pre}
162 %patch0 -p1
163 %patch1 -p1
164 # severly out of date
165 #%patch2 -p1
166 %patch3 -p1
167 %patch4 -p1
168 %patch5 -p1
169 %patch6 -p1
170 %patch7 -p1
171 %patch8 -p1
172
173 %build
174 %configure \
175 %if %{with nfs4}
176         --enable-gss \
177         --with-krb5=%{_prefix} \
178         --enable-nfsv4 \
179 %else
180         --disable-gss \
181         --disable-nfsv4 \
182 %endif
183         %{?with_mount:--enable-mount} \
184         --disable-rquotad \
185         --enable-nfsv3 \
186         --enable-secure-statd \
187         --with-statedir=/var/lib/nfs \
188         --with-tcp-wrappers
189
190 %{__make} all
191
192 %install
193 rm -rf $RPM_BUILD_ROOT
194 install -d $RPM_BUILD_ROOT{/sbin,%{_sbindir},%{_mandir}/man{5,8}} \
195         $RPM_BUILD_ROOT%{_sysconfdir}/{rc.d/init.d,sysconfig} \
196         $RPM_BUILD_ROOT%{_var}/lib/nfs/{rpc_pipefs,v4recovery,statd}
197
198 %{__make} install \
199         DESTDIR=$RPM_BUILD_ROOT
200
201 cat >$RPM_BUILD_ROOT%{_sbindir}/start-statd <<EOF
202 #!/bin/sh
203 # mount.nfs calls this script when mounting a filesystem with locking
204 # enabled, but when statd does not seem to be running (based on
205 # /var/run/rpc.statd.pid).
206 exec /sbin/service nfslock start
207 EOF
208
209 sed -e "s|#!/bin/bash|#!/bin/sh|" utils/gssd/gss_destroy_creds > $RPM_BUILD_ROOT%{_sbindir}/gss_destroy_creds
210
211 mv $RPM_BUILD_ROOT%{_sbindir}/rpcdebug $RPM_BUILD_ROOT/sbin
212 install utils/idmapd/idmapd.conf $RPM_BUILD_ROOT%{_sysconfdir}/
213
214 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfs
215 install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfslock
216 install %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/nfsfs
217 install %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/idmapd
218 install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/gssd
219 install %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/svcgssd
220 install %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/nfsd
221 install %{SOURCE9} $RPM_BUILD_ROOT/etc/sysconfig/nfslock
222 install %{SOURCE10} $RPM_BUILD_ROOT/etc/sysconfig/nfsfs
223
224 > $RPM_BUILD_ROOT%{_var}/lib/nfs/rmtab
225 > $RPM_BUILD_ROOT%{_sysconfdir}/exports
226
227 rm $RPM_BUILD_ROOT%{_mandir}/man8/rpc.{mountd,nfsd,statd,svcgssd,gssd,idmapd,sm-notify}.8
228 echo ".so mountd.8"  >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.mountd.8
229 echo ".so nfsd.8"    >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.nfsd.8
230 echo ".so statd.8"   >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.statd.8
231 echo ".so sm-notify.8" > $RPM_BUILD_ROOT%{_mandir}/man8/rpc.sm-notify.8
232 %if %{with nfs4}
233 echo ".so gssd.8"    >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.gssd.8
234 echo ".so idmapd.8"  >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.idmapd.8
235 echo ".so svcgssd.8" >  $RPM_BUILD_ROOT%{_mandir}/man8/rpc.svcgssd.8
236 %endif
237
238 touch $RPM_BUILD_ROOT/var/lib/nfs/xtab
239
240 ln -sf /bin/true $RPM_BUILD_ROOT/sbin/fsck.nfs
241
242 cp -a nfs html
243
244 %clean
245 rm -rf $RPM_BUILD_ROOT
246
247 %post
248 /sbin/chkconfig --add nfs
249 %service nfs restart "NFS daemon"
250 %if %{with nfs4}
251 /sbin/chkconfig --add svcgssd
252 %service svcgssd restart "RPC svcgssd"
253 %endif
254
255 %preun
256 if [ "$1" = "0" ]; then
257         %service nfs stop
258         /sbin/chkconfig --del nfs
259 %if %{with nfs4}
260         %service svcgssd stop
261         /sbin/chkconfig --del svcgssd
262 %endif
263 fi
264
265 %post clients
266 /sbin/chkconfig --add nfsfs
267 %service nfsfs restart
268 %if %{with nfs4}
269 /sbin/chkconfig --add gssd
270 %service gssd restart "RPC gssd"
271 %endif
272
273 %preun clients
274 if [ "$1" = "0" ]; then
275         %service nfsfs stop
276         /sbin/chkconfig --del nfsfs
277 %if %{with nfs4}
278         %service gssd stop
279         /sbin/chkconfig --del gssd
280 %endif
281 fi
282
283 %pre lock
284 %groupadd -g 191 rpcstatd
285 %useradd -u 191 -d /var/lib/nfs/statd -s /bin/false -c "RPC statd user" -g rpcstatd rpcstatd
286
287 %post lock
288 /sbin/chkconfig --add nfslock
289 %service nfslock restart "RPC statd"
290
291 %preun lock
292 if [ "$1" = "0" ]; then
293         %service nfslock stop
294         /sbin/chkconfig --del nfslock
295 fi
296
297 %postun lock
298 if [ "$1" = "0" ]; then
299         %userremove rpcstatd
300         %groupremove rpcstatd
301 fi
302
303 %if %{with nfs4}
304 %post common
305 /sbin/chkconfig --add idmapd
306 %service idmapd restart "RPC idmapd"
307
308 %preun common
309 if [ "$1" = "0" ]; then
310         %service idmapd stop
311         /sbin/chkconfig --del idmapd
312 fi
313 %endif
314
315 %triggerpostun -- %{name} <= 1.1.0-0.rc1.1
316 /sbin/chkconfig nfs reset
317 %if %{with nfs4}
318 /sbin/chkconfig svcgssd reset
319 %endif
320
321 %triggerpostun lock -- %{name}-lock <= 1.1.0-0.rc1.1
322 /sbin/chkconfig nfslock reset
323
324 %triggerpostun clients -- %{name}-clients < 1.1.0-0.rc1.1
325 if [ -f /etc/sysconfig/nfsclient.rpmsave ]; then
326         mv -f /etc/sysconfig/nfsfs{,.rpmnew}
327         mv -f /etc/sysconfig/nfsclient.rpmsave /etc/sysconfig/nfsfs
328 fi
329 /sbin/chkconfig nfsfs reset
330 %if %{with nfs4}
331 /sbin/chkconfig gssd reset
332 %endif
333
334 %if %{with nfs4}
335 %triggerpostun common -- %{name}-common <= 1.1.0-0.rc1.1
336 /sbin/chkconfig idmapd reset
337 %endif
338
339 %files
340 %defattr(644,root,root,755)
341 %doc ChangeLog README html
342 %attr(755,root,root) /sbin/rpcdebug
343 %attr(755,root,root) /sbin/fsck.nfs
344 %attr(755,root,root) %{_sbindir}/exportfs
345 %attr(755,root,root) %{_sbindir}/rpc.mountd
346 %attr(755,root,root) %{_sbindir}/rpc.nfsd
347 %attr(755,root,root) %{_sbindir}/nfsstat
348
349 %attr(754,root,root) /etc/rc.d/init.d/nfs
350
351 %attr(664,root,fileshare) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/exports
352 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsd
353 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/xtab
354 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/etab
355 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/rmtab
356
357 %{_mandir}/man5/exports.5*
358 %{_mandir}/man7/nfsd.7*
359 %{_mandir}/man8/exportfs.8*
360 %{_mandir}/man8/mountd.8*
361 %{_mandir}/man8/nfsd.8*
362 %{_mandir}/man8/nfsstat.8*
363 %{_mandir}/man8/rpc.mountd.8*
364 %{_mandir}/man8/rpc.nfsd.8*
365 %{_mandir}/man8/rpcdebug.8*
366 %if %{with nfs4}
367 %attr(754,root,root) /etc/rc.d/init.d/svcgssd
368 %attr(755,root,root) %{_sbindir}/rpc.svcgssd
369 %{_mandir}/man8/*svcgss*
370 %endif
371
372 %files lock
373 %defattr(644,root,root,755)
374 %attr(700,rpcstatd,rpcstatd) %dir %{_var}/lib/nfs/statd
375 %attr(755,root,root) %{_sbindir}/rpc.statd
376 %attr(755,root,root) %{_sbindir}/sm-notify
377 %attr(755,root,root) %{_sbindir}/start-statd
378 %attr(754,root,root) /etc/rc.d/init.d/nfslock
379 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfslock
380 %{_mandir}/man8/*statd.8*
381 %{_mandir}/man8/*sm-notify.8*
382 %config(noreplace) %verify(not md5 mtime size) %{_var}/lib/nfs/state
383
384 %files clients
385 %defattr(644,root,root,755)
386 %attr(754,root,root) /etc/rc.d/init.d/nfsfs
387 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/nfsfs
388 %attr(755,root,root) %{_sbindir}/showmount
389 %{_mandir}/man8/showmount.8*
390 %if %{with mount}
391 %attr(4755,root,root) /sbin/mount.nfs
392 %attr(4755,root,root) /sbin/mount.nfs4
393 %attr(4755,root,root) /sbin/umount.nfs
394 %attr(4755,root,root) /sbin/umount.nfs4
395 %{_mandir}/man8/*mount.nfs.8*
396 %endif
397 %if %{with nfs4}
398 %attr(754,root,root) /etc/rc.d/init.d/gssd
399 %attr(755,root,root) %{_sbindir}/rpc.gssd
400 %{_mandir}/man8/rpc.gssd*
401 %{_mandir}/man8/gssd*
402 %endif
403
404 %files common
405 %defattr(644,root,root,755)
406 %attr(755,root,root) %dir %{_var}/lib/nfs
407 %attr(755,root,root) %dir %{_var}/lib/nfs/rpc_pipefs
408 %attr(755,root,root) %dir %{_var}/lib/nfs/v4recovery
409 %{_mandir}/man5/nfs*
410 %if %{with nfs4}
411 %attr(754,root,root) /etc/rc.d/init.d/idmapd
412 %attr(755,root,root) %{_sbindir}/gss_*
413 %attr(755,root,root) %{_sbindir}/rpc.idmapd
414 %attr(660,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/idmapd.conf
415 %{_mandir}/man[58]/*idmap*
416 %endif
This page took 0.104048 seconds and 3 git commands to generate.