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 Source0: https://assets.nagios.com/downloads/nagioscore/releases/%{name}-%{version}.tar.gz
20 # Source0-md5: 02a4d396eb3efe689e19b0405be00ad4
21 Source1: %{name}-apache.conf
23 Source3: %{name}.sysconfig
24 # http://git.pld-linux.org/projects/nagios-config/
25 Source4: %{name}-config-20150805.tar.xz
26 # Source4-md5: 16683172c72cc2c09662261c82abef40
27 Source5: %{name}-lighttpd.conf
28 Source6: http://www.google.com/mapfiles/shadow50.png
29 # Source6-md5: eff99f302f21b95a900d321743fce72b
30 Source7: http://www.google.com/mapfiles/marker.png
31 # Source7-md5: edefef4bdfc29e1c953694651f05b466
33 Source9: %{name}wall.php
34 Patch0: %{name}-resources.patch
35 Patch1: %{name}-iconv-in-libc.patch
36 Patch2: %{name}-webapps.patch
38 Patch4: %{name}-cmd-typo.patch
40 Patch6: %{name}-googlemap.patch
41 Patch7: %{name}-doc-usermacros.patch
42 Patch8: archivelog-timeformat.patch
44 Patch10: system-jquery.patch
45 Patch11: do-not-fetch-rss.patch
46 URL: https://www.nagios.org/projects/nagios-core/
47 BuildRequires: autoconf
48 BuildRequires: automake
49 %{?with_doc:BuildRequires: doxygen}
50 BuildRequires: rpmbuild(macros) >= 1.268
51 BuildRequires: sed >= 4.0
52 BuildRequires: tar >= 1:1.22
55 BuildRequires: gd-devel
56 BuildRequires: libjpeg-devel
57 BuildRequires: libpng-devel
60 BuildRequires: perl-HTML-Lint
61 BuildRequires: perl-Test-WWW-Mechanize-CGI
63 Requires(post,preun): /sbin/chkconfig
64 Requires: %{name}-common = %{version}-%{release}
65 Requires: rc-scripts >= 0.4.5.5
67 Suggests: nagios-notify >= 0.13
68 Suggests: nagios-plugin-check_load
69 Suggests: nagios-plugin-check_ping
70 Suggests: nagios-plugins
73 Conflicts: iputils-ping < 1:ss020124
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76 %define _sysconfdir /etc/%{name}
77 %define cgidir %{_libdir}/%{name}/cgi
78 %define htmldir %{_prefix}/share/%{name}
79 %define _localstatedir /var/lib/%{name}
80 %define nagioshome %{_localstatedir}
81 %define _webapps /etc/webapps
82 %define _webapp %{name}
85 Nagios is a program that will monitor hosts and services on your
86 network. It has the ability to email or page you when a problem arises
87 and when a problem is resolved. Nagios is written in C and is designed
88 to run under Linux (and some other *NIX variants) as a background
89 process, intermittently running checks on various services that you
92 The actual service checks are performed by separate "plugin" programs
93 which return the status of the checks to Nagios. The plugins are
94 available in nagios-plugins packages.
96 Nagios is successor to NetSaint.
98 %description -l pl.UTF-8
99 Nagios to program, który monitoruje serwery oraz usługi w naszej
100 sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz
101 rozwiązaniu problemu. Nagios został napisany w C oraz jest
102 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
103 jako proces pracujący w tle i bezustannie wykonujący pewne operacje
106 Właściwe sprawdzanie jest wykonywane przez osobne programy
107 ("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki
108 są dostępne na stronie w pakietach nagios-plugins.
110 Nagios jest następcą NetSainta.
112 %description -l pt_BR.UTF-8
113 O Nagios é um programa que monitora máquinas e serviços na sua rede.
114 Ele pode enviar um email ou um aviso de pager para o administrador
115 quando surgir um problema e quando ele for resolvido. Nagios é escrito
116 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
117 variações de *NIX) como um processo em segundo plano, periodicamente
118 executando checagens nos diversos serviços que forem especificados.
121 Summary: Common files needed by both nagios and nrpe
122 Summary(pl.UTF-8): Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
124 Requires(postun): /usr/sbin/groupdel
125 Requires(postun): /usr/sbin/userdel
126 Requires(pre): /bin/id
127 Requires(pre): /usr/bin/getgid
128 Requires(pre): /usr/sbin/groupadd
129 Requires(pre): /usr/sbin/groupmod
130 Requires(pre): /usr/sbin/useradd
131 Requires(pre): /usr/sbin/usermod
132 Provides: group(nagcmd)
133 Provides: group(nagios)
134 Provides: user(nagios)
137 Common files needed by both nagios and nrpe.
139 %description common -l pl.UTF-8
140 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
143 Summary: CGI webinterface for Nagios
144 Summary(pl.UTF-8): Interfejs WWW/CGI dla Nagiosa
145 Group: Applications/WWW
146 # for dirs... and accessing local logs, nagios config
147 Requires: %{name} = %{version}-%{release}
148 Requires: %{name}-imagepaks
149 Requires: %{name}-theme
150 Requires: group(http)
154 Requires: webserver(access)
155 Requires: webserver(alias)
156 Requires: webserver(auth)
157 Requires: webserver(cgi)
158 Requires: webserver(indexfile)
159 Suggests: %{name}-doc
160 Suggests: php-magpierss >= 0.72
163 CGI webinterface for Nagios.
165 %description cgi -l pl.UTF-8
166 Interfejs CGI dla Nagiosa.
169 Summary: MRTG Graphs: Nagios Statistics
170 Group: Applications/Networking
171 Requires: %{name} = %{version}-%{release}
173 %if "%{_rpmversion}" >= "5"
177 %description mrtggraphs
178 This pacakge graphs several Nagios statistics which can be useful for
179 debugging and trending purposes. The nagiostats binary is used to
183 Summary: HTML Documentation for Nagios
185 %if "%{_rpmversion}" >= "5"
188 # does not require base
191 HTML Documentation for Nagios.
193 %package theme-classicui
194 Summary: ClassicUI Nagios theme
195 Group: Applications/WWW
196 Requires: %{name}-cgi = %{version}-%{release}
197 Requires: webserver(php)
198 Provides: nagios-theme
199 Obsoletes: nagios-theme
200 %if "%{_rpmversion}" >= "5"
204 %description theme-classicui
205 Original theme from Nagios.
207 %description theme-classicui -l pl.UTF-8
208 Oryginalny motyw z Nagiosa.
210 %package theme-default
211 Summary: Virtual package to handle Nagios theme migration
212 Group: Applications/WWW
213 Requires: nagios-theme
214 Suggests: nagios-theme-classicui
215 Suggests: nagios-theme-exfoliation
216 Suggests: nagios-theme-nuvola
217 Obsoletes: nagios-theme-default < 3.3.1-1.4
218 %if "%{_rpmversion}" >= "5"
222 %description theme-default
223 Virtual package to handle Nagios theme migration
226 Summary: Include files that Nagios-related applications may compile against
227 Summary(pl.UTF-8): Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
228 Summary(pt_BR.UTF-8): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
229 Group: Development/Libraries
230 # doesn't require base
233 This package contains the header files, static libraries and
234 development documentation for Nagios. If you are a NEB-module author
235 or wish to write addons for Nagios using Nagios' own API's, you should
236 install this package.
238 %description devel -l pl.UTF-8
239 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
240 przez aplikacje związane z nagiosem podczas kompilacji.
242 %description devel -l pt_BR.UTF-8
243 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
244 aplicativos para o Nagios.
248 mv %{name}-%{version}/* .
266 find -name .cvsignore -o -name .gitignore | xargs rm
268 mv nagios-config-*/objects/*.cfg sample-config/template-object
269 mv nagios-config-*/*.cfg sample-config
271 # cleanup backups after patching
272 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
275 s,".*/var/rw/%{name}.cmd,"%{_localstatedir}/rw/%{name}.cmd,
276 s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
277 ' $(find contrib/eventhandlers -type f)
279 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
280 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE5} > lighttpd.conf
284 # kill trailing spaces
287 s,/usr/local/%{name}/share,@datadir@,g
288 # we want all authorized users have default access
290 ' sample-config/*.cfg.in
292 #rm t/611cgistatus-hosturgencies.t
295 cp -f /usr/share/automake/config.sub .
306 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
307 --bindir=%{_sbindir} \
308 --sbindir=%{cgidir} \
309 --datadir=%{htmldir} \
310 --with-nagios-user=%{name} \
311 --with-nagios-grp=%{name} \
312 --with-command-user=%{name} \
313 --with-command-grp=%{name} \
314 --with-lockfile=%{_localstatedir}/%{name}.pid \
315 --with-checkresult-dir=%{_var}/spool/%{name}/checkresults \
316 --with-ping_command='/bin/ping -n %%s -c %%d' \
317 %{!?with_gd:--disable-statusmap --disable-trends} \
318 %{?with_tests:--enable-libtap} \
319 --enable-event-broker
323 %{?with_doc:%{__make} dox}
325 %{?with_tests:%{__make} test}
328 rm -rf $RPM_BUILD_ROOT
329 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
330 $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
331 $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,objects} \
332 $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins,brokers} \
333 %if "%{_lib}" != "lib"
334 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
337 %{__make} install-unstripped install-devel \
338 DESTDIR=$RPM_BUILD_ROOT \
343 install -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
344 cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
346 # install templated configuration files
347 for a in %{name}.cfg resource.cfg commands.cfg contactgroups.cfg contacts.cfg templates.cfg timeperiods.cfg; do
348 cp -p sample-config/$a $RPM_BUILD_ROOT%{_sysconfdir}
352 cp -p apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
353 cp -p apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
354 cp -p lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
355 cp -p sample-config/cgi.cfg $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
356 cp -p %{SOURCE6} $RPM_BUILD_ROOT%{htmldir}/images
357 cp -p %{SOURCE7} $RPM_BUILD_ROOT%{htmldir}/images
358 cp -p %{SOURCE8} $RPM_BUILD_ROOT%{htmldir}/images
359 cp -p %{SOURCE9} $RPM_BUILD_ROOT%{htmldir}
360 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
361 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
363 # install event handlers, sample config
364 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
365 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
366 cp -a sample-config $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
367 find $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -name '*.in' | xargs rm
370 install -d $RPM_BUILD_ROOT/etc/mrtg/conf.d
371 cp -p sample-config/mrtg.cfg $RPM_BUILD_ROOT/etc/mrtg/conf.d/%{name}.cfg
373 # Object data/cache files
374 for i in {objects.{cache,precache},{retention,status}.dat,%{name}.{tmp,pid}}; do
375 > $RPM_BUILD_ROOT%{_localstatedir}/$i
377 > $RPM_BUILD_ROOT%{_localstatedir}/rw/%{name}.cmd
378 > $RPM_BUILD_ROOT%{_localstatedir}/rw/%{name}.qh
380 install -d $RPM_BUILD_ROOT%{_docdir}/%{name}
381 %{?with_doc:%{__cp} -a Documentation/html/* $RPM_BUILD_ROOT%{_docdir}/%{name}}
384 rm -rf $RPM_BUILD_ROOT
387 for i in %{_localstatedir}/{objects.{cache,precache},{retention,status}.dat}; do
388 [ ! -f $i ] && touch $i
393 /sbin/chkconfig --add %{name}
394 %service %{name} restart "Nagios service"
397 if [ "$1" = "0" ] ; then
398 %service %{name} stop
399 /sbin/chkconfig --del %{name}
403 # rename group netsaint -> nagios
404 if [ "$(getgid netsaint 2>/dev/null)" = "72" ]; then
405 /usr/sbin/groupmod -n nagios netsaint
407 # rename group nagios-data -> nagcmd
408 if [ "$(getgid nagios-data 2>/dev/null)" = "147" ]; then
409 /usr/sbin/groupmod -n nagcmd nagios-data
411 %groupadd -g 72 nagios
412 %groupadd -g 147 -f nagcmd
413 if [ -n "$(id -u netsaint 2>/dev/null)" ] && [ "$(id -u netsaint)" = "72" ]; then
414 /usr/sbin/usermod -d %{nagioshome} -l nagios -c "Nagios Daemon" -G nagcmd netsaint
416 %useradd -u 72 -d %{nagioshome} -s /bin/false -c "Nagios Daemon" -g nagios -G nagcmd nagios
417 # update nagios user home
418 home=$(IFS=:; set -- $(getent passwd nagios); echo $6)
419 if [ "$home" != %{nagioshome} ]; then
420 /usr/sbin/usermod -d %{nagioshome} nagios
424 if [ "$1" = "0" ]; then
431 if [ "$1" = 1 ]; then
432 %banner %{name} -e <<EOF
434 You need to add user to %{_webapps}/%{_webapp}/passwd and
435 %{_webapps}/%{_webapp}/group to access Nagios via web.
440 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
441 %addusertogroup http nagcmd
442 %webapp_register apache %{_webapp}
444 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
445 %webapp_unregister apache %{_webapp}
447 %triggerin cgi -- apache < 2.2.0, apache-base
448 %addusertogroup http nagcmd
449 %webapp_register httpd %{_webapp}
451 %triggerun cgi -- apache < 2.2.0, apache-base
452 %webapp_unregister httpd %{_webapp}
454 %triggerin cgi -- lighttpd
455 %addusertogroup lighttpd nagcmd
456 %webapp_register lighttpd %{_webapp}
458 %triggerun cgi -- lighttpd
459 %webapp_unregister lighttpd %{_webapp}
461 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
462 chown root:http %{_sysconfdir}/cgi.cfg
464 %triggerpostun -- nagios < 3.1.2-4
466 for a in dependencies.cfg services.cfg serviceextinfo.cfg hosts.cfg hostgroups.cfg hostextinfo.cfg escalations.cfg checkcommands.cfg misccommands.cfg; do
467 if [ -f %{_sysconfdir}/$a.rpmsave -a ! -f %{_sysconfdir}/$a ]; then
468 mv -f %{_sysconfdir}/$a{.rpmsave,}
471 %{__sed} -i -e 's,^check_result_path=.*,check_result_path=%{_var}/spool/%{name}/checkresults,' %{_sysconfdir}/%{name}.cfg
474 %triggerpostun -- nagios-common < 4.0.8-2.2
475 %banner -e %{name}-common <<EOF
477 IMPORTANT: nagios user home changed to %{nagioshome}, you may need to move files from previous location %{_libdir}/%{name}.
482 %defattr(644,root,root,755)
483 %doc Changelog README* UPGRADING INSTALLING LICENSE
484 %attr(750,root,nagios) %dir %{_sysconfdir}/objects
486 # leave main nagios config readable for -cgi.
487 %attr(640,root,nagcmd) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}.cfg
489 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/commands.cfg
490 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/contactgroups.cfg
491 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/contacts.cfg
492 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/resource.cfg
493 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/templates.cfg
494 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timeperiods.cfg
496 %attr(754,root,root) /etc/rc.d/init.d/%{name}
497 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
499 %attr(755,root,root) %{_sbindir}/%{name}
500 %attr(755,root,root) %{_sbindir}/nagiostats
501 %dir %{_libdir}/%{name}/brokers
503 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}
504 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}/archives
506 %attr(770,root,nagcmd) %dir %{_localstatedir}
507 %attr(2770,root,nagcmd) %dir %{_localstatedir}/rw
508 %attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/%{name}.cmd
509 %attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/%{name}.qh
510 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
511 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.precache
512 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
513 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
514 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.pid
516 %attr(770,root,nagcmd) %dir %{_var}/spool/%{name}/checkresults
518 %{_examplesdir}/%{name}-%{version}
521 %defattr(644,root,root,755)
522 %attr(750,root,nagcmd) %dir %{_sysconfdir}
523 %attr(750,root,nagios) %dir %{_sysconfdir}/plugins
524 %dir %{_libdir}/%{name}
525 %dir %{_libdir}/%{name}/plugins
526 %dir %{_libdir}/%{name}/eventhandlers
528 %if "%{_lib}" != "lib"
529 %dir %{_prefix}/lib/%{name}
530 %dir %{_prefix}/lib/%{name}/plugins
531 %dir %{_prefix}/lib/%{name}/eventhandlers
534 %attr(770,root,nagcmd) %dir %{_var}/spool/%{name}
537 %defattr(644,root,root,755)
538 %config(noreplace) %verify(not md5 mtime size) /etc/mrtg/conf.d/%{name}.cfg
542 %defattr(644,root,root,755)
547 %defattr(644,root,root,755)
548 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
549 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
550 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
551 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
552 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
553 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
554 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
556 %attr(755,root,root) %{cgidir}/*.cgi
559 %dir %{htmldir}/includes
560 %dir %{htmldir}/images
561 %dir %{htmldir}/stylesheets
562 %{htmldir}/robots.txt
563 %{htmldir}/contexthelp
564 %{htmldir}/jsonquery.html
567 %{htmldir}/images/favicon.ico
568 %{htmldir}/images/marker.png
569 %{htmldir}/images/shadow50.png
570 %{htmldir}/nagioswall.php
573 %{htmldir}/bootstrap-3.3.0
576 %{htmldir}/graph-header.html
577 %{htmldir}/histogram-form.html
578 %{htmldir}/histogram-graph.html
579 %{htmldir}/histogram-links.html
580 %{htmldir}/histogram.html
581 %{htmldir}/infobox.html
582 %{htmldir}/map-directive.html
583 %{htmldir}/map-form.html
584 %{htmldir}/map-links.html
585 %{htmldir}/map-popup.html
586 %{htmldir}/trends-form.html
587 %{htmldir}/trends-graph.html
588 %{htmldir}/trends-host-yaxis.html
589 %{htmldir}/trends-links.html
590 %{htmldir}/trends-service-yaxis.html
591 %{htmldir}/trends.html
593 %files theme-classicui
594 %defattr(644,root,root,755)
595 %exclude %{htmldir}/nagioswall.php
597 %{htmldir}/includes/*
599 %exclude %{htmldir}/images/favicon.ico
600 %exclude %{htmldir}/images/marker.png
601 %exclude %{htmldir}/images/shadow50.png
602 %{htmldir}/stylesheets/*
605 %defattr(644,root,root,755)
608 %defattr(644,root,root,755)
609 %dir %{_includedir}/%{name}
610 %{_includedir}/%{name}/*.h
611 %{_includedir}/%{name}/lib
612 %{_libdir}/libnagios.a