2 # - /var/log/nagios/archives -> /var/log/archive/nagios
3 # - bundled jquery in themes
6 %bcond_without gd # without statusmap and trends, which require gd library
7 %bcond_without doc # don't build html docs
8 # reeenable when http://tracker.nagios.org/view.php?id=51 is fixed
11 Summary: Open Source host, service and network monitoring program
12 Summary(pl.UTF-8): Program do monitorowania serwerów/usług/sieci
13 Summary(pt_BR.UTF-8): Programa para monitoração de máquinas e serviços
19 # https://www.nagios.org/downloads/nagios-core/
20 Source0: https://assets.nagios.com/downloads/nagioscore/releases/%{name}-%{version}.tar.gz
21 # Source0-md5: 8beb253b1236ee1407f698b5d2a2d894
22 Source1: %{name}-apache.conf
24 Source3: %{name}.sysconfig
25 # http://git.pld-linux.org/projects/nagios-config/
26 Source4: %{name}-config-20150805.tar.xz
27 # Source4-md5: 16683172c72cc2c09662261c82abef40
28 Source5: %{name}-lighttpd.conf
29 Source6: http://www.google.com/mapfiles/shadow50.png
30 # Source6-md5: eff99f302f21b95a900d321743fce72b
31 Source7: http://www.google.com/mapfiles/marker.png
32 # Source7-md5: edefef4bdfc29e1c953694651f05b466
34 Source9: %{name}wall.php
35 Patch100: %{name}-git.patch
36 # Patch100-md5: 76c628cc2bc0e0e68aed4d42683cc32d
38 Patch0: %{name}-resources.patch
39 Patch1: %{name}-iconv-in-libc.patch
40 Patch2: %{name}-webapps.patch
42 Patch4: %{name}-cmd-typo.patch
44 Patch6: %{name}-googlemap.patch
46 Patch8: archivelog-timeformat.patch
48 Patch10: system-jquery.patch
49 Patch11: do-not-fetch-rss.patch
50 URL: https://www.nagios.org/projects/nagios-core/
51 BuildRequires: autoconf
52 BuildRequires: automake
53 %{?with_doc:BuildRequires: doxygen}
54 BuildRequires: rpmbuild(macros) >= 1.268
55 BuildRequires: sed >= 4.0
56 BuildRequires: tar >= 1:1.22
59 BuildRequires: gd-devel
60 BuildRequires: libjpeg-devel
61 BuildRequires: libpng-devel
64 BuildRequires: perl-HTML-Lint
65 BuildRequires: perl-Test-WWW-Mechanize-CGI
67 Requires(post,preun): /sbin/chkconfig
68 Requires: %{name}-common = %{version}-%{release}
69 Requires: rc-scripts >= 0.4.5.5
71 Suggests: nagios-notify >= 0.13
72 Suggests: nagios-plugin-check_load
73 Suggests: nagios-plugin-check_ping
74 Suggests: nagios-plugins
77 Conflicts: iputils-ping < 1:ss020124
78 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80 %define _sysconfdir /etc/%{name}
81 %define cgidir %{_libdir}/%{name}/cgi
82 %define htmldir %{_prefix}/share/%{name}
83 %define _localstatedir /var/lib/%{name}
84 %define nagioshome %{_localstatedir}
85 %define _webapps /etc/webapps
86 %define _webapp %{name}
89 Nagios is a program that will monitor hosts and services on your
90 network. It has the ability to email or page you when a problem arises
91 and when a problem is resolved. Nagios is written in C and is designed
92 to run under Linux (and some other *NIX variants) as a background
93 process, intermittently running checks on various services that you
96 The actual service checks are performed by separate "plugin" programs
97 which return the status of the checks to Nagios. The plugins are
98 available in nagios-plugins packages.
100 Nagios is successor to NetSaint.
102 %description -l pl.UTF-8
103 Nagios to program, który monitoruje serwery oraz usługi w naszej
104 sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz
105 rozwiązaniu problemu. Nagios został napisany w C oraz jest
106 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
107 jako proces pracujący w tle i bezustannie wykonujący pewne operacje
110 Właściwe sprawdzanie jest wykonywane przez osobne programy
111 ("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki
112 są dostępne na stronie w pakietach nagios-plugins.
114 Nagios jest następcą NetSainta.
116 %description -l pt_BR.UTF-8
117 O Nagios é um programa que monitora máquinas e serviços na sua rede.
118 Ele pode enviar um email ou um aviso de pager para o administrador
119 quando surgir um problema e quando ele for resolvido. Nagios é escrito
120 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
121 variações de *NIX) como um processo em segundo plano, periodicamente
122 executando checagens nos diversos serviços que forem especificados.
125 Summary: Common files needed by both nagios and nrpe
126 Summary(pl.UTF-8): Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
128 Requires(postun): /usr/sbin/groupdel
129 Requires(postun): /usr/sbin/userdel
130 Requires(pre): /bin/id
131 Requires(pre): /usr/bin/getgid
132 Requires(pre): /usr/sbin/groupadd
133 Requires(pre): /usr/sbin/groupmod
134 Requires(pre): /usr/sbin/useradd
135 Requires(pre): /usr/sbin/usermod
136 Provides: group(nagcmd)
137 Provides: group(nagios)
138 Provides: user(nagios)
141 Common files needed by both nagios and nrpe.
143 %description common -l pl.UTF-8
144 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
147 Summary: CGI webinterface for Nagios
148 Summary(pl.UTF-8): Interfejs WWW/CGI dla Nagiosa
149 Group: Applications/WWW
150 # for dirs... and accessing local logs, nagios config
151 Requires: %{name} = %{version}-%{release}
152 Requires: %{name}-imagepaks
153 Requires: %{name}-theme
154 Requires: group(http)
158 Requires: webserver(access)
159 Requires: webserver(alias)
160 Requires: webserver(auth)
161 Requires: webserver(cgi)
162 Requires: webserver(indexfile)
163 Suggests: %{name}-doc
166 CGI webinterface for Nagios.
168 %description cgi -l pl.UTF-8
169 Interfejs CGI dla Nagiosa.
172 Summary: MRTG Graphs: Nagios Statistics
173 Group: Applications/Networking
174 Requires: %{name} = %{version}-%{release}
176 %if "%{_rpmversion}" >= "5"
180 %description mrtggraphs
181 This pacakge graphs several Nagios statistics which can be useful for
182 debugging and trending purposes. The nagiostats binary is used to
186 Summary: HTML Documentation for Nagios
188 %if "%{_rpmversion}" >= "5"
191 # does not require base
194 HTML Documentation for Nagios.
196 %package theme-classicui
197 Summary: ClassicUI Nagios theme
198 Group: Applications/WWW
199 Requires: %{name}-cgi = %{version}-%{release}
200 Requires: webserver(php)
201 Provides: nagios-theme
202 Obsoletes: nagios-theme
203 %if "%{_rpmversion}" >= "5"
207 %description theme-classicui
208 Original theme from Nagios.
210 %description theme-classicui -l pl.UTF-8
211 Oryginalny motyw z Nagiosa.
213 %package theme-default
214 Summary: Virtual package to handle Nagios theme migration
215 Group: Applications/WWW
216 Requires: nagios-theme
217 Suggests: nagios-theme-classicui
218 Suggests: nagios-theme-exfoliation
219 Suggests: nagios-theme-nuvola
220 Obsoletes: nagios-theme-default < 3.3.1-1.4
221 %if "%{_rpmversion}" >= "5"
225 %description theme-default
226 Virtual package to handle Nagios theme migration
229 Summary: Include files that Nagios-related applications may compile against
230 Summary(pl.UTF-8): Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
231 Summary(pt_BR.UTF-8): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
232 Group: Development/Libraries
233 # doesn't require base
236 This package contains the header files, static libraries and
237 development documentation for Nagios. If you are a NEB-module author
238 or wish to write addons for Nagios using Nagios' own API's, you should
239 install this package.
241 %description devel -l pl.UTF-8
242 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
243 przez aplikacje związane z nagiosem podczas kompilacji.
245 %description devel -l pt_BR.UTF-8
246 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
247 aplicativos para o Nagios.
251 mv %{name}-%{version}/* .
272 find -name .cvsignore -o -name .gitignore | xargs rm
274 mv nagios-config-*/objects/*.cfg sample-config/template-object
275 mv nagios-config-*/*.cfg sample-config
277 # cleanup backups after patching
278 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
281 s,".*/var/rw/%{name}.cmd,"%{_localstatedir}/rw/%{name}.cmd,
282 s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
283 ' $(find contrib/eventhandlers -type f)
285 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
286 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE5} > lighttpd.conf
290 # kill trailing spaces
293 s,/usr/local/%{name}/share,@datadir@,g
294 # we want all authorized users have default access
296 ' sample-config/*.cfg.in
298 #rm t/611cgistatus-hosturgencies.t
301 cp -f /usr/share/automake/config.sub .
312 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
313 --bindir=%{_sbindir} \
314 --sbindir=%{cgidir} \
315 --datadir=%{htmldir} \
316 --with-cgibindir=%{cgidir} \
317 --with-nagios-user=%{name} \
318 --with-nagios-grp=%{name} \
319 --with-command-user=%{name} \
320 --with-command-grp=%{name} \
321 --with-lockfile=%{_localstatedir}/%{name}.pid \
322 --with-checkresult-dir=%{_var}/spool/%{name}/checkresults \
323 --with-ping_command='/bin/ping -n %%s -c %%d' \
324 %{!?with_gd:--disable-statusmap --disable-trends} \
325 %{?with_tests:--enable-libtap} \
326 --enable-event-broker
330 %{?with_doc:%{__make} dox}
332 %{?with_tests:%{__make} test}
335 rm -rf $RPM_BUILD_ROOT
336 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
337 $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
338 $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,objects,nrpe.d} \
339 $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins,brokers} \
340 %if "%{_lib}" != "lib"
341 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
344 %{__make} install-unstripped install-devel \
345 DESTDIR=$RPM_BUILD_ROOT \
350 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
351 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
353 # install templated configuration files
354 for a in %{name}.cfg resource.cfg commands.cfg contactgroups.cfg contacts.cfg templates.cfg timeperiods.cfg; do
355 cp -p sample-config/$a $RPM_BUILD_ROOT%{_sysconfdir}
359 cp -p apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
360 cp -p apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
361 cp -p lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
362 cp -p sample-config/cgi.cfg $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
363 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{htmldir}/images
364 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{htmldir}/images
365 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{htmldir}/images
366 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{htmldir}
367 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
368 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
370 # install event handlers, sample config
371 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
372 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
373 cp -a sample-config $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
374 find $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -name '*.in' | xargs rm
377 install -d $RPM_BUILD_ROOT/etc/mrtg/conf.d
378 cp -p sample-config/mrtg.cfg $RPM_BUILD_ROOT/etc/mrtg/conf.d/%{name}.cfg
380 # Object data/cache files
381 for i in {objects.{cache,precache},{retention,status}.dat,%{name}.{tmp,pid}}; do
382 > $RPM_BUILD_ROOT%{_localstatedir}/$i
384 > $RPM_BUILD_ROOT%{_localstatedir}/rw/%{name}.cmd
385 > $RPM_BUILD_ROOT%{_localstatedir}/rw/%{name}.qh
387 install -d $RPM_BUILD_ROOT%{_docdir}/%{name}
388 %{?with_doc:%{__cp} -a Documentation/html/* $RPM_BUILD_ROOT%{_docdir}/%{name}}
391 rm -rf $RPM_BUILD_ROOT
394 for i in %{_localstatedir}/{objects.{cache,precache},{retention,status}.dat}; do
395 [ ! -f $i ] && touch $i
400 /sbin/chkconfig --add %{name}
401 %service %{name} restart "Nagios service"
404 if [ "$1" = "0" ] ; then
405 %service %{name} stop
406 /sbin/chkconfig --del %{name}
410 # rename group netsaint -> nagios
411 if [ "$(getgid netsaint 2>/dev/null)" = "72" ]; then
412 /usr/sbin/groupmod -n nagios netsaint
414 # rename group nagios-data -> nagcmd
415 if [ "$(getgid nagios-data 2>/dev/null)" = "147" ]; then
416 /usr/sbin/groupmod -n nagcmd nagios-data
418 %groupadd -g 72 nagios
419 %groupadd -g 147 -f nagcmd
420 if [ -n "$(id -u netsaint 2>/dev/null)" ] && [ "$(id -u netsaint)" = "72" ]; then
421 /usr/sbin/usermod -d %{nagioshome} -l nagios -c "Nagios Daemon" -G nagcmd netsaint
423 %useradd -u 72 -d %{nagioshome} -s /bin/false -c "Nagios Daemon" -g nagios -G nagcmd nagios
424 # update nagios user home
425 home=$(IFS=:; set -- $(getent passwd nagios); echo $6)
426 if [ "$home" != %{nagioshome} ]; then
427 /usr/sbin/usermod -d %{nagioshome} nagios
431 if [ "$1" = "0" ]; then
438 if [ "$1" = 1 ]; then
439 %banner %{name} -e <<EOF
441 You need to add user to %{_webapps}/%{_webapp}/passwd and
442 %{_webapps}/%{_webapp}/group to access Nagios via web.
447 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
448 %addusertogroup http nagcmd
449 %webapp_register apache %{_webapp}
451 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
452 %webapp_unregister apache %{_webapp}
454 %triggerin cgi -- apache < 2.2.0, apache-base
455 %addusertogroup http nagcmd
456 %webapp_register httpd %{_webapp}
458 %triggerun cgi -- apache < 2.2.0, apache-base
459 %webapp_unregister httpd %{_webapp}
461 %triggerin cgi -- lighttpd
462 %addusertogroup lighttpd nagcmd
463 %webapp_register lighttpd %{_webapp}
465 %triggerun cgi -- lighttpd
466 %webapp_unregister lighttpd %{_webapp}
468 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
469 chown root:http %{_sysconfdir}/cgi.cfg
471 %triggerpostun -- nagios < 3.1.2-4
473 for a in dependencies.cfg services.cfg serviceextinfo.cfg hosts.cfg hostgroups.cfg hostextinfo.cfg escalations.cfg checkcommands.cfg misccommands.cfg; do
474 if [ -f %{_sysconfdir}/$a.rpmsave -a ! -f %{_sysconfdir}/$a ]; then
475 mv -f %{_sysconfdir}/$a{.rpmsave,}
478 %{__sed} -i -e 's,^check_result_path=.*,check_result_path=%{_var}/spool/%{name}/checkresults,' %{_sysconfdir}/%{name}.cfg
481 %triggerpostun -- nagios-common < 4.0.8-2.2
482 %banner -e %{name}-common <<EOF
484 IMPORTANT: nagios user home changed to %{nagioshome}, you may need to move files from previous location %{_libdir}/%{name}.
489 %defattr(644,root,root,755)
490 %doc Changelog README* UPGRADING INSTALLING LICENSE
491 %attr(750,root,nagios) %dir %{_sysconfdir}/objects
493 # leave main nagios config readable for -cgi.
494 %attr(640,root,nagcmd) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}.cfg
496 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/commands.cfg
497 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/contactgroups.cfg
498 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/contacts.cfg
499 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/resource.cfg
500 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/templates.cfg
501 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timeperiods.cfg
503 %attr(754,root,root) /etc/rc.d/init.d/%{name}
504 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
506 %attr(755,root,root) %{_sbindir}/%{name}
507 %attr(755,root,root) %{_sbindir}/nagiostats
508 %dir %{_libdir}/%{name}/brokers
510 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}
511 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}/archives
513 %attr(770,root,nagcmd) %dir %{_localstatedir}
514 %attr(2770,root,nagcmd) %dir %{_localstatedir}/rw
515 %attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/%{name}.cmd
516 %attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/%{name}.qh
517 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
518 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.precache
519 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
520 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
521 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.pid
523 %attr(770,root,nagcmd) %dir %{_var}/spool/%{name}/checkresults
525 %{_examplesdir}/%{name}-%{version}
528 %defattr(644,root,root,755)
529 %attr(750,root,nagcmd) %dir %{_sysconfdir}
530 %attr(750,root,nagios) %dir %{_sysconfdir}/plugins
531 %attr(750,root,nagios) %dir %{_sysconfdir}/nrpe.d
532 %dir %{_libdir}/%{name}
533 %dir %{_libdir}/%{name}/plugins
534 %dir %{_libdir}/%{name}/eventhandlers
536 %if "%{_lib}" != "lib"
537 %dir %{_prefix}/lib/%{name}
538 %dir %{_prefix}/lib/%{name}/plugins
539 %dir %{_prefix}/lib/%{name}/eventhandlers
542 %attr(770,root,nagcmd) %dir %{_var}/spool/%{name}
545 %defattr(644,root,root,755)
546 %config(noreplace) %verify(not md5 mtime size) /etc/mrtg/conf.d/%{name}.cfg
550 %defattr(644,root,root,755)
555 %defattr(644,root,root,755)
556 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
557 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
558 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
559 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
560 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
561 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
562 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
564 %attr(755,root,root) %{cgidir}/*.cgi
567 %dir %{htmldir}/includes
568 %dir %{htmldir}/images
569 %dir %{htmldir}/stylesheets
570 %{htmldir}/robots.txt
571 %{htmldir}/contexthelp
572 %{htmldir}/jsonquery.html
575 %{htmldir}/images/favicon.ico
576 %{htmldir}/images/marker.png
577 %{htmldir}/images/shadow50.png
578 %{htmldir}/nagioswall.php
581 %{htmldir}/bootstrap-3.3.7
584 %{htmldir}/graph-header.html
585 %{htmldir}/histogram-form.html
586 %{htmldir}/histogram-graph.html
587 %{htmldir}/histogram-links.html
588 %{htmldir}/histogram.html
589 %{htmldir}/infobox.html
590 %{htmldir}/map-directive.html
591 %{htmldir}/map-form.html
592 %{htmldir}/map-links.html
593 %{htmldir}/map-popup.html
594 %{htmldir}/trends-form.html
595 %{htmldir}/trends-graph.html
596 %{htmldir}/trends-host-yaxis.html
597 %{htmldir}/trends-links.html
598 %{htmldir}/trends-service-yaxis.html
599 %{htmldir}/trends.html
601 %files theme-classicui
602 %defattr(644,root,root,755)
603 %exclude %{htmldir}/nagioswall.php
605 %{htmldir}/includes/*
607 %exclude %{htmldir}/images/favicon.ico
608 %exclude %{htmldir}/images/marker.png
609 %exclude %{htmldir}/images/shadow50.png
610 %{htmldir}/stylesheets/*
613 %defattr(644,root,root,755)
616 %defattr(644,root,root,755)
617 %dir %{_includedir}/%{name}
618 %{_includedir}/%{name}/*.h
619 %{_includedir}/%{name}/lib
620 %{_libdir}/libnagios.a