]> git.pld-linux.org Git - packages/nagios.git/blob - nagios.spec
- updated to 3.0.5
[packages/nagios.git] / nagios.spec
1 #
2 # Conditional build:
3 %bcond_without  gd      # without statusmap and trends, which require gd library
4 #
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
8 Name:           nagios
9 Version:        3.0.5
10 Release:        1
11 License:        GPL v2
12 Group:          Networking
13 Source0:        http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
14 # Source0-md5:  c607ffd5f4574cbea345bdf2e02dc480
15 Source1:        %{name}-apache.conf
16 Source2:        %{name}.init
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
31 %if %{with gd}
32 BuildRequires:  gd-devel
33 BuildRequires:  libjpeg-devel
34 BuildRequires:  libpng-devel
35 %endif
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}
42 Requires:       /bin/mail
43 Requires:       rc-scripts
44 Requires:       sh-utils
45 Provides:       nagios-core
46 Obsoletes:      netsaint
47 Conflicts:      iputils-ping < 1:ss020124
48 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
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}
57
58 %description
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
64 specify.
65
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.
69
70 Nagios is successor to NetSaint.
71
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
78 sprawdzające.
79
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.
83
84 Nagios jest następcą NetSainta.
85
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.
93
94 %package common
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
97 Group:          Networking
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)
109
110 %description common
111 Common files needed by both nagios and nrpe.
112
113 %description common -l pl.UTF-8
114 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
115
116 %package cgi
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)
125 Requires:       webapps
126 Requires:       webserver
127 Requires:       webserver(access)
128 Requires:       webserver(alias)
129 Requires:       webserver(auth)
130 Requires:       webserver(cgi)
131 Requires:       webserver(indexfile)
132
133 %description cgi
134 CGI webinterface for Nagios.
135
136 %description cgi -l pl.UTF-8
137 Interfejs CGI dla Nagiosa.
138
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
146
147 %description theme-default
148 Original theme from Nagios.
149
150 %description theme-default -l pl.UTF-8
151 Oryginalny motyw z Nagiosa.
152
153 %package devel
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
159
160 %description devel
161 This package provides include files that Nagios-related applications
162 may compile against.
163
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.
167
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.
171
172 %prep
173 %setup -q
174 %patch0 -p0
175 %patch1 -p1
176 %patch2 -p1
177 %patch3 -p1
178 %patch4 -p1
179
180 sed -i -e '
181         s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
182         s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
183 ' $(find contrib/eventhandlers -type f)
184
185 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
186 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
187
188 %build
189 cp -f /usr/share/automake/config.sub .
190 %{__aclocal}
191 %{__autoconf}
192 %configure \
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}
201
202 %{__make} all
203
204 %install
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} \
212 %endif
213
214 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
215 install include/*.h     $RPM_BUILD_ROOT%{_includedir}/%{name}
216
217 %{__make} install-unstripped \
218         DESTDIR=$RPM_BUILD_ROOT \
219         INSTALL_OPTS="" \
220         INIT_OPTS="" \
221         COMMAND_OPTS=""
222
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}
226
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
230
231 # webserver files
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
238
239 # install event handlers
240 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
241 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
242
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
246 done
247 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
248
249 %clean
250 rm -rf $RPM_BUILD_ROOT
251
252 %post
253 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
254         [ ! -f $i ] && touch $i
255         chown root:nagios $i
256         chmod 664 $i
257 done
258
259 /sbin/chkconfig --add %{name}
260 %service %{name} restart "Nagios service"
261
262 %preun
263 if [ "$1" = "0" ] ; then
264         %service %{name} stop
265         /sbin/chkconfig --del %{name}
266 fi
267
268 %pre common
269 if [ "`getgid netsaint`" = "72" ]; then
270         /usr/sbin/groupmod -n nagios netsaint
271 fi
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
276 fi
277 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios Daemon" -g nagios -G nagios-data nagios
278
279 %postun common
280 if [ "$1" = "0" ]; then
281         %userremove nagios
282         %groupremove nagios
283         %groupremove nagios-data
284 fi
285
286 %post cgi
287 if [ "$1" = 1 ]; then
288 %banner %{name} -e <<EOF
289 NOTE:
290 You need to add user to %{_webapps}/%{_webapp}/passwd and
291 %{_webapps}/%{_webapp}/group to access Nagios via web.
292
293 EOF
294 fi
295
296 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
297 %addusertogroup http nagios-data
298 %webapp_register apache %{_webapp}
299
300 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
301 %webapp_unregister apache %{_webapp}
302
303 %triggerin cgi -- apache < 2.2.0, apache-base
304 %addusertogroup http nagios-data
305 %webapp_register httpd %{_webapp}
306
307 %triggerun cgi -- apache < 2.2.0, apache-base
308 %webapp_unregister httpd %{_webapp}
309
310 %triggerin cgi -- lighttpd
311 %addusertogroup lighttpd nagios-data
312 %webapp_register lighttpd %{_webapp}
313
314 %triggerun cgi -- lighttpd
315 %webapp_unregister lighttpd %{_webapp}
316
317 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
318 chown root:http %{_sysconfdir}/cgi.cfg
319
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
324
325 # must unify nagios.cfg
326 sed -i -e '
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,
333
334 # option changes
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=,
339
340 ' %{_sysconfdir}/nagios.cfg
341
342 sed -i -e '
343 s,\$DATETIME\$,$LONGDATETIME$,g
344 s,Nagios/1.2,Nagios/%{version},g
345 ' %{_sysconfdir}/misccommands.cfg
346
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
355
356 %service -q %{name} restart
357
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.
361
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 :))
365 EOF
366 #'vim
367
368 # webapps trigger
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
374         fi
375 done
376
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
381 fi
382
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
388         fi
389
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
393         fi
394         rm -f /etc/%{name}/apache-nagios.conf.rpmsave
395 fi
396
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
400         apache_reload=1
401 fi
402 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
403         rm -f /etc/httpd/httpd.conf/99_%{name}.conf
404         httpd_reload=1
405 fi
406
407 if [ "$apache_reload" ]; then
408         /usr/sbin/webapp register apache %{_webapp}
409         %service -q apache reload
410 fi
411 if [ "$httpd_reload" ]; then
412         /usr/sbin/webapp register httpd %{_webapp}
413         %service -q httpd reload
414 fi
415
416 %files
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
422
423 %attr(754,root,root) /etc/rc.d/init.d/%{name}
424 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
425
426 %attr(755,root,root) %{_bindir}/%{name}
427 %attr(755,root,root) %{_bindir}/nagiostats
428
429 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
430 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
431
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
440
441 %{_examplesdir}/%{name}-%{version}
442
443 %files common
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
451
452 %if "%{_lib}" != "lib"
453 %dir %{_prefix}/lib/%{name}
454 %dir %{_prefix}/lib/%{name}/plugins
455 %dir %{_prefix}/lib/%{name}/eventhandlers
456 %endif
457
458 %files cgi
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
467 %dir %{_sbindir}
468 %attr(755,root,root) %{_sbindir}/*.cgi
469
470 %dir %{_datadir}
471 %dir %{_datadir}/images
472 %dir %{_datadir}/stylesheets
473 %{_datadir}/favicon.ico
474 %{_datadir}/robots.txt
475 %{_datadir}/contexthelp
476 %{_datadir}/docs
477 %{_datadir}/media
478 %{_datadir}/ssi
479
480 %files theme-default
481 %defattr(644,root,root,755)
482 %{_datadir}/*.html
483 %{_datadir}/images/*
484 %{_datadir}/stylesheets/*
485
486 %files devel
487 %defattr(644,root,root,755)
488 %dir %{_includedir}/%{name}
489 %{_includedir}/%{name}/*.h
This page took 0.072314 seconds and 3 git commands to generate.