X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=nagios.spec;h=fba3e60112693885482a8c99cb1f0e59a15d9000;hb=88158dc8b9ad21209d6fae35cd585b9d05798918;hp=3036a20173bd5503c61b78c287aa62426b7e4d8b;hpb=a9824b3aeb6c1df6a93b9366465286187cde006d;p=packages%2Fnagios.git diff --git a/nagios.spec b/nagios.spec index 3036a20..fba3e60 100644 --- a/nagios.spec +++ b/nagios.spec @@ -1,38 +1,59 @@ # # Conditional build: -# _with_pgsql - enable pgsql support -# _with_mysql - enable mysql support -# _without_gd - without statusmap and trends, which require gd library +%bcond_without gd # without statusmap and trends, which require gd library # Summary: Host/service/network monitoring program -Summary(pl): Program do monitorowania serwerów/us³ug/sieci -Summary(pt_BR): Programa para monitoração de máquinas e serviços +Summary(pl.UTF-8): Program do monitorowania serwerów/usług/sieci +Summary(pt_BR.UTF-8): Programa para monitoração de máquinas e serviços Name: nagios -Version: 1.1 -Release: 0.9 +Version: 2.10 +Release: 1 License: GPL v2 Group: Networking -Source0: http://dl.sourceforge.net/%{name}/%{name}-%{version}.tar.gz -# Source0-md5: 5f48ecd9bad2c4d7c9d88d0b6f347ecf +Source0: http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz +# Source0-md5: 8c3a29e138f2ff8c8abbd3dd8a40c4b6 Source1: %{name}-apache.conf Source2: %{name}.init -Patch0: %{name}-pgsql.patch +Source3: %{name}.sysconfig +Source4: http://www.nagios.org/images/favicon.ico +# Source4-md5: 1c4201c7da53d6c7e48251d3a9680449 +Source5: %{name}-config-20050514.tar.bz2 +# Source5-md5: a2883c65377ef7beb55d48af85ec7ef7 +Source6: %{name}-lighttpd.conf +Patch0: %{name}-resources.patch +Patch1: %{name}-iconv-in-libc.patch +Patch2: %{name}-favicon.patch +Patch3: %{name}-webapps.patch URL: http://www.nagios.org/ -%{!?_without_gd:BuildRequires: gd-devel} -%{?_with_pgsql:BuildRequires: postgresql-devel} -%{?_with_mysql:BuildRequires: mysql-devel} -PreReq: rc-scripts -PreReq: sh-utils -Requires(pre): /usr/bin/getgid -Requires(pre): /bin/id -Requires(pre): /usr/sbin/groupadd -Requires(pre): /usr/sbin/useradd -Requires(post,postun): /sbin/chkconfig +BuildRequires: autoconf +BuildRequires: automake +%if %{with gd} +BuildRequires: gd-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +%endif +BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: sed >= 4.0 +BuildRequires: tar >= 1:1.15.1 +Requires(post,preun): /sbin/chkconfig +Requires(triggerpostun): sed >= 4.0 +Requires: %{name}-common = %{version}-%{release} +Requires: /bin/mail +Requires: nagios-plugins +Requires: rc-scripts +Requires: sh-utils +Provides: nagios-core +Obsoletes: netsaint Conflicts: iputils-ping < 1:ss020124 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) -Obsoletes: netsaint -%define _sysconfdir /etc/%{name} +%define _sysconfdir /etc/%{name} +%define _bindir %{_prefix}/sbin +%define _sbindir %{_libdir}/%{name}/cgi +%define _datadir %{_prefix}/share/%{name} +%define _localstatedir /var/lib/%{name} +%define _webapps /etc/webapps +%define _webapp %{name} %description Nagios is a program that will monitor hosts and services on your @@ -48,158 +69,416 @@ available in nagios-plugins packages. Nagios is successor to NetSaint. -%description -l pl -Nagios to program, który monitoruje serwery oraz us³ugi w naszej -sieci. Posiada on mo¿liwo¶æ wysy³ania informacji o wyst±pieniu oraz -rozwi±zaniu problemu. Nagios zosta³ napisany w C oraz jest -zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami) -jako proces pracuj±cy w tle i bezustannie wykonuj±cy pewne operacje -sprawdzaj±ce. +%description -l pl.UTF-8 +Nagios to program, który monitoruje serwery oraz usługi w naszej +sieci. Posiada on możliwość wysyłania informacji o wystąpieniu oraz +rozwiązaniu problemu. Nagios został napisany w C oraz jest +zaprojektowany do pracy pod Linuksem (i niektórymi innymi uniksami) +jako proces pracujący w tle i bezustannie wykonujący pewne operacje +sprawdzające. -W³a¶ciwe sprawdzanie jest wykonywane przez osobne programy -("wtyczki"), które zwracaj± informacje o statusie do Nagiosa. Wtyczki -s± dostêpne na stronie w pakietach nagios-plugins. +Właściwe sprawdzanie jest wykonywane przez osobne programy +("wtyczki"), które zwracają informacje o statusie do Nagiosa. Wtyczki +są dostępne na stronie w pakietach nagios-plugins. -Nagios jest nastêpc± NetSainta. +Nagios jest następcą NetSainta. -%description -l pt_BR -O Nagios é um programa que monitora máquinas e serviços na sua rede. +%description -l pt_BR.UTF-8 +O Nagios é um programa que monitora máquinas e serviços na sua rede. Ele pode enviar um email ou um aviso de pager para o administrador -quando surgir um problema e quando ele for resolvido. Nagios é escrito +quando surgir um problema e quando ele for resolvido. Nagios é escrito em C e foi desenvolvido para rodar em plataformas Linux (e algumas -variações de *NIX) como um processo em segundo plano, periodicamente -executando checagens nos diversos serviços que forem especificados. +variações de *NIX) como um processo em segundo plano, periodicamente +executando checagens nos diversos serviços que forem especificados. + +%package common +Summary: Common files needed by both nagios and nrpe +Summary(pl.UTF-8): Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe +Group: Networking +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/groupmod +Requires(pre): /usr/sbin/useradd +Requires(pre): /usr/sbin/usermod +Provides: group(nagios) +Provides: group(nagios-data) +Provides: user(nagios) + +%description common +Common files needed by both nagios and nrpe. + +%description common -l pl.UTF-8 +Wspólne pliki wymagane zarówno przez nagiosa jak i nrpe. %package cgi Summary: CGI webinterface for Nagios -Summary(pl): Interfejs WWW/CGI dla Nagiosa -Group: Networking -Requires: apache +Summary(pl.UTF-8): Interfejs WWW/CGI dla Nagiosa +Group: Applications/WWW +# for dirs... and accessing local logs. +Requires: %{name} = %{version}-%{release} +Requires: %{name}-imagepaks +Requires: %{name}-theme +Requires: group(http) +Requires: webapps +Requires: webserver +Requires: webserver(access) +Requires: webserver(alias) +Requires: webserver(auth) +Requires: webserver(cgi) +Requires: webserver(indexfile) %description cgi CGI webinterface for Nagios. -%description cgi -l pl +%description cgi -l pl.UTF-8 Interfejs CGI dla Nagiosa. +%package theme-default +Summary: Default Nagios theme +Summary(pl.UTF-8): Domyślny motyw Nagiosa +Group: Applications/WWW +Requires: nagios-cgi = %{version}-%{release} +Provides: nagios-theme +Obsoletes: nagios-theme + +%description theme-default +Original theme from Nagios. + +%description theme-default -l pl.UTF-8 +Oryginalny motyw z Nagiosa. + %package devel -Summary: Include files that Netsaint-related applications may compile against -Summary(pl): Pliki nag³ówkowe, wykorzystywane przez aplikacje nagiosa -Summary(pt_BR): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios +Summary: Include files that Nagios-related applications may compile against +Summary(pl.UTF-8): Pliki nagłówkowe, wykorzystywane przez aplikacje nagiosa +Summary(pt_BR.UTF-8): Arquivos de cabeçalho necessários para desenvolvimento de aplicativos para o Nagios Group: Development/Libraries +# doesn't require base %description devel -This package provides include files that Netsaint-related applications +This package provides include files that Nagios-related applications may compile against. -%description devel -l pl -Ten pakiet dostarcza pliki nag³ówkowe, które mog± byæ wykorzystywane -przez aplikacje zwi±zane z nagiosem podczas kompilacji. +%description devel -l pl.UTF-8 +Ten pakiet dostarcza pliki nagłówkowe, które mogą być wykorzystywane +przez aplikacje związane z nagiosem podczas kompilacji. -%description devel -l pt_BR -Este pacote contém arquivos de cabeçalho usados no desenvolvimento de +%description devel -l pt_BR.UTF-8 +Este pacote contém arquivos de cabeçalho usados no desenvolvimento de aplicativos para o Nagios. %prep %setup -q -%{?_with_pgsql:%patch -p1} +%patch0 -p0 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +sed -i -e ' + s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd, + s,".*/libexec/eventhandlers,"%{_libdir}/%{name}/eventhandlers, +' $(find contrib/eventhandlers -type f) + +sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf +sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf %build -rm -f missing +cp -f /usr/share/automake/config.sub . %{__aclocal} %{__autoconf} %configure \ --with-nagios-user=%{name} \ --with-nagios-grp=%{name} \ - --with-command-user=nobody \ - --with-command-grp=nobody \ - --with-lockfile=/var/run/%{name}.pid \ + --with-command-user=%{name} \ + --with-command-grp=%{name} \ + --with-lockfile=%{_localstatedir}/%{name}.pid \ --with-ping_command='/bin/ping -n %%s -c %%d' \ - %{?_with_mysql:--with-mysql-xdata --with-mysql-status --with-mysql-comments --with-mysql-extinfo --with-mysql-retention --with-mysql-downtime --with-mysql-lib=%{_libdir} --with-mysql-inc=%{_includedir}/mysql} \ - %{?_with_pgsql:--with-pgsql-xdata --with-pgsql-status --with-pgsql-comments --with-pgsql-extinfo --with-pgsql-retention --with-pgsql-downtime--with-pgsql-lib=%{_libdir} --with-pgsql-inc=%{_includedir}/postgresql} \ - %{?_without_gd:--disable-statusmap --disable-trends} \ - --bindir=%{_sbindir} \ - --sbindir=%{_libdir}/%{name}/cgi \ - --datadir=%{_datadir}/%{name} \ - --localstatedir=/var/lib/%{name} + --enable-event-broker \ + %{!?with_gd:--disable-statusmap --disable-trends} %{__make} all %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{/etc/{rc.d/init.d,httpd},%{_includedir}/%{name},%{_libdir}/%{name}/plugins,%{_var}/log/%{name}} +install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},%{_webapps}/%{_webapp}} \ + $RPM_BUILD_ROOT{%{_var}/log/%{name}/archives,%{_localstatedir}/rw} \ + $RPM_BUILD_ROOT%{_sysconfdir}/{plugins,local} \ + $RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \ +%if "%{_lib}" != "lib" + $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \ +%endif -install common/locations.h $RPM_BUILD_ROOT%{_includedir}/%{name} +install -d $RPM_BUILD_ROOT%{_includedir}/%{name} +install include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name} -%{__make} install install-html install-config install-init install-commandmode fullinstall \ +%{__make} install-unstripped \ DESTDIR=$RPM_BUILD_ROOT \ INSTALL_OPTS="" \ INIT_OPTS="" \ COMMAND_OPTS="" -install %{SOURCE1} $RPM_BUILD_ROOT/etc/httpd/%{name}.conf install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name} +install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name} +install %{SOURCE4} $RPM_BUILD_ROOT%{_datadir} + +# install templated configuration files +tar jxf %{SOURCE5} --strip-components=1 -C $RPM_BUILD_ROOT%{_sysconfdir} +sed -i -e 's,%{_prefix}/lib/,%{_libdir}/,' $RPM_BUILD_ROOT%{_sysconfdir}/resource.cfg + +# webserver files +install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf +install apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf +install lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf +mv $RPM_BUILD_ROOT{%{_sysconfdir}/cgi.cfg,%{_webapps}/%{_webapp}} +> $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd +echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group + +# install event handlers +install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} +cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} + +# Object data/cache files +for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do + > $RPM_BUILD_ROOT%{_localstatedir}/$i +done +> $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd %clean rm -rf $RPM_BUILD_ROOT -%pre -if [ -n "`getgid %{name}`" ]; then - if [ "`getgid %{name}`" != "72" ]; then - echo "Error: group %{name} doesn't have gid=72. Correct this before installing %{name}." 1>&2 - exit 1 - fi -else - /usr/sbin/groupadd -g 72 -f %{name} -fi -if [ -n "`id -u %{name} 2>/dev/null`" ]; then - if [ "`id -u %{name}`" != "72" ]; then - echo "Error: user %{name} doesn't have uid=72. Correct this before installing %{name}." 1>&2 - exit 1 - fi -else - /usr/sbin/useradd -u 72 -d %{_libdir}/%{name} -s /bin/false -c "%{name} User" -g %{name} %{name} 1>&2 -fi - %post +for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do + [ ! -f $i ] && touch $i + chown root:nagios $i + chmod 664 $i +done + /sbin/chkconfig --add %{name} -if [ -f /var/lock/subsys/%{name} ]; then - /etc/rc.d/init.d/%{name} restart 1>&2 -fi +%service %{name} restart "Nagios service" %preun if [ "$1" = "0" ] ; then - if [ -f /var/lock/subsys/%{name} ]; then - /etc/rc.d/init.d/%{name} stop 1>&2 - fi + %service %{name} stop /sbin/chkconfig --del %{name} fi -%postun +%pre common +if [ "`getgid netsaint`" = "72" ]; then + /usr/sbin/groupmod -n nagios netsaint +fi +%groupadd -g 72 nagios +%groupadd -g 147 -f nagios-data +if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then + /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios User" -G nagios-data netsaint +fi +%useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios User" -g nagios -G nagios-data nagios + +%postun common if [ "$1" = "0" ]; then - /usr/sbin/userdel %{name} - /usr/sbin/groupdel %{name} + %userremove nagios + %groupremove nagios + %groupremove nagios-data +fi + +%post cgi +if [ "$1" = 1 ]; then +%banner %{name} -e </dev/null +mv -f /var/log/nagios/comment.log %{_localstatedir}/comments.dat 2>/dev/null +mv -f /var/log/nagios/downtime.log %{_localstatedir}/downtime.dat 2>/dev/null +mv -f /var/run/nagios.pid %{_localstatedir}/nagios.pid 2>/dev/null +mv -f /var/log/nagios/nagios.tmp %{_localstatedir}/nagios.tmp 2>/dev/null +mv -f /var/log/nagios/status.sav %{_localstatedir}/retention.dat 2>/dev/null +chown nagios:nagios %{_localstatedir}/nagios.pid 2>/dev/null +chown nagios:nagios-data %{_localstatedir}/rw/nagios.cmd 2>/dev/null + +%service -q %{name} restart + +%banner -e %{name}-2.0 <<'EOF' +Please read +there are changes that no longer work in Nagios 2.0. + +You could also try use +to convert your config (yes i know it's too late to say it now, after +the upgrade, but still :)) +EOF +#'vim + +# webapps trigger +%triggerpostun cgi -- %{name}-cgi < 2.0-0.b6.0.2 +for i in cgi.cfg group passwd; do + if [ -f /etc/nagios/$i.rpmsave ]; then + mv -f %{_webapps}/%{_webapp}/$i{,.rpmnew} + mv -f /etc/nagios/$i.rpmsave %{_webapps}/%{_webapp}/$i + fi +done + +# migrate from httpd (apache2) config dir +if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then + cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew} + mv -f /etc/httpd/%{name}.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf +fi + +# migrate from apache-config macros +if [ -f /etc/%{name}/apache-nagios.conf.rpmsave ]; then + if [ -d /etc/apache/webapps.d ]; then + cp -f %{_webapps}/%{_webapp}/apache.conf{,.rpmnew} + cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/apache.conf + fi + + if [ -d /etc/httpd/webapps.d ]; then + cp -f %{_webapps}/%{_webapp}/httpd.conf{,.rpmnew} + cp -f /etc/%{name}/apache-nagios.conf.rpmsave %{_webapps}/%{_webapp}/httpd.conf + fi + rm -f /etc/%{name}/apache-nagios.conf.rpmsave +fi + +# place new config location, as trigger puts config only on first install, do it here. +if [ -L /etc/apache/conf.d/99_%{name}.conf ]; then + rm -f /etc/apache/conf.d/99_%{name}.conf + apache_reload=1 +fi +if [ -L /etc/httpd/httpd.conf/99_%{name}.conf ]; then + rm -f /etc/httpd/httpd.conf/99_%{name}.conf + httpd_reload=1 +fi + +if [ "$apache_reload" ]; then + /usr/sbin/webapp register apache %{_webapp} + %service -q apache reload +fi +if [ "$httpd_reload" ]; then + /usr/sbin/webapp register httpd %{_webapp} + %service -q httpd reload fi %files %defattr(644,root,root,755) -%doc Changelog README* UPGRADING contrib/database +%doc Changelog README* UPGRADING INSTALLING LICENSE +%doc sample-config/template-object/{localhost,commands}.cfg +%attr(640,root,nagios-data) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nagios.cfg +%attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/[!n]*.cfg + %attr(754,root,root) /etc/rc.d/init.d/%{name} -%attr(751,root,nagios) %dir %{_sysconfdir} -%attr(644,root,nagios) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/[^c]* -%attr(644,root,nagios) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/c[^g]* +%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{name} + +%attr(755,root,root) %{_bindir}/%{name} +%attr(755,root,root) %{_bindir}/nagiostats + +%attr(770,root,nagios-data) %dir %{_var}/log/%{name} +%attr(770,root,nagios-data) %dir %{_var}/log/%{name}/archives + +%attr(770,root,nagios-data) %dir %{_localstatedir} +%attr(2770,root,nagios-data) %dir %{_localstatedir}/rw +%attr(660,nagios,nagios-data) %ghost %{_localstatedir}/rw/nagios.cmd +%attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache +%attr(664,root,nagios) %ghost %{_localstatedir}/*.dat +%attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp + +%{_examplesdir}/%{name}-%{version} + +%files common +%defattr(644,root,root,755) +%attr(750,root,nagios-data) %dir %{_sysconfdir} +%attr(2750,root,nagios) %dir %{_sysconfdir}/plugins +%attr(2750,root,nagios) %dir %{_sysconfdir}/local %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/plugins -%attr(755,root,root) %{_sbindir}/%{name} -%attr(771,nagios,http) %{_var}/log/%{name} +%dir %{_libdir}/%{name}/eventhandlers + +%if "%{_lib}" != "lib" +%dir %{_prefix}/lib/%{name} +%dir %{_prefix}/lib/%{name}/plugins +%dir %{_prefix}/lib/%{name}/eventhandlers +%endif %files cgi %defattr(644,root,root,755) -%attr(640,root,http) %config(noreplace) %verify(not size mtime md5) /etc/httpd/%{name}.conf -%attr(644,root,http) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/cgi.cfg-sample -%dir %{_libdir}/%{name}/cgi -%attr(755,root,root) %{_libdir}/%{name}/cgi/*.cgi -%{_datadir}/%{name} +%dir %attr(750,root,http) %{_webapps}/%{_webapp} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/apache.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/httpd.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/lighttpd.conf +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/cgi.cfg +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/passwd +%attr(640,root,http) %config(noreplace) %verify(not md5 mtime size) %{_webapps}/%{_webapp}/group +%dir %{_sbindir} +%attr(755,root,root) %{_sbindir}/*.cgi + +%dir %{_datadir} +%dir %{_datadir}/images +%dir %{_datadir}/stylesheets +%{_datadir}/favicon.ico +%{_datadir}/robots.txt +%{_datadir}/contexthelp +%{_datadir}/docs +%{_datadir}/media +%{_datadir}/ssi + +%files theme-default +%defattr(644,root,root,755) +%{_datadir}/*.html +%{_datadir}/images/* +%{_datadir}/stylesheets/* %files devel %defattr(644,root,root,755)