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: c607ffd5f4574cbea345bdf2e02dc480
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-20071217.tar.bz2
21 # Source5-md5: c50e60b73f86b8bfbc36f486d583f67b
22 Source6: %{name}-lighttpd.conf
23 Patch0: %{name}-resources.patch
24 Patch1: %{name}-iconv-in-libc.patch
25 Patch2: %{name}-webapps.patch
26 Patch3: %{name}-cgi-http_charset.patch
27 Patch4: %{name}-cmd-typo.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}
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.
181 s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
182 s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
183 ' $(find contrib/eventhandlers -type f)
185 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
186 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
189 cp -f /usr/share/automake/config.sub .
193 --with-nagios-user=%{name} \
194 --with-nagios-grp=%{name} \
195 --with-command-user=%{name} \
196 --with-command-grp=%{name} \
197 --with-lockfile=%{_localstatedir}/%{name}.pid \
198 --with-ping_command='/bin/ping -n %%s -c %%d' \
199 --enable-event-broker \
200 %{!?with_gd:--disable-statusmap --disable-trends}
205 rm -rf $RPM_BUILD_ROOT
206 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
207 $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
208 $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,local} \
209 $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \
210 %if "%{_lib}" != "lib"
211 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
214 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
215 install include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
217 %{__make} install-unstripped \
218 DESTDIR=$RPM_BUILD_ROOT \
223 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
224 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
225 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
227 # install templated configuration files
228 tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir}
229 sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg
232 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
233 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
234 install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
235 mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}}
236 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
237 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
239 # install event handlers
240 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
241 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
243 # Object data/cache files
244 for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
245 > $RPM_BUILD_ROOT%{_localstatedir}/$i
247 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
250 rm -rf $RPM_BUILD_ROOT
253 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
254 [ ! -f $i ] && touch $i
259 /sbin/chkconfig --add %{name}
260 %service %{name} restart "Nagios service"
263 if [ "$1" = "0" ] ; then
264 %service %{name} stop
265 /sbin/chkconfig --del %{name}
269 if [ "`getgid netsaint`" = "72" ]; then
270 /usr/sbin/groupmod -n nagios netsaint
272 %groupadd -g 72 nagios
273 %groupadd -g 147 -f nagios-data
274 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
275 /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios Daemon" -G nagios-data netsaint
277 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios Daemon" -g nagios -G nagios-data nagios
280 if [ "$1" = "0" ]; then
283 %groupremove nagios-data
287 if [ "$1" = 1 ]; then
288 %banner %{name} -e <<EOF
290 You need to add user to %{_webapps}/%{_webapp}/passwd and
291 %{_webapps}/%{_webapp}/group to access Nagios via web.
296 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
297 %addusertogroup http nagios-data
298 %webapp_register apache %{_webapp}
300 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
301 %webapp_unregister apache %{_webapp}
303 %triggerin cgi -- apache < 2.2.0, apache-base
304 %addusertogroup http nagios-data
305 %webapp_register httpd %{_webapp}
307 %triggerun cgi -- apache < 2.2.0, apache-base
308 %webapp_unregister httpd %{_webapp}
310 %triggerin cgi -- lighttpd
311 %addusertogroup lighttpd nagios-data
312 %webapp_register lighttpd %{_webapp}
314 %triggerun cgi -- lighttpd
315 %webapp_unregister lighttpd %{_webapp}
317 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
318 chown root:http %{_sysconfdir}/cgi.cfg
320 %triggerpostun -- nagios < 2.0-0.b3.21
321 chown root:nagios %{_sysconfdir}/*.cfg
322 chown root:nagios-data %{_sysconfdir}/nagios.cfg
323 %addusertogroup nagios nagios-data
325 # must unify nagios.cfg
327 s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
328 s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
329 s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
330 s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
331 s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
332 s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
335 s,^log_passive_service_checks=,log_passive_checks=,
336 s,^inter_check_delay_method=,service_inter_check_delay_method=,
337 s,^use_agressive_host_checking=,use_aggressive_host_checking=,
338 s,^freshness_check_interval=,service_freshness_check_interval=,
340 ' %{_sysconfdir}/nagios.cfg
343 s,\$DATETIME\$,$LONGDATETIME$,g
344 s,Nagios/1.2,Nagios/%{version},g
345 ' %{_sysconfdir}/misccommands.cfg
347 mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/dev/null
348 mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null
349 mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null
350 mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null
351 mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null
352 mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null
353 chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null
354 chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null
356 %service -q %{name} restart
358 %banner -e %{name}-2.0 <<'EOF'
359 Please read <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
360 there are changes that no longer work in Nagios 2.0.
362 You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
363 to convert your config (yes i know it's too late to say it now, after
364 the upgrade, but still :))
369 %triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2
370 for i in cgi.cfg group passwd; do
371 if [ -f /etc/nagios/$i.rpmsave ]; then
372 mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew}
373 mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i
377 # migrate from httpd (apache2) config dir
378 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
379 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
380 mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
383 # migrate from apache-config macros
384 if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then
385 if [ -d /etc/apache/webapps.d ]; then
386 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
387 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
390 if [ -d /etc/httpd/webapps.d ]; then
391 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
392 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
394 rm -f /etc/%{name}/apache-nagios.conf.rpmsave
397 # place new config location, as trigger puts config only on first install, do it here.
398 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
399 rm -f /etc/apache/conf.d/99_%{name}.conf
402 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
403 rm -f /etc/httpd/httpd.conf/99_%{name}.conf
407 if [ "$apache_reload" ]; then
408 /usr/sbin/webapp register apache %{_webapp}
409 %service -q apache reload
411 if [ "$httpd_reload" ]; then
412 /usr/sbin/webapp register httpd %{_webapp}
413 %service -q httpd reload
417 %defattr(644,root,root,755)
418 %doc Changelog README* UPGRADING INSTALLING LICENSE
419 %doc sample-config/template-object/{localhost,commands}.cfg
420 %attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
421 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
423 %attr(754,root,root) /etc/rc.d/init.d/%{name}
424 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
426 %attr(755,root,root) %{_bindir}/%{name}
427 %attr(755,root,root) %{_bindir}/nagiostats
429 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
430 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
432 %attr(770,root,nagios-data) %dir %{_localstatedir}
433 %attr(2770,root,nagios-data) %dir %{_localstatedir}/rw
434 %attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd
435 %attr(2770,root,nagios-data) %dir %{_localstatedir}/spool
436 %attr(2770,root,nagios-data) %dir %{_localstatedir}/spool/checkresults
437 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
438 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
439 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
441 %{_examplesdir}/%{name}-%{version}
444 %defattr(644,root,root,755)
445 %attr(750,root,nagios-data) %dir %{_sysconfdir}
446 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
447 %attr(2750,root,nagios) %dir %{_sysconfdir}/local
448 %dir %{_libdir}/%{name}
449 %dir %{_libdir}/%{name}/plugins
450 %dir %{_libdir}/%{name}/eventhandlers
452 %if "%{_lib}" != "lib"
453 %dir %{_prefix}/lib/%{name}
454 %dir %{_prefix}/lib/%{name}/plugins
455 %dir %{_prefix}/lib/%{name}/eventhandlers
459 %defattr(644,root,root,755)
460 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
461 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
462 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
463 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
464 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
465 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
466 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
468 %attr(755,root,root) %{_sbindir}/*.cgi
471 %dir %{_datadir}/images
472 %dir %{_datadir}/stylesheets
473 %{_datadir}/favicon.ico
474 %{_datadir}/robots.txt
475 %{_datadir}/contexthelp
481 %defattr(644,root,root,755)
484 %{_datadir}/stylesheets/*
487 %defattr(644,root,root,755)
488 %dir %{_includedir}/%{name}
489 %{_includedir}/%{name}/*.h