3 %bcond_without gd # without statusmap and trends, which require gd library
5 Summary: Host/service/network monitoring program
6 Summary(pl.UTF-8): Program do monitorowania serwerów/usług/sieci
7 Summary(pt_BR.UTF-8): Programa para monitoração de máquinas e serviços
13 Source0: http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
14 # Source0-md5: b6e3a21c91edb063c00712c6001e15ec
15 Source1: %{name}-apache.conf
17 Source3: %{name}.sysconfig
18 Source4: http://www.nagios.org/images/favicon.ico
19 # Source4-md5: 1c4201c7da53d6c7e48251d3a9680449
20 Source5: %{name}-config-20050514.tar.bz2
21 # Source5-md5: a2883c65377ef7beb55d48af85ec7ef7
22 Source6: %{name}-lighttpd.conf
23 Patch0: %{name}-resources.patch
24 Patch1: %{name}-iconv-in-libc.patch
25 Patch2: %{name}-favicon.patch
26 Patch3: %{name}-webapps.patch
27 URL: http://www.nagios.org/
28 BuildRequires: autoconf
29 BuildRequires: automake
31 BuildRequires: gd-devel
32 BuildRequires: libjpeg-devel
33 BuildRequires: libpng-devel
35 BuildRequires: rpmbuild(macros) >= 1.268
36 BuildRequires: sed >= 4.0
37 BuildRequires: tar >= 1:1.15.1
38 Requires(post,preun): /sbin/chkconfig
39 Requires(triggerpostun): sed >= 4.0
40 Requires: %{name}-common = %{version}-%{release}
42 Requires: nagios-plugins
47 Conflicts: iputils-ping < 1:ss020124
48 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
50 %define _sysconfdir /etc/%{name}
51 %define _bindir %{_prefix}/sbin
52 %define _sbindir %{_libdir}/%{name}/cgi
53 %define _datadir %{_prefix}/share/%{name}
54 %define _localstatedir /var/lib/%{name}
55 %define _webapps /etc/webapps
56 %define _webapp %{name}
59 Nagios is a program that will monitor hosts and services on your
60 network. It has the ability to email or page you when a problem arises
61 and when a problem is resolved. Nagios is written in C and is designed
62 to run under Linux (and some other *NIX variants) as a background
63 process, intermittently running checks on various services that you
66 The actual service checks are performed by separate "plugin" programs
67 which return the status of the checks to Nagios. The plugins are
68 available in nagios-plugins packages.
70 Nagios is successor to NetSaint.
72 %description -l pl.UTF-8
73 Nagios to program, który monitoruje serwery oraz usługi w naszej
74 sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz
75 rozwiązaniu problemu. Nagios został napisany w C oraz jest
76 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
77 jako proces pracujący w tle i bezustannie wykonujący pewne operacje
80 Właściwe sprawdzanie jest wykonywane przez osobne programy
81 ("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki
82 są dostępne na stronie w pakietach nagios-plugins.
84 Nagios jest następcą NetSainta.
86 %description -l pt_BR.UTF-8
87 O Nagios é um programa que monitora máquinas e serviços na sua rede.
88 Ele pode enviar um email ou um aviso de pager para o administrador
89 quando surgir um problema e quando ele for resolvido. Nagios é escrito
90 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
91 variações de *NIX) como um processo em segundo plano, periodicamente
92 executando checagens nos diversos serviços que forem especificados.
95 Summary: Common files needed by both nagios and nrpe
96 Summary(pl.UTF-8): Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
98 Requires(postun): /usr/sbin/groupdel
99 Requires(postun): /usr/sbin/userdel
100 Requires(pre): /bin/id
101 Requires(pre): /usr/bin/getgid
102 Requires(pre): /usr/sbin/groupadd
103 Requires(pre): /usr/sbin/groupmod
104 Requires(pre): /usr/sbin/useradd
105 Requires(pre): /usr/sbin/usermod
106 Provides: group(nagios)
107 Provides: group(nagios-data)
108 Provides: user(nagios)
111 Common files needed by both nagios and nrpe.
113 %description common -l pl.UTF-8
114 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
117 Summary: CGI webinterface for Nagios
118 Summary(pl.UTF-8): Interfejs WWW/CGI dla Nagiosa
119 Group: Applications/WWW
120 # for dirs... and accessing local logs.
121 Requires: %{name} = %{version}-%{release}
122 Requires: %{name}-imagepaks
123 Requires: %{name}-theme
124 Requires: group(http)
127 Requires: webserver(access)
128 Requires: webserver(alias)
129 Requires: webserver(auth)
130 Requires: webserver(cgi)
131 Requires: webserver(indexfile)
134 CGI webinterface for Nagios.
136 %description cgi -l pl.UTF-8
137 Interfejs CGI dla Nagiosa.
139 %package theme-default
140 Summary: Default Nagios theme
141 Summary(pl.UTF-8): Domyślny motyw Nagiosa
142 Group: Applications/WWW
143 Requires: nagios-cgi = %{version}-%{release}
144 Provides: nagios-theme
145 Obsoletes: nagios-theme
147 %description theme-default
148 Original theme from Nagios.
150 %description theme-default -l pl.UTF-8
151 Oryginalny motyw z Nagiosa.
154 Summary: Include files that Nagios-related applications may compile against
155 Summary(pl.UTF-8): Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
156 Summary(pt_BR.UTF-8): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
157 Group: Development/Libraries
158 # doesn't require base
161 This package provides include files that Nagios-related applications
164 %description devel -l pl.UTF-8
165 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
166 przez aplikacje związane z nagiosem podczas kompilacji.
168 %description devel -l pt_BR.UTF-8
169 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
170 aplicativos para o Nagios.
180 s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
181 s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
182 ' $(find contrib/eventhandlers -type f)
184 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
185 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
188 cp -f /usr/share/automake/config.sub .
192 --with-nagios-user=%{name} \
193 --with-nagios-grp=%{name} \
194 --with-command-user=%{name} \
195 --with-command-grp=%{name} \
196 --with-lockfile=%{_localstatedir}/%{name}.pid \
197 --with-ping_command='/bin/ping -n %%s -c %%d' \
198 --enable-event-broker \
199 %{!?with_gd:--disable-statusmap --disable-trends}
204 rm -rf $RPM_BUILD_ROOT
205 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
206 $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
207 $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,local} \
208 $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \
209 %if "%{_lib}" != "lib"
210 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
213 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
214 install include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
216 %{__make} install-unstripped \
217 DESTDIR=$RPM_BUILD_ROOT \
222 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
223 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
224 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
226 # install templated configuration files
227 tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir}
228 sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg
231 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
232 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
233 install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
234 mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}}
235 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
236 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
238 # install event handlers
239 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
240 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
242 # Object data/cache files
243 for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
244 > $RPM_BUILD_ROOT%{_localstatedir}/$i
246 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
249 rm -rf $RPM_BUILD_ROOT
252 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
253 [ ! -f $i ] && touch $i
258 /sbin/chkconfig --add %{name}
259 %service %{name} restart "Nagios service"
262 if [ "$1" = "0" ] ; then
263 %service %{name} stop
264 /sbin/chkconfig --del %{name}
268 if [ "`getgid netsaint`" = "72" ]; then
269 /usr/sbin/groupmod -n nagios netsaint
271 %groupadd -g 72 nagios
272 %groupadd -g 147 -f nagios-data
273 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
274 /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios User" -G nagios-data netsaint
276 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios User" -g nagios -G nagios-data nagios
279 if [ "$1" = "0" ]; then
282 %groupremove nagios-data
286 if [ "$1" = 1 ]; then
287 %banner %{name} -e <<EOF
289 You need to add user to %{_webapps}/%{_webapp}/passwd and
290 %{_webapps}/%{_webapp}/group to access Nagios via web.
295 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
296 %addusertogroup http nagios-data
297 %webapp_register apache %{_webapp}
299 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
300 %webapp_unregister apache %{_webapp}
302 %triggerin cgi -- apache < 2.2.0, apache-base
303 %addusertogroup http nagios-data
304 %webapp_register httpd %{_webapp}
306 %triggerun cgi -- apache < 2.2.0, apache-base
307 %webapp_unregister httpd %{_webapp}
309 %triggerin cgi -- lighttpd
310 %addusertogroup lighttpd nagios-data
311 %webapp_register lighttpd %{_webapp}
313 %triggerun cgi -- lighttpd
314 %webapp_unregister lighttpd %{_webapp}
316 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
317 chown root:http %{_sysconfdir}/cgi.cfg
319 %triggerpostun -- nagios < 2.0-0.b3.21
320 chown root:nagios %{_sysconfdir}/*.cfg
321 chown root:nagios-data %{_sysconfdir}/nagios.cfg
322 %addusertogroup nagios nagios-data
324 # must unify nagios.cfg
326 s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
327 s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
328 s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
329 s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
330 s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
331 s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
334 s,^log_passive_service_checks=,log_passive_checks=,
335 s,^inter_check_delay_method=,service_inter_check_delay_method=,
336 s,^use_agressive_host_checking=,use_aggressive_host_checking=,
337 s,^freshness_check_interval=,service_freshness_check_interval=,
339 ' %{_sysconfdir}/nagios.cfg
342 s,\$DATETIME\$,$LONGDATETIME$,g
343 s,Nagios/1.2,Nagios/%{version},g
344 ' %{_sysconfdir}/misccommands.cfg
346 mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/dev/null
347 mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null
348 mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null
349 mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null
350 mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null
351 mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null
352 chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null
353 chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null
355 %service -q %{name} restart
357 %banner -e %{name}-2.0 <<'EOF'
358 Please read <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
359 there are changes that no longer work in Nagios 2.0.
361 You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
362 to convert your config (yes i know it's too late to say it now, after
363 the upgrade, but still :))
368 %triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2
369 for i in cgi.cfg group passwd; do
370 if [ -f /etc/nagios/$i.rpmsave ]; then
371 mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew}
372 mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i
376 # migrate from httpd (apache2) config dir
377 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
378 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
379 mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
382 # migrate from apache-config macros
383 if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then
384 if [ -d /etc/apache/webapps.d ]; then
385 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
386 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
389 if [ -d /etc/httpd/webapps.d ]; then
390 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
391 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
393 rm -f /etc/%{name}/apache-nagios.conf.rpmsave
396 # place new config location, as trigger puts config only on first install, do it here.
397 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
398 rm -f /etc/apache/conf.d/99_%{name}.conf
401 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
402 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
406 if [ "$apache_reload" ]; then
407 /usr/sbin/webapp register apache %{_webapp}
408 %service -q apache reload
410 if [ "$httpd_reload" ]; then
411 /usr/sbin/webapp register httpd %{_webapp}
412 %service -q httpd reload
416 %defattr(644,root,root,755)
417 %doc Changelog README* UPGRADING INSTALLING LICENSE
418 %doc sample-config/template-object/{localhost,commands}.cfg
419 %attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
420 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
422 %attr(754,root,root) /etc/rc.d/init.d/%{name}
423 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
425 %attr(755,root,root) %{_bindir}/%{name}
426 %attr(755,root,root) %{_bindir}/nagiostats
428 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
429 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
431 %attr(770,root,nagios-data) %dir %{_localstatedir}
432 %attr(2770,root,nagios-data) %dir %{_localstatedir}/rw
433 %attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd
434 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
435 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
436 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
438 %{_examplesdir}/%{name}-%{version}
441 %defattr(644,root,root,755)
442 %attr(750,root,nagios-data) %dir %{_sysconfdir}
443 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
444 %attr(2750,root,nagios) %dir %{_sysconfdir}/local
445 %dir %{_libdir}/%{name}
446 %dir %{_libdir}/%{name}/plugins
447 %dir %{_libdir}/%{name}/eventhandlers
449 %if "%{_lib}" != "lib"
450 %dir %{_prefix}/lib/%{name}
451 %dir %{_prefix}/lib/%{name}/plugins
452 %dir %{_prefix}/lib/%{name}/eventhandlers
456 %defattr(644,root,root,755)
457 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
458 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
459 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
460 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
461 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
462 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
463 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
465 %attr(755,root,root) %{_sbindir}/*.cgi
468 %dir %{_datadir}/images
469 %dir %{_datadir}/stylesheets
470 %{_datadir}/favicon.ico
471 %{_datadir}/robots.txt
472 %{_datadir}/contexthelp
478 %defattr(644,root,root,755)
481 %{_datadir}/stylesheets/*
484 %defattr(644,root,root,755)
485 %dir %{_includedir}/%{name}
486 %{_includedir}/%{name}/*.h