]> git.pld-linux.org Git - packages/nagios.git/blob - nagios.spec
- release 3
[packages/nagios.git] / nagios.spec
1 #
2 # Conditional build:
3 %bcond_without  gd      # without statusmap and trends, which require gd library
4 # reeenable when http://tracker.nagios.org/view.php?id=51 is fixed
5 %bcond_with     tests
6 #
7 Summary:        Host/service/network monitoring program
8 Summary(pl.UTF-8):      Program do monitorowania serwerów/usług/sieci
9 Summary(pt_BR.UTF-8):   Programa para monitoração de máquinas e serviços
10 Name:           nagios
11 Version:        3.2.0
12 Release:        3
13 License:        GPL v2
14 Group:          Networking
15 Source0:        http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
16 # Source0-md5:  3566167cc60ddeaad34e7d2e26ed4a58
17 Source1:        %{name}-apache.conf
18 Source2:        %{name}.init
19 Source3:        %{name}.sysconfig
20 Source4:        http://www.nagios.org/images/favicon.ico
21 # Source4-md5:  1c4201c7da53d6c7e48251d3a9680449
22 Source5:        %{name}-config-20090908.tar.bz2
23 # Source5-md5:  0ddb5a424c5618278ac6103f914b1f26
24 Source6:        %{name}-lighttpd.conf
25 Patch0:         %{name}-resources.patch
26 Patch1:         %{name}-iconv-in-libc.patch
27 Patch2:         %{name}-webapps.patch
28 Patch3:         %{name}-cgi-http_charset.patch
29 Patch4:         %{name}-cmd-typo.patch
30 Patch5:         config.patch
31 URL:            http://www.nagios.org/
32 BuildRequires:  autoconf
33 BuildRequires:  automake
34 %if %{with gd}
35 BuildRequires:  gd-devel
36 BuildRequires:  libjpeg-devel
37 BuildRequires:  libpng-devel
38 %endif
39 BuildRequires:  rpmbuild(macros) >= 1.268
40 BuildRequires:  sed >= 4.0
41 BuildRequires:  tar >= 1:1.15.1
42 Requires(post,preun):   /sbin/chkconfig
43 Requires:       %{name}-common = %{version}-%{release}
44 Requires:       rc-scripts
45 Requires:       sh-utils
46 Suggests:       nagios-notify >= 0.13
47 Provides:       nagios-core
48 Obsoletes:      netsaint
49 Conflicts:      iputils-ping < 1:ss020124
50 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51
52 %define         _sysconfdir     /etc/%{name}
53 %define         _bindir         %{_prefix}/sbin
54 %define         _sbindir        %{_libdir}/%{name}/cgi
55 %define         _datadir        %{_prefix}/share/%{name}
56 %define         _localstatedir  /var/lib/%{name}
57 %define         _webapps        /etc/webapps
58 %define         _webapp         %{name}
59
60 %description
61 Nagios is a program that will monitor hosts and services on your
62 network. It has the ability to email or page you when a problem arises
63 and when a problem is resolved. Nagios is written in C and is designed
64 to run under Linux (and some other *NIX variants) as a background
65 process, intermittently running checks on various services that you
66 specify.
67
68 The actual service checks are performed by separate "plugin" programs
69 which return the status of the checks to Nagios. The plugins are
70 available in nagios-plugins packages.
71
72 Nagios is successor to NetSaint.
73
74 %description -l pl.UTF-8
75 Nagios to program, który monitoruje serwery oraz usługi w naszej
76 sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz
77 rozwiązaniu problemu. Nagios został napisany w C oraz jest
78 zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami)
79 jako proces pracujący w tle i bezustannie wykonujący pewne operacje
80 sprawdzające.
81
82 Właściwe sprawdzanie jest wykonywane przez osobne programy
83 ("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki
84 są dostępne na stronie w pakietach nagios-plugins.
85
86 Nagios jest następcą NetSainta.
87
88 %description -l pt_BR.UTF-8
89 O Nagios é um programa que monitora máquinas e serviços na sua rede.
90 Ele pode enviar um email ou um aviso de pager para o administrador
91 quando surgir um problema e quando ele for resolvido. Nagios é escrito
92 em C e foi desenvolvido para rodar em plataformas Linux (e algumas
93 variações de *NIX) como um processo em segundo plano, periodicamente
94 executando checagens nos diversos serviços que forem especificados.
95
96 %package common
97 Summary:        Common files needed by both nagios and nrpe
98 Summary(pl.UTF-8):      Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe
99 Group:          Networking
100 Requires(postun):       /usr/sbin/groupdel
101 Requires(postun):       /usr/sbin/userdel
102 Requires(pre):  /bin/id
103 Requires(pre):  /usr/bin/getgid
104 Requires(pre):  /usr/sbin/groupadd
105 Requires(pre):  /usr/sbin/groupmod
106 Requires(pre):  /usr/sbin/useradd
107 Requires(pre):  /usr/sbin/usermod
108 Provides:       group(nagcmd)
109 Provides:       group(nagios)
110 Provides:       user(nagios)
111
112 %description common
113 Common files needed by both nagios and nrpe.
114
115 %description common -l pl.UTF-8
116 Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe.
117
118 %package cgi
119 Summary:        CGI webinterface for Nagios
120 Summary(pl.UTF-8):      Interfejs WWW/CGI dla Nagiosa
121 Group:          Applications/WWW
122 # for dirs... and accessing local logs.
123 Requires:       %{name} = %{version}-%{release}
124 Requires:       %{name}-imagepaks
125 Requires:       %{name}-theme
126 Requires:       group(http)
127 Requires:       webapps
128 Requires:       webserver
129 Requires:       webserver(access)
130 Requires:       webserver(alias)
131 Requires:       webserver(auth)
132 Requires:       webserver(cgi)
133 Requires:       webserver(indexfile)
134
135 %description cgi
136 CGI webinterface for Nagios.
137
138 %description cgi -l pl.UTF-8
139 Interfejs CGI dla Nagiosa.
140
141 %package theme-default
142 Summary:        Default Nagios theme
143 Summary(pl.UTF-8):      Domyślny motyw Nagiosa
144 Group:          Applications/WWW
145 Requires:       nagios-cgi = %{version}-%{release}
146 Requires:       webserver(php)
147 Provides:       nagios-theme
148 Obsoletes:      nagios-theme
149
150 %description theme-default
151 Original theme from Nagios.
152
153 %description theme-default -l pl.UTF-8
154 Oryginalny motyw z Nagiosa.
155
156 %package devel
157 Summary:        Include files that Nagios-related applications may compile against
158 Summary(pl.UTF-8):      Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa
159 Summary(pt_BR.UTF-8):   Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios
160 Group:          Development/Libraries
161 # doesn't require base
162
163 %description devel
164 This package provides include files that Nagios-related applications
165 may compile against.
166
167 %description devel -l pl.UTF-8
168 Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane
169 przez aplikacje związane z nagiosem podczas kompilacji.
170
171 %description devel -l pt_BR.UTF-8
172 Este pacote contém arquivos de cabeçalho usados no desenvolvimento de
173 aplicativos para o Nagios.
174
175 %prep
176 %setup -q -a5
177 %patch0 -p0
178 %patch1 -p1
179 %patch2 -p1
180 %patch3 -p1
181 %patch4 -p1
182 %patch5 -p1
183
184 find -name .cvsignore | xargs rm
185
186 mv nagios-config-*/objects/*.cfg sample-config/template-object
187 mv nagios-config-*/*.cfg sample-config
188
189 sed -i -e '
190         s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
191         s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers,
192 ' $(find contrib/eventhandlers -type f)
193
194 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
195 sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
196
197 # fixup cgi config
198 %{__sed} -i -e '
199         # kill trailing spaces
200         s, \+$,,
201         # use real paths
202         s,/usr/local/nagios/share,@datadir@,g
203         # we want all authorized users have default access
204         s,=nagiosadmin,=*,g
205 ' sample-config/*.cfg.in
206
207 %build
208 cp -f /usr/share/automake/config.sub .
209 %{__aclocal}
210 %{__autoconf}
211 %configure \
212         CFLAGS="%{rpmcflags} %{rpmcppflags}" \
213         --with-nagios-user=%{name} \
214         --with-nagios-grp=%{name} \
215         --with-command-user=%{name} \
216         --with-command-grp=%{name} \
217         --with-lockfile=%{_localstatedir}/%{name}.pid \
218         --with-checkresult-dir=%{_var}/spool/%{name}/checkresults \
219         --with-ping_command='/bin/ping -n %%s -c %%d' \
220         %{!?with_gd:--disable-statusmap --disable-trends} \
221         %{?with_tests:--enable-libtap} \
222         --enable-event-broker
223
224 %{__make} all
225
226 %{?with_tests:%{__make} test}
227
228 %install
229 rm -rf $RPM_BUILD_ROOT
230 install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \
231         $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \
232         $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,objects} \
233         $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \
234 %if "%{_lib}" != "lib"
235         $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
236 %endif
237
238 install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
239 install include/*.h     $RPM_BUILD_ROOT%{_includedir}/%{name}
240
241 %{__make} install-unstripped \
242         DESTDIR=$RPM_BUILD_ROOT \
243         INSTALL_OPTS="" \
244         INIT_OPTS="" \
245         COMMAND_OPTS=""
246
247 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
248 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
249 install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir}
250
251 # install templated configuration files
252 for a in nagios.cfg resource.cfg commands.cfg contactgroups.cfg contacts.cfg templates.cfg timeperiods.cfg; do
253         cp -a sample-config/$a $RPM_BUILD_ROOT%{_sysconfdir}
254 done
255
256 # webserver files
257 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
258 install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
259 install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
260 cp -a sample-config/cgi.cfg $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
261 > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
262 echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
263
264 # install event handlers, sample config
265 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
266 cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
267 cp -a sample-config $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
268 find $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -name '*.in' | xargs rm
269
270 # Object data/cache files
271 for i in {objects.{cache,precache},{comments,downtime,retention,status}.dat,nagios.tmp}; do
272         > $RPM_BUILD_ROOT%{_localstatedir}/$i
273 done
274 > $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
275
276 %clean
277 rm -rf $RPM_BUILD_ROOT
278
279 %post
280 for i in %{_localstatedir}/{objects.{cache,precache},{comments,downtime,retention,status}.dat}; do
281         [ ! -f $i ] && touch $i
282         chown root:nagios $i
283         chmod 664 $i
284 done
285
286 /sbin/chkconfig --add %{name}
287 %service %{name} restart "Nagios service"
288
289 %preun
290 if [ "$1" = "0" ] ; then
291         %service %{name} stop
292         /sbin/chkconfig --del %{name}
293 fi
294
295 %pre common
296 # rename group netsaint -> nagios
297 if [ "`getgid netsaint 2>/dev/null`" = "72" ]; then
298         /usr/sbin/groupmod -n nagios netsaint
299 fi
300 # rename group nagios-data -> nagcmd
301 if [ "`getgid nagios-data 2>/dev/null`" = "147" ]; then
302         /usr/sbin/groupmod -n nagcmd nagios-data
303 fi
304 %groupadd -g 72 nagios
305 %groupadd -g 147 -f nagcmd
306 if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
307         /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios Daemon" -G nagcmd netsaint
308 fi
309 %useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios Daemon" -g nagios -G nagcmd nagios
310
311 %postun common
312 if [ "$1" = "0" ]; then
313         %userremove nagios
314         %groupremove nagios
315         %groupremove nagcmd
316 fi
317
318 %post cgi
319 if [ "$1" = 1 ]; then
320 %banner %{name} -e <<EOF
321 NOTE:
322 You need to add user to %{_webapps}/%{_webapp}/passwd and
323 %{_webapps}/%{_webapp}/group to access Nagios via web.
324
325 EOF
326 fi
327
328 %triggerin cgi -- apache1 < 1.3.37-3, apache1-base
329 %addusertogroup http nagcmd
330 %webapp_register apache %{_webapp}
331
332 %triggerun cgi -- apache1 < 1.3.37-3, apache1-base
333 %webapp_unregister apache %{_webapp}
334
335 %triggerin cgi -- apache < 2.2.0, apache-base
336 %addusertogroup http nagcmd
337 %webapp_register httpd %{_webapp}
338
339 %triggerun cgi -- apache < 2.2.0, apache-base
340 %webapp_unregister httpd %{_webapp}
341
342 %triggerin cgi -- lighttpd
343 %addusertogroup lighttpd nagcmd
344 %webapp_register lighttpd %{_webapp}
345
346 %triggerun cgi -- lighttpd
347 %webapp_unregister lighttpd %{_webapp}
348
349 %triggerpostun -- nagios-cgi < 2.0-0.b3.21
350 chown root:http %{_sysconfdir}/cgi.cfg
351
352 %triggerpostun -- nagios < 3.1.2-4
353 # restore lost files
354 for a in dependencies.cfg services.cfg serviceextinfo.cfg hosts.cfg hostgroups.cfg hostextinfo.cfg escalations.cfg checkcommands.cfg misccommands.cfg; do
355         if [ -f %{_sysconfdir}/$a.rpmsave -a ! -f %{_sysconfdir}/$a ]; then
356                 mv -f %{_sysconfdir}/$a{.rpmsave,}
357         fi
358 done
359 %{__sed} -i -e 's,^check_result_path=.*,check_result_path=%{_var}/spool/%{name}/checkresults,' %{_sysconfdir}/nagios.cfg
360
361 %files
362 %defattr(644,root,root,755)
363 %doc Changelog README* UPGRADING INSTALLING LICENSE
364 %attr(640,root,nagcmd) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg
365 %attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg
366
367 %attr(754,root,root) /etc/rc.d/init.d/%{name}
368 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name}
369
370 %attr(755,root,root) %{_bindir}/%{name}
371 %attr(755,root,root) %{_bindir}/nagiostats
372
373 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}
374 %attr(770,root,nagcmd) %dir %{_var}/log/%{name}/archives
375
376 %attr(770,root,nagcmd) %dir %{_localstatedir}
377 %attr(2770,root,nagcmd) %dir %{_localstatedir}/rw
378 %attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/nagios.cmd
379 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
380 %attr(664,root,nagios) %ghost %{_localstatedir}/objects.precache
381 %attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
382 %attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
383
384 %dir %{_var}/spool
385 %attr(770,root,nagios) %dir %{_var}/spool/%{name}
386 %attr(770,root,nagios) %dir %{_var}/spool/%{name}/checkresults
387
388 %{_examplesdir}/%{name}-%{version}
389
390 %files common
391 %defattr(644,root,root,755)
392 %attr(750,root,nagcmd) %dir %{_sysconfdir}
393 %attr(2750,root,nagios) %dir %{_sysconfdir}/plugins
394 %attr(2750,root,nagios) %dir %{_sysconfdir}/objects
395 %dir %{_libdir}/%{name}
396 %dir %{_libdir}/%{name}/plugins
397 %dir %{_libdir}/%{name}/eventhandlers
398
399 %if "%{_lib}" != "lib"
400 %dir %{_prefix}/lib/%{name}
401 %dir %{_prefix}/lib/%{name}/plugins
402 %dir %{_prefix}/lib/%{name}/eventhandlers
403 %endif
404
405 %files cgi
406 %defattr(644,root,root,755)
407 %dir %attr(750,root,http) %{_webapps}/%{_webapp}
408 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf
409 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf
410 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf
411 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg
412 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd
413 %attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group
414 %dir %{_sbindir}
415 %attr(755,root,root) %{_sbindir}/*.cgi
416
417 %dir %{_datadir}
418 %dir %{_datadir}/includes
419 %dir %{_datadir}/images
420 %dir %{_datadir}/stylesheets
421 %{_datadir}/favicon.ico
422 %{_datadir}/robots.txt
423 %{_datadir}/contexthelp
424 %{_datadir}/docs
425 %{_datadir}/media
426 %{_datadir}/ssi
427
428 %files theme-default
429 %defattr(644,root,root,755)
430 %{_datadir}/*.php
431 %{_datadir}/includes/*
432 %{_datadir}/images/*
433 %{_datadir}/stylesheets/*
434
435 %files devel
436 %defattr(644,root,root,755)
437 %dir %{_includedir}/%{name}
438 %{_includedir}/%{name}/*.h
This page took 0.09618 seconds and 3 git commands to generate.