]> git.pld-linux.org Git - packages/nagios.git/blob - nagios.spec
- lib64 safe resource.cfg, rel 2
[packages/nagios.git] / nagios.spec
1 # Conditional build:
2 %bcond_without  gd      # without statusmap and trends, which require gd library
3 #
4 Summary:        Host/service/network monitoring program
5 Summary(pl):    Program do monitorowania serwerów/us³ug/sieci
6 Summary(pt_BR): Programa para monitoração de máquinas e serviços
7 Name:           nagios
8 Version:        2.0
9 Release:        2
10 License:        GPL v2
11 Group:          Networking
12 Source0:        http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
13 # Source0-md5:  2a30ccf68bdbebc9c6f5a06e9c09e757
14 Source1:        %{name}-apache.conf
15 Source2:        %{name}.init
16 Source3:        %{name}.sysconfig
17 Source4:        http://www.nagios.org/images/favicon.ico
18 # Source4-md5:  1c4201c7da53d6c7e48251d3a9680449
19 Source5:        %{name}-config-20050514.tar.bz2
20 # Source5-md5:  a2883c65377ef7beb55d48af85ec7ef7
21 Patch0:         %{name}-resources.patch
22 Patch1:         %{name}-iconv-in-libc.patch
23 Patch2:         %{name}-favicon.patch
24 Patch3:         %{name}-webapps.patch
25 URL:            http://www.nagios.org/
26 BuildRequires:  autoconf
27 BuildRequires:  automake
28 %if %{with gd}
29 BuildRequires:  gd-devel
30 BuildRequires:  libjpeg-devel
31 BuildRequires:  libpng-devel
32 %endif
33 BuildRequires:  rpmbuild(macros) >= 1.268
34 BuildRequires:  sed >= 4.0
35 BuildRequires:  tar >= 1:1.15.1
36 Requires(post,postun):  /sbin/chkconfig
37 Requires(triggerpostun):        sed >= 4.0
38 Requires:       %{name}-common = %{version}-%{release}
39 Requires:       /bin/mail
40 Requires:       nagios-plugins
41 Requires:       rc-scripts
42 Requires:       sh-utils
43 Provides:       nagios-core
44 Obsoletes:      netsaint
45 Conflicts:      iputils-ping < 1:ss020124
46 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
47
48 %define         _sysconfdir     /etc/%{name}
49 %define         _bindir         %{_prefix}/sbin
50 %define         _sbindir        %{_libdir}/%{name}/cgi
51 %define         _datadir        %{_prefix}/share/%{name}
52 %define         _localstatedir  /var/lib/%{name}
53 %define         _webapps        /etc/webapps
54 %define         _webapp         %{name}
55
56 %description
57 Nagios is a program that will monitor hosts and services on your
58 network. It has the ability to email or page you when a problem arises
59 and when a problem is resolved. Nagios is written in C and is designed
60 to run under Linux (and some other *NIX variants) as a background
61 process, intermittently running checks on various services that you
62 specify.
63
64 The actual service checks are performed by separate "plugin" programs
65 which return the status of the checks to Nagios. The plugins are
66 available in nagios-plugins packages.
67
68 Nagios is successor to NetSaint.
69
70 %description -l pl
71 Nagios to program, który monitoruje serwery oraz us³ugi w naszej
72 sieci. Posiada on mo¿liwo¶æ wysy³ania informacji o wyst±pieniu oraz
73 rozwi±zaniu problemu. Nagios zosta³ napisany w C oraz jest
74 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
75 jako proces pracuj±cy w tle i bezustannie wykonuj±cy pewne operacje
76 sprawdzaj±ce.
77
78 W³a¶ciwe sprawdzanie jest wykonywane przez osobne programy
79 ("wtyczki"), które zwracaj± informacje o statusie do Nagiosa. Wtyczki
80 s± dostêpne na stronie w pakietach nagios-plugins.
81
82 Nagios jest nastêpc± NetSainta.
83
84 %description -l pt_BR
85 O Nagios é um programa que monitora máquinas e serviços na sua rede.
86 Ele pode enviar um email ou um aviso de pager para o administrador
87 quando surgir um problema e quando ele for resolvido. Nagios é escrito
88 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
89 variações de *NIX) como um processo em segundo plano, periodicamente
90 executando checagens nos diversos serviços que forem especificados.
91
92 %package common
93 Summary:        Common files needed by both nagios and nrpe
94 Summary(pl):    Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
95 Group:          Networking
96 Requires(postun):       /usr/sbin/groupdel
97 Requires(postun):       /usr/sbin/userdel
98 Requires(pre):  /bin/id
99 Requires(pre):  /usr/bin/getgid
100 Requires(pre):  /usr/sbin/groupadd
101 Requires(pre):  /usr/sbin/groupmod
102 Requires(pre):  /usr/sbin/useradd
103 Requires(pre):  /usr/sbin/usermod
104 Provides:       group(nagios)
105 Provides:       group(nagios-data)
106 Provides:       user(nagios)
107
108 %description common
109 Common files needed by both nagios and nrpe.
110
111 %description common -l pl
112 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
113
114 %package cgi
115 Summary:        CGI webinterface for Nagios
116 Summary(pl):    Interfejs WWW/CGI dla Nagiosa
117 Group:          Applications/WWW
118 # for dirs... and accessing local logs.
119 Requires:       %{name} = %{version}-%{release}
120 Requires:       %{name}-imagepaks
121 Requires:       %{name}-theme
122 Requires:       apache(mod_alias)
123 Requires:       apache(mod_auth)
124 Requires:       apache(mod_cgi)
125 Requires:       group(http)
126 Requires:       webapps
127 Requires:       webserver = apache
128
129 %description cgi
130 CGI webinterface for Nagios.
131
132 %description cgi -l pl
133 Interfejs CGI dla Nagiosa.
134
135 %package theme-default
136 Summary:        Default Nagios theme
137 Summary(pl):    Domy¶lny motyw Nagiosa
138 Group:          Applications/WWW
139 Requires:       nagios-cgi = %{version}-%{release}
140 Provides:       nagios-theme
141 Obsoletes:      nagios-theme
142
143 %description theme-default
144 Original theme from Nagios.
145
146 %description theme-default -l pl
147 Oryginalny motyw z Nagiosa.
148
149 %package devel
150 Summary:        Include files that Nagios-related applications may compile against
151 Summary(pl):    Pliki nag³ówkowe, wykorzystywane przez aplikacje nagiosa
152 Summary(pt_BR): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
153 Group:          Development/Libraries
154 # doesn't require base
155
156 %description devel
157 This package provides include files that Nagios-related applications
158 may compile against.
159
160 %description devel -l pl
161 Ten pakiet dostarcza pliki nag³ówkowe, które mog± byæ wykorzystywane
162 przez aplikacje zwi±zane z nagiosem podczas kompilacji.
163
164 %description devel -l pt_BR
165 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
166 aplicativos para o Nagios.
167
168 %prep
169 %setup -q
170 %patch0 -p0
171 %patch1 -p1
172 %patch2 -p1
173 %patch3 -p1
174
175 sed -i -e '
176         s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
177         s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
178 ' $(find contrib/eventhandlers -type f)
179
180 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
181
182 %build
183 cp -f /usr/share/automake/config.sub .
184 %{__aclocal}
185 %{__autoconf}
186 %configure \
187         --with-nagios-user=%{name} \
188         --with-nagios-grp=%{name} \
189         --with-command-user=%{name} \
190         --with-command-grp=%{name} \
191         --with-lockfile=%{_localstatedir}/%{name}.pid \
192         --with-ping_command='/bin/ping -n %%s -c %%d' \
193         %{!?with_gd:--disable-statusmap --disable-trends}
194
195 %{__make} all
196
197 %install
198 rm -rf $RPM_BUILD_ROOT
199 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_includedir}/%{name},%{_libdir}/%{name}/{eventhandlers,plugins}} \
200         $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir},%{_sysconfdir}/{plugins,local},%{_examplesdir}/%{name}-%{version}} \
201         $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
202
203 install include/locations.h     $RPM_BUILD_ROOT%{_includedir}/%{name}
204
205 %{__make} install install-html install-init install-commandmode fullinstall \
206         DESTDIR=$RPM_BUILD_ROOT \
207         INSTALL_OPTS="" \
208         INIT_OPTS="" \
209         COMMAND_OPTS=""
210
211 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
212 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
213 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
214
215 # install templated configuration files
216 tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir}
217 sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg
218
219 # webserver files
220 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
221 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
222 mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}}
223 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
224 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
225
226 # install event handlers
227 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
228
229 # Object data/cache files
230 for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
231         > $RPM_BUILD_ROOT%{_localstatedir}/$i
232 done
233 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
234
235 %clean
236 rm -rf $RPM_BUILD_ROOT
237
238 %post
239 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
240         [ ! -f $i ] && touch $i
241         chown root:nagios $i
242         chmod 664 $i
243 done
244
245 /sbin/chkconfig --add %{name}
246 %service %{name} restart "Nagios service"
247
248 %preun
249 if [ "$1" = "0" ] ; then
250         %service %{name} stop
251         /sbin/chkconfig --del %{name}
252 fi
253
254 %pre common
255 if [ "`getgid netsaint`" = "72" ]; then
256         /usr/sbin/groupmod -n nagios netsaint
257 fi
258 %groupadd -g 72 nagios
259 %groupadd -g 147 -f nagios-data
260 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
261         /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios User" -G nagios-data netsaint
262 fi
263 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios User" -g nagios -G nagios-data nagios
264
265 %postun common
266 if [ "$1" = "0" ]; then
267         %userremove nagios
268         %groupremove nagios
269         %groupremove nagios-data
270 fi
271
272 %post cgi
273 if [ "$1" = 1 ]; then
274 %banner %{name} -e <<EOF
275 NOTE:
276 You need to add user to %{_webapps}/%{_webapp}/passwd and
277 %{_webapps}/%{_webapp}/group to access Nagios via web.
278
279 EOF
280 fi
281
282 %triggerin cgi -- apache1
283 %addusertogroup http nagios-data
284 %webapp_register apache %{_webapp}
285
286 %triggerun cgi -- apache1
287 %webapp_unregister apache %{_webapp}
288
289 %triggerin cgi -- apache < 2.2.0, apache-base
290 %addusertogroup http nagios-data
291 %webapp_register httpd %{_webapp}
292
293 %triggerun cgi -- apache < 2.2.0, apache-base
294 %webapp_unregister httpd %{_webapp}
295
296 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
297 chown root:http %{_sysconfdir}/cgi.cfg
298
299 %triggerpostun -- nagios < 2.0-0.b3.21
300 chown root:nagios %{_sysconfdir}/*.cfg
301 chown root:nagios-data %{_sysconfdir}/nagios.cfg
302 %addusertogroup nagios nagios-data
303
304 # must unify nagios.cfg
305 sed -i -e '
306 s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
307 s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
308 s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
309 s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
310 s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
311 s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
312
313 # option changes
314 s,^log_passive_service_checks=,log_passive_checks=,
315 s,^inter_check_delay_method=,service_inter_check_delay_method=,
316 s,^use_agressive_host_checking=,use_aggressive_host_checking=,
317 s,^freshness_check_interval=,service_freshness_check_interval=,
318
319 ' %{_sysconfdir}/nagios.cfg
320
321 sed -i -e '
322 s,\$DATETIME\$,$LONGDATETIME$,g
323 s,Nagios/1.2,Nagios/%{version},g
324 ' %{_sysconfdir}/misccommands.cfg
325
326 mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/dev/null
327 mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null
328 mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null
329 mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null
330 mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null
331 mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null
332 chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null
333 chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null
334
335 %service -q %{name} restart
336
337 %banner -e %{name}-2.0 <<'EOF'
338 Please read <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
339 there are changes that no longer work in Nagios 2.0.
340
341 You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
342 to convert your config (yes i know it's too late to say it now, after
343 the upgrade, but still :))
344 EOF
345 #'vim
346
347 # webapps trigger
348 %triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2
349 for i in cgi.cfg group passwd; do
350         if [ -f /etc/nagios/$i.rpmsave ]; then
351                 mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew}
352                 mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i
353         fi
354 done
355
356 # migrate from httpd (apache2) config dir
357 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
358         cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
359         mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
360 fi
361
362 # migrate from apache-config macros
363 if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then
364         if [ -d /etc/apache/webapps.d ]; then
365                 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
366                 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
367         fi
368
369         if [ -d /etc/httpd/webapps.d ]; then
370                 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
371                 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
372         fi
373         rm -f /etc/%{name}/apache-nagios.conf.rpmsave
374 fi
375
376 # place new config location, as trigger puts config only on first install, do it here.
377 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
378         rm -f /etc/apache/conf.d/99_%{name}.conf
379         apache_reload=1
380 fi
381 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
382         rm -f /etc/httpd/httpd.conf/99_%{name}.conf
383         httpd_reload=1
384 fi
385
386 if [ "$apache_reload" ]; then
387         /usr/sbin/webapp register apache %{_webapp}
388         %service -q apache reload
389 fi
390 if [ "$httpd_reload" ]; then
391         /usr/sbin/webapp register httpd %{_webapp}
392         %service -q httpd reload
393 fi
394
395 %files
396 %defattr(644,root,root,755)
397 %doc Changelog README* UPGRADING INSTALLING LICENSE
398 %doc sample-config/template-object/{bigger,minimal}.cfg
399 %attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
400 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
401
402 %attr(754,root,root) /etc/rc.d/init.d/%{name}
403 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
404
405 %attr(755,root,root) %{_bindir}/%{name}
406 %attr(755,root,root) %{_bindir}/nagiostats
407
408 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
409 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
410
411 %attr(770,root,nagios-data) %dir %{_localstatedir}
412 %attr(2770,root,nagios-data) %dir %{_localstatedir}/rw
413 %attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd
414 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
415 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
416 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
417
418 %{_examplesdir}/%{name}-%{version}
419
420 %files common
421 %defattr(644,root,root,755)
422 %attr(750,root,nagios-data) %dir %{_sysconfdir}
423 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
424 %attr(2750,root,nagios) %dir %{_sysconfdir}/local
425 %dir %{_libdir}/%{name}
426 %dir %{_libdir}/%{name}/plugins
427 %dir %{_libdir}/%{name}/eventhandlers
428
429 %files cgi
430 %defattr(644,root,root,755)
431 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
432 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
433 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
434 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
435 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
436 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
437 %dir %{_sbindir}
438 %attr(755,root,root) %{_sbindir}/*.cgi
439
440 %dir %{_datadir}
441 %dir %{_datadir}/images
442 %dir %{_datadir}/stylesheets
443 %{_datadir}/favicon.ico
444 %{_datadir}/robots.txt
445 %{_datadir}/contexthelp
446 %{_datadir}/docs
447 %{_datadir}/media
448 %{_datadir}/ssi
449
450 %files theme-default
451 %defattr(644,root,root,755)
452 %{_datadir}/*.html
453 %{_datadir}/images/*
454 %{_datadir}/stylesheets/*
455
456 %files devel
457 %defattr(644,root,root,755)
458 %dir %{_includedir}/%{name}
459 %{_includedir}/%{name}/*.h
This page took 0.059703 seconds and 4 git commands to generate.