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 Patch4: %{name}-cvs.patch
28 URL: http://www.nagios.org/
29 BuildRequires: autoconf
30 BuildRequires: automake
32 BuildRequires: gd-devel
33 BuildRequires: libjpeg-devel
34 BuildRequires: libpng-devel
36 BuildRequires: rpmbuild(macros) >= 1.268
37 BuildRequires: sed >= 4.0
38 BuildRequires: tar >= 1:1.15.1
39 Requires(post,preun): /sbin/chkconfig
40 Requires(triggerpostun): sed >= 4.0
41 Requires: %{name}-common = %{version}-%{release}
43 Requires: nagios-plugins
48 Conflicts: iputils-ping < 1:ss020124
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define _sysconfdir /etc/%{name}
52 %define _bindir %{_prefix}/sbin
53 %define _sbindir %{_libdir}/%{name}/cgi
54 %define _datadir %{_prefix}/share/%{name}
55 %define _localstatedir /var/lib/%{name}
56 %define _webapps /etc/webapps
57 %define _webapp %{name}
60 Nagios is a program that will monitor hosts and services on your
61 network. It has the ability to email or page you when a problem arises
62 and when a problem is resolved. Nagios is written in C and is designed
63 to run under Linux (and some other *NIX variants) as a background
64 process, intermittently running checks on various services that you
67 The actual service checks are performed by separate "plugin" programs
68 which return the status of the checks to Nagios. The plugins are
69 available in nagios-plugins packages.
71 Nagios is successor to NetSaint.
73 %description -l pl.UTF-8
74 Nagios to program, który monitoruje serwery oraz usługi w naszej
75 sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz
76 rozwiązaniu problemu. Nagios został napisany w C oraz jest
77 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
78 jako proces pracujący w tle i bezustannie wykonujący pewne operacje
81 Właściwe sprawdzanie jest wykonywane przez osobne programy
82 ("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki
83 są dostępne na stronie w pakietach nagios-plugins.
85 Nagios jest następcą NetSainta.
87 %description -l pt_BR.UTF-8
88 O Nagios é um programa que monitora máquinas e serviços na sua rede.
89 Ele pode enviar um email ou um aviso de pager para o administrador
90 quando surgir um problema e quando ele for resolvido. Nagios é escrito
91 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
92 variações de *NIX) como um processo em segundo plano, periodicamente
93 executando checagens nos diversos serviços que forem especificados.
96 Summary: Common files needed by both nagios and nrpe
97 Summary(pl.UTF-8): Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
99 Requires(postun): /usr/sbin/groupdel
100 Requires(postun): /usr/sbin/userdel
101 Requires(pre): /bin/id
102 Requires(pre): /usr/bin/getgid
103 Requires(pre): /usr/sbin/groupadd
104 Requires(pre): /usr/sbin/groupmod
105 Requires(pre): /usr/sbin/useradd
106 Requires(pre): /usr/sbin/usermod
107 Provides: group(nagios)
108 Provides: group(nagios-data)
109 Provides: user(nagios)
112 Common files needed by both nagios and nrpe.
114 %description common -l pl.UTF-8
115 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
118 Summary: CGI webinterface for Nagios
119 Summary(pl.UTF-8): Interfejs WWW/CGI dla Nagiosa
120 Group: Applications/WWW
121 # for dirs... and accessing local logs.
122 Requires: %{name} = %{version}-%{release}
123 Requires: %{name}-imagepaks
124 Requires: %{name}-theme
125 Requires: group(http)
128 Requires: webserver(access)
129 Requires: webserver(alias)
130 Requires: webserver(auth)
131 Requires: webserver(cgi)
132 Requires: webserver(indexfile)
135 CGI webinterface for Nagios.
137 %description cgi -l pl.UTF-8
138 Interfejs CGI dla Nagiosa.
140 %package theme-default
141 Summary: Default Nagios theme
142 Summary(pl.UTF-8): Domyślny motyw Nagiosa
143 Group: Applications/WWW
144 Requires: nagios-cgi = %{version}-%{release}
145 Provides: nagios-theme
146 Obsoletes: nagios-theme
148 %description theme-default
149 Original theme from Nagios.
151 %description theme-default -l pl.UTF-8
152 Oryginalny motyw z Nagiosa.
155 Summary: Include files that Nagios-related applications may compile against
156 Summary(pl.UTF-8): Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
157 Summary(pt_BR.UTF-8): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
158 Group: Development/Libraries
159 # doesn't require base
162 This package provides include files that Nagios-related applications
165 %description devel -l pl.UTF-8
166 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
167 przez aplikacje związane z nagiosem podczas kompilacji.
169 %description devel -l pt_BR.UTF-8
170 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
171 aplicativos para o Nagios.
182 s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
183 s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
184 ' $(find contrib/eventhandlers -type f)
186 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
187 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
190 cp -f /usr/share/automake/config.sub .
194 --with-nagios-user=%{name} \
195 --with-nagios-grp=%{name} \
196 --with-command-user=%{name} \
197 --with-command-grp=%{name} \
198 --with-lockfile=%{_localstatedir}/%{name}.pid \
199 --with-ping_command='/bin/ping -n %%s -c %%d' \
200 --enable-event-broker \
201 %{!?with_gd:--disable-statusmap --disable-trends}
206 rm -rf $RPM_BUILD_ROOT
207 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
208 $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
209 $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,local} \
210 $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \
211 %if "%{_lib}" != "lib"
212 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
215 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
216 install include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
218 %{__make} install-unstripped \
219 DESTDIR=$RPM_BUILD_ROOT \
224 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
225 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
226 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
228 # install templated configuration files
229 tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir}
230 sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg
233 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
234 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
235 install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
236 mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}}
237 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
238 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
240 # install event handlers
241 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
242 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
244 # Object data/cache files
245 for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
246 > $RPM_BUILD_ROOT%{_localstatedir}/$i
248 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
251 rm -rf $RPM_BUILD_ROOT
254 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
255 [ ! -f $i ] && touch $i
260 /sbin/chkconfig --add %{name}
261 %service %{name} restart "Nagios service"
264 if [ "$1" = "0" ] ; then
265 %service %{name} stop
266 /sbin/chkconfig --del %{name}
270 if [ "`getgid netsaint`" = "72" ]; then
271 /usr/sbin/groupmod -n nagios netsaint
273 %groupadd -g 72 nagios
274 %groupadd -g 147 -f nagios-data
275 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
276 /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios User" -G nagios-data netsaint
278 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios User" -g nagios -G nagios-data nagios
281 if [ "$1" = "0" ]; then
284 %groupremove nagios-data
288 if [ "$1" = 1 ]; then
289 %banner %{name} -e <<EOF
291 You need to add user to %{_webapps}/%{_webapp}/passwd and
292 %{_webapps}/%{_webapp}/group to access Nagios via web.
297 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
298 %addusertogroup http nagios-data
299 %webapp_register apache %{_webapp}
301 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
302 %webapp_unregister apache %{_webapp}
304 %triggerin cgi -- apache < 2.2.0, apache-base
305 %addusertogroup http nagios-data
306 %webapp_register httpd %{_webapp}
308 %triggerun cgi -- apache < 2.2.0, apache-base
309 %webapp_unregister httpd %{_webapp}
311 %triggerin cgi -- lighttpd
312 %addusertogroup lighttpd nagios-data
313 %webapp_register lighttpd %{_webapp}
315 %triggerun cgi -- lighttpd
316 %webapp_unregister lighttpd %{_webapp}
318 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
319 chown root:http %{_sysconfdir}/cgi.cfg
321 %triggerpostun -- nagios < 2.0-0.b3.21
322 chown root:nagios %{_sysconfdir}/*.cfg
323 chown root:nagios-data %{_sysconfdir}/nagios.cfg
324 %addusertogroup nagios nagios-data
326 # must unify nagios.cfg
328 s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
329 s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
330 s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
331 s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
332 s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
333 s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
336 s,^log_passive_service_checks=,log_passive_checks=,
337 s,^inter_check_delay_method=,service_inter_check_delay_method=,
338 s,^use_agressive_host_checking=,use_aggressive_host_checking=,
339 s,^freshness_check_interval=,service_freshness_check_interval=,
341 ' %{_sysconfdir}/nagios.cfg
344 s,\$DATETIME\$,$LONGDATETIME$,g
345 s,Nagios/1.2,Nagios/%{version},g
346 ' %{_sysconfdir}/misccommands.cfg
348 mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/dev/null
349 mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null
350 mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null
351 mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null
352 mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null
353 mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null
354 chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null
355 chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null
357 %service -q %{name} restart
359 %banner -e %{name}-2.0 <<'EOF'
360 Please read <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
361 there are changes that no longer work in Nagios 2.0.
363 You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
364 to convert your config (yes i know it's too late to say it now, after
365 the upgrade, but still :))
370 %triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2
371 for i in cgi.cfg group passwd; do
372 if [ -f /etc/nagios/$i.rpmsave ]; then
373 mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew}
374 mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i
378 # migrate from httpd (apache2) config dir
379 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
380 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
381 mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
384 # migrate from apache-config macros
385 if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then
386 if [ -d /etc/apache/webapps.d ]; then
387 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
388 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
391 if [ -d /etc/httpd/webapps.d ]; then
392 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
393 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
395 rm -f /etc/%{name}/apache-nagios.conf.rpmsave
398 # place new config location, as trigger puts config only on first install, do it here.
399 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
400 rm -f /etc/apache/conf.d/99_%{name}.conf
403 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
404 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
408 if [ "$apache_reload" ]; then
409 /usr/sbin/webapp register apache %{_webapp}
410 %service -q apache reload
412 if [ "$httpd_reload" ]; then
413 /usr/sbin/webapp register httpd %{_webapp}
414 %service -q httpd reload
418 %defattr(644,root,root,755)
419 %doc Changelog README* UPGRADING INSTALLING LICENSE
420 %doc sample-config/template-object/{localhost,commands}.cfg
421 %attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
422 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
424 %attr(754,root,root) /etc/rc.d/init.d/%{name}
425 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
427 %attr(755,root,root) %{_bindir}/%{name}
428 %attr(755,root,root) %{_bindir}/nagiostats
430 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
431 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
433 %attr(770,root,nagios-data) %dir %{_localstatedir}
434 %attr(2770,root,nagios-data) %dir %{_localstatedir}/rw
435 %attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd
436 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
437 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
438 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
440 %{_examplesdir}/%{name}-%{version}
443 %defattr(644,root,root,755)
444 %attr(750,root,nagios-data) %dir %{_sysconfdir}
445 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
446 %attr(2750,root,nagios) %dir %{_sysconfdir}/local
447 %dir %{_libdir}/%{name}
448 %dir %{_libdir}/%{name}/plugins
449 %dir %{_libdir}/%{name}/eventhandlers
451 %if "%{_lib}" != "lib"
452 %dir %{_prefix}/lib/%{name}
453 %dir %{_prefix}/lib/%{name}/plugins
454 %dir %{_prefix}/lib/%{name}/eventhandlers
458 %defattr(644,root,root,755)
459 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
460 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
461 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
462 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
463 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
464 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
465 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
467 %attr(755,root,root) %{_sbindir}/*.cgi
470 %dir %{_datadir}/images
471 %dir %{_datadir}/stylesheets
472 %{_datadir}/favicon.ico
473 %{_datadir}/robots.txt
474 %{_datadir}/contexthelp
480 %defattr(644,root,root,755)
483 %{_datadir}/stylesheets/*
486 %defattr(644,root,root,755)
487 %dir %{_includedir}/%{name}
488 %{_includedir}/%{name}/*.h