]> git.pld-linux.org Git - packages/nagios.git/blob - nagios.spec
- CVE reference
[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:        2.9
10 Release:        1
11 License:        GPL v2
12 Group:          Networking
13 Source0:        http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
14 # Source0-md5:  b6e3a21c91edb063c00712c6001e15ec
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-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 URL:            http://www.nagios.org/
28 BuildRequires:  autoconf
29 BuildRequires:  automake
30 %if %{with gd}
31 BuildRequires:  gd-devel
32 BuildRequires:  libjpeg-devel
33 BuildRequires:  libpng-devel
34 %endif
35 BuildRequires:  rpmbuild(macros) >= 1.268
36 BuildRequires:  sed >= 4.0
37 BuildRequires:  tar >= 1:1.15.1
38 Requires(post,preun):   /sbin/chkconfig
39 Requires(triggerpostun):        sed >= 4.0
40 Requires:       %{name}-common = %{version}-%{release}
41 Requires:       /bin/mail
42 Requires:       nagios-plugins
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(alias)
128 Requires:       webserver(auth)
129 Requires:       webserver(cgi)
130 Requires:       webserver(indexfile)
131
132 %description cgi
133 CGI webinterface for Nagios.
134
135 %description cgi -l pl.UTF-8
136 Interfejs CGI dla Nagiosa.
137
138 %package theme-default
139 Summary:        Default Nagios theme
140 Summary(pl.UTF-8):      Domyślny motyw Nagiosa
141 Group:          Applications/WWW
142 Requires:       nagios-cgi = %{version}-%{release}
143 Provides:       nagios-theme
144 Obsoletes:      nagios-theme
145
146 %description theme-default
147 Original theme from Nagios.
148
149 %description theme-default -l pl.UTF-8
150 Oryginalny motyw z Nagiosa.
151
152 %package devel
153 Summary:        Include files that Nagios-related applications may compile against
154 Summary(pl.UTF-8):      Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
155 Summary(pt_BR.UTF-8):   Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
156 Group:          Development/Libraries
157 # doesn't require base
158
159 %description devel
160 This package provides include files that Nagios-related applications
161 may compile against.
162
163 %description devel -l pl.UTF-8
164 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
165 przez aplikacje związane z nagiosem podczas kompilacji.
166
167 %description devel -l pt_BR.UTF-8
168 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
169 aplicativos para o Nagios.
170
171 %prep
172 %setup -q
173 %patch0 -p0
174 %patch1 -p1
175 %patch2 -p1
176 %patch3 -p1
177
178 sed -i -e '
179         s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
180         s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
181 ' $(find contrib/eventhandlers -type f)
182
183 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
184 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
185
186 %build
187 cp -f /usr/share/automake/config.sub .
188 %{__aclocal}
189 %{__autoconf}
190 %configure \
191         --with-nagios-user=%{name} \
192         --with-nagios-grp=%{name} \
193         --with-command-user=%{name} \
194         --with-command-grp=%{name} \
195         --with-lockfile=%{_localstatedir}/%{name}.pid \
196         --with-ping_command='/bin/ping -n %%s -c %%d' \
197         --enable-event-broker \
198         %{!?with_gd:--disable-statusmap --disable-trends}
199
200 %{__make} all
201
202 %install
203 rm -rf $RPM_BUILD_ROOT
204 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_includedir}/%{name},%{_libdir}/%{name}/{eventhandlers,plugins}} \
205         $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw,%{_sysconfdir}/{plugins,local},%{_examplesdir}/%{name}-%{version}} \
206         $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
207
208 install include/*.h     $RPM_BUILD_ROOT%{_includedir}/%{name}
209
210 %{__make} install-unstripped \
211         DESTDIR=$RPM_BUILD_ROOT \
212         INSTALL_OPTS="" \
213         INIT_OPTS="" \
214         COMMAND_OPTS=""
215
216 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
217 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
218 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
219
220 # install templated configuration files
221 tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir}
222 sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg
223
224 # webserver files
225 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
226 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
227 install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
228 mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}}
229 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
230 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
231
232 # install event handlers
233 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
234
235 # Object data/cache files
236 for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
237         > $RPM_BUILD_ROOT%{_localstatedir}/$i
238 done
239 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
240
241 %clean
242 rm -rf $RPM_BUILD_ROOT
243
244 %post
245 for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
246         [ ! -f $i ] && touch $i
247         chown root:nagios $i
248         chmod 664 $i
249 done
250
251 /sbin/chkconfig --add %{name}
252 %service %{name} restart "Nagios service"
253
254 %preun
255 if [ "$1" = "0" ] ; then
256         %service %{name} stop
257         /sbin/chkconfig --del %{name}
258 fi
259
260 %pre common
261 if [ "`getgid netsaint`" = "72" ]; then
262         /usr/sbin/groupmod -n nagios netsaint
263 fi
264 %groupadd -g 72 nagios
265 %groupadd -g 147 -f nagios-data
266 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
267         /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios User" -G nagios-data netsaint
268 fi
269 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios User" -g nagios -G nagios-data nagios
270
271 %postun common
272 if [ "$1" = "0" ]; then
273         %userremove nagios
274         %groupremove nagios
275         %groupremove nagios-data
276 fi
277
278 %post cgi
279 if [ "$1" = 1 ]; then
280 %banner %{name} -e <<EOF
281 NOTE:
282 You need to add user to %{_webapps}/%{_webapp}/passwd and
283 %{_webapps}/%{_webapp}/group to access Nagios via web.
284
285 EOF
286 fi
287
288 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
289 %addusertogroup http nagios-data
290 %webapp_register apache %{_webapp}
291
292 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
293 %webapp_unregister apache %{_webapp}
294
295 %triggerin cgi -- apache < 2.2.0, apache-base
296 %addusertogroup http nagios-data
297 %webapp_register httpd %{_webapp}
298
299 %triggerun cgi -- apache < 2.2.0, apache-base
300 %webapp_unregister httpd %{_webapp}
301
302 %triggerin cgi -- lighttpd
303 %addusertogroup lighttpd nagios-data
304 %webapp_register lighttpd %{_webapp}
305
306 %triggerun cgi -- lighttpd
307 %webapp_unregister lighttpd %{_webapp}
308
309 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
310 chown root:http %{_sysconfdir}/cgi.cfg
311
312 %triggerpostun -- nagios < 2.0-0.b3.21
313 chown root:nagios %{_sysconfdir}/*.cfg
314 chown root:nagios-data %{_sysconfdir}/nagios.cfg
315 %addusertogroup nagios nagios-data
316
317 # must unify nagios.cfg
318 sed -i -e '
319 s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
320 s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
321 s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
322 s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
323 s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
324 s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
325
326 # option changes
327 s,^log_passive_service_checks=,log_passive_checks=,
328 s,^inter_check_delay_method=,service_inter_check_delay_method=,
329 s,^use_agressive_host_checking=,use_aggressive_host_checking=,
330 s,^freshness_check_interval=,service_freshness_check_interval=,
331
332 ' %{_sysconfdir}/nagios.cfg
333
334 sed -i -e '
335 s,\$DATETIME\$,$LONGDATETIME$,g
336 s,Nagios/1.2,Nagios/%{version},g
337 ' %{_sysconfdir}/misccommands.cfg
338
339 mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/dev/null
340 mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null
341 mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null
342 mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null
343 mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null
344 mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null
345 chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null
346 chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null
347
348 %service -q %{name} restart
349
350 %banner -e %{name}-2.0 <<'EOF'
351 Please read <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
352 there are changes that no longer work in Nagios 2.0.
353
354 You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
355 to convert your config (yes i know it's too late to say it now, after
356 the upgrade, but still :))
357 EOF
358 #'vim
359
360 # webapps trigger
361 %triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2
362 for i in cgi.cfg group passwd; do
363         if [ -f /etc/nagios/$i.rpmsave ]; then
364                 mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew}
365                 mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i
366         fi
367 done
368
369 # migrate from httpd (apache2) config dir
370 if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
371         cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
372         mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
373 fi
374
375 # migrate from apache-config macros
376 if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then
377         if [ -d /etc/apache/webapps.d ]; then
378                 cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew}
379                 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf
380         fi
381
382         if [ -d /etc/httpd/webapps.d ]; then
383                 cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew}
384                 cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf
385         fi
386         rm -f /etc/%{name}/apache-nagios.conf.rpmsave
387 fi
388
389 # place new config location, as trigger puts config only on first install, do it here.
390 if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then
391         rm -f /etc/apache/conf.d/99_%{name}.conf
392         apache_reload=1
393 fi
394 if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then
395         rm -f /etc/httpd/httpd.conf/99_%{name}.conf
396         httpd_reload=1
397 fi
398
399 if [ "$apache_reload" ]; then
400         /usr/sbin/webapp register apache %{_webapp}
401         %service -q apache reload
402 fi
403 if [ "$httpd_reload" ]; then
404         /usr/sbin/webapp register httpd %{_webapp}
405         %service -q httpd reload
406 fi
407
408 %files
409 %defattr(644,root,root,755)
410 %doc Changelog README* UPGRADING INSTALLING LICENSE
411 %doc sample-config/template-object/{localhost,commands}.cfg
412 %attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
413 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
414
415 %attr(754,root,root) /etc/rc.d/init.d/%{name}
416 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
417
418 %attr(755,root,root) %{_bindir}/%{name}
419 %attr(755,root,root) %{_bindir}/nagiostats
420
421 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}
422 %attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives
423
424 %attr(770,root,nagios-data) %dir %{_localstatedir}
425 %attr(2770,root,nagios-data) %dir %{_localstatedir}/rw
426 %attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd
427 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
428 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
429 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
430
431 %{_examplesdir}/%{name}-%{version}
432
433 %files common
434 %defattr(644,root,root,755)
435 %attr(750,root,nagios-data) %dir %{_sysconfdir}
436 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
437 %attr(2750,root,nagios) %dir %{_sysconfdir}/local
438 %dir %{_libdir}/%{name}
439 %dir %{_libdir}/%{name}/plugins
440 %dir %{_libdir}/%{name}/eventhandlers
441
442 %files cgi
443 %defattr(644,root,root,755)
444 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
445 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
446 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
447 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
448 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
449 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
450 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
451 %dir %{_sbindir}
452 %attr(755,root,root) %{_sbindir}/*.cgi
453
454 %dir %{_datadir}
455 %dir %{_datadir}/images
456 %dir %{_datadir}/stylesheets
457 %{_datadir}/favicon.ico
458 %{_datadir}/robots.txt
459 %{_datadir}/contexthelp
460 %{_datadir}/docs
461 %{_datadir}/media
462 %{_datadir}/ssi
463
464 %files theme-default
465 %defattr(644,root,root,755)
466 %{_datadir}/*.html
467 %{_datadir}/images/*
468 %{_datadir}/stylesheets/*
469
470 %files devel
471 %defattr(644,root,root,755)
472 %dir %{_includedir}/%{name}
473 %{_includedir}/%{name}/*.h
This page took 0.113976 seconds and 3 git commands to generate.