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