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: 3.1.2
-Release: 2
+Version: 3.2.0
+Release: 6
License: GPL v2
Group: Networking
Source0: http://dl.sourceforge.net/nagios/%{name}-%{version}.tar.gz
-# Source0-md5: f3c60428cba14264c709749182b8d93e
+# Source0-md5: 3566167cc60ddeaad34e7d2e26ed4a58
Source1: %{name}-apache.conf
Source2: %{name}.init
Source3: %{name}.sysconfig
Source4: http://www.nagios.org/images/favicon.ico
# Source4-md5: 1c4201c7da53d6c7e48251d3a9680449
-Source5: %{name}-config-20071217.tar.bz2
-# Source5-md5: c50e60b73f86b8bfbc36f486d583f67b
+Source5: %{name}-config-20090914.tar.bz2
+# Source5-md5: 605f1cd28c00db961dad6f529d849f16
Source6: %{name}-lighttpd.conf
Patch0: %{name}-resources.patch
Patch1: %{name}-iconv-in-libc.patch
Patch2: %{name}-webapps.patch
Patch3: %{name}-cgi-http_charset.patch
Patch4: %{name}-cmd-typo.patch
+Patch5: config.patch
URL: http://www.nagios.org/
BuildRequires: autoconf
BuildRequires: automake
%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: rc-scripts
Requires: sh-utils
+Suggests: nagios-notify >= 0.13
Provides: nagios-core
Obsoletes: netsaint
Conflicts: iputils-ping < 1:ss020124
Requires(pre): /usr/sbin/groupmod
Requires(pre): /usr/sbin/useradd
Requires(pre): /usr/sbin/usermod
+Provides: group(nagcmd)
Provides: group(nagios)
-Provides: group(nagios-data)
Provides: user(nagios)
%description common
Summary: Default Nagios theme
Summary(pl.UTF-8): Domyślny motyw Nagiosa
Group: Applications/WWW
-Requires: webserver(php)
Requires: nagios-cgi = %{version}-%{release}
+Requires: webserver(php)
Provides: nagios-theme
Obsoletes: nagios-theme
aplicativos para o Nagios.
%prep
-%setup -q
+%setup -q -a5
%patch0 -p0
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+
+find -name .cvsignore -o -name .gitignore | xargs rm
+
+mv nagios-config-*/objects/*.cfg sample-config/template-object
+mv nagios-config-*/*.cfg sample-config
+
+# cleanup backups after patching
+find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
sed -i -e '
s,".*/var/rw/nagios.cmd,"%{_localstatedir}/rw/nagios.cmd,
sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE1} > apache.conf
sed -e 's,%{_prefix}/lib/,%{_libdir}/,' %{SOURCE6} > lighttpd.conf
+# fixup cgi config
+%{__sed} -i -e '
+ # kill trailing spaces
+ s, \+$,,
+ # use real paths
+ s,/usr/local/nagios/share,@datadir@,g
+ # we want all authorized users have default access
+ s,=nagiosadmin,=*,g
+' sample-config/*.cfg.in
+
%build
cp -f /usr/share/automake/config.sub .
%{__aclocal}
%{__autoconf}
%configure \
- --datarootdir=%{_datadir} \
+ CFLAGS="%{rpmcflags} %{rpmcppflags}" \
--with-nagios-user=%{name} \
--with-nagios-grp=%{name} \
--with-command-user=%{name} \
--with-command-grp=%{name} \
--with-lockfile=%{_localstatedir}/%{name}.pid \
+ --with-checkresult-dir=%{_var}/spool/%{name}/checkresults \
--with-ping_command='/bin/ping -n %%s -c %%d' \
%{!?with_gd:--disable-statusmap --disable-trends} \
%{?with_tests:--enable-libtap} \
rm -rf $RPM_BUILD_ROOT
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%{_sysconfdir}/{plugins,objects} \
$RPM_BUILD_ROOT%{_libdir}/%{name}/{eventhandlers,plugins} \
%if "%{_lib}" != "lib"
$RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{eventhandlers,plugins} \
%endif
install -d $RPM_BUILD_ROOT%{_includedir}/%{name}
-install include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
+cp -a include/*.h $RPM_BUILD_ROOT%{_includedir}/%{name}
%{__make} install-unstripped \
DESTDIR=$RPM_BUILD_ROOT \
INIT_OPTS="" \
COMMAND_OPTS=""
-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 -p %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+cp -a %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/%{name}
+cp -a %{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
+for a in nagios.cfg resource.cfg commands.cfg contactgroups.cfg contacts.cfg templates.cfg timeperiods.cfg; do
+ cp -a sample-config/$a $RPM_BUILD_ROOT%{_sysconfdir}
+done
# 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}}
+cp -a apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/apache.conf
+cp -a apache.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/httpd.conf
+cp -a lighttpd.conf $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/lighttpd.conf
+cp -a sample-config/cgi.cfg $RPM_BUILD_ROOT%{_webapps}/%{_webapp}
> $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/passwd
echo 'nagios:' > $RPM_BUILD_ROOT%{_webapps}/%{_webapp}/group
-# install event handlers
+# install event handlers, sample config
install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
cp -a contrib/eventhandlers $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+cp -a sample-config $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+find $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} -name '*.in' | xargs rm
# Object data/cache files
-for i in {objects.cache,{comments,downtime,retention,status}.dat,nagios.tmp}; do
+for i in {objects.{cache,precache},{comments,downtime,retention,status}.dat,nagios.tmp}; do
> $RPM_BUILD_ROOT%{_localstatedir}/$i
done
> $RPM_BUILD_ROOT%{_localstatedir}/rw/nagios.cmd
rm -rf $RPM_BUILD_ROOT
%post
-for i in %{_localstatedir}/{objects.cache,{comments,downtime,retention,status}.dat}; do
+for i in %{_localstatedir}/{objects.{cache,precache},{comments,downtime,retention,status}.dat}; do
[ ! -f $i ] && touch $i
chown root:nagios $i
chmod 664 $i
fi
%pre common
+# rename group netsaint -> nagios
if [ "`getgid netsaint 2>/dev/null`" = "72" ]; then
/usr/sbin/groupmod -n nagios netsaint
fi
+# rename group nagios-data -> nagcmd
+if [ "`getgid nagios-data 2>/dev/null`" = "147" ]; then
+ /usr/sbin/groupmod -n nagcmd nagios-data
+fi
%groupadd -g 72 nagios
-%groupadd -g 147 -f nagios-data
+%groupadd -g 147 -f nagcmd
if [ -n "`id -u netsaint 2>/dev/null`" ] && [ "`id -u netsaint`" = "72" ]; then
- /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios Daemon" -G nagios-data netsaint
+ /usr/sbin/usermod -d %{_libdir}/nagios -l nagios -c "Nagios Daemon" -G nagcmd netsaint
fi
-%useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios Daemon" -g nagios -G nagios-data nagios
+%useradd -u 72 -d %{_libdir}/nagios -s /bin/false -c "Nagios Daemon" -g nagios -G nagcmd nagios
%postun common
if [ "$1" = "0" ]; then
%userremove nagios
%groupremove nagios
- %groupremove nagios-data
+ %groupremove nagcmd
fi
%post cgi
fi
%triggerin cgi -- apache1 < 1.3.37-3, apache1-base
-%addusertogroup http nagios-data
+%addusertogroup http nagcmd
%webapp_register apache %{_webapp}
%triggerun cgi -- apache1 < 1.3.37-3, apache1-base
%webapp_unregister apache %{_webapp}
%triggerin cgi -- apache < 2.2.0, apache-base
-%addusertogroup http nagios-data
+%addusertogroup http nagcmd
%webapp_register httpd %{_webapp}
%triggerun cgi -- apache < 2.2.0, apache-base
%webapp_unregister httpd %{_webapp}
%triggerin cgi -- lighttpd
-%addusertogroup lighttpd nagios-data
+%addusertogroup lighttpd nagcmd
%webapp_register lighttpd %{_webapp}
%triggerun cgi -- lighttpd
%triggerpostun -- nagios-cgi < 2.0-0.b3.21
chown root:http %{_sysconfdir}/cgi.cfg
-%triggerpostun -- nagios < 2.0-0.b3.21
-chown root:nagios %{_sysconfdir}/*.cfg
-chown root:nagios-data %{_sysconfdir}/nagios.cfg
-%addusertogroup nagios nagios-data
-
-# must unify nagios.cfg
-sed -i -e '
-s,^status_file=.*,status_file=%{_localstatedir}/status.dat,
-s,^comment_file=.*,comment_file=%{_localstatedir}/comments.dat,
-s,^downtime_file=.*,downtime_file=%{_localstatedir}/downtime.dat,
-s,^lock_file=.*,lock_file=%{_localstatedir}/nagios.pid,
-s,^temp_file=.*,temp_file=%{_localstatedir}/nagios.tmp,
-s,^state_retention_file=.*,state_retention_file=%{_localstatedir}/retention.dat,
-
-# option changes
-s,^log_passive_service_checks=,log_passive_checks=,
-s,^inter_check_delay_method=,service_inter_check_delay_method=,
-s,^use_agressive_host_checking=,use_aggressive_host_checking=,
-s,^freshness_check_interval=,service_freshness_check_interval=,
-
-' %{_sysconfdir}/nagios.cfg
-
-sed -i -e '
-s,\$DATETIME\$,$LONGDATETIME$,g
-s,Nagios/1.2,Nagios/%{version},g
-' %{_sysconfdir}/misccommands.cfg
-
-mv -f /var/log/nagios/status.log %{_localstatedir}/status.dat 2>/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 <http://nagios.sourceforge.net/docs/2_0/whatsnew.html>
-there are changes that no longer work in Nagios 2.0.
-
-You could also try use <http://oss.op5.se/nagios/object_config_fix.php.gz>
-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
+%triggerpostun -- nagios < 3.1.2-4
+# restore lost files
+for a in dependencies.cfg services.cfg serviceextinfo.cfg hosts.cfg hostgroups.cfg hostextinfo.cfg escalations.cfg checkcommands.cfg misccommands.cfg; do
+ if [ -f %{_sysconfdir}/$a.rpmsave -a ! -f %{_sysconfdir}/$a ]; then
+ mv -f %{_sysconfdir}/$a{.rpmsave,}
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
+%{__sed} -i -e 's,^check_result_path=.*,check_result_path=%{_var}/spool/%{name}/checkresults,' %{_sysconfdir}/nagios.cfg
%files
%defattr(644,root,root,755)
%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(750,root,nagios) %dir %{_sysconfdir}/objects
+%attr(640,root,nagios) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.cfg
%attr(754,root,root) /etc/rc.d/init.d/%{name}
%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,nagcmd) %dir %{_var}/log/%{name}
+%attr(770,root,nagcmd) %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(2770,root,nagios-data) %dir %{_localstatedir}/spool
-%attr(2770,root,nagios-data) %dir %{_localstatedir}/spool/checkresults
+%attr(770,root,nagcmd) %dir %{_localstatedir}
+%attr(2770,root,nagcmd) %dir %{_localstatedir}/rw
+%attr(660,nagios,nagcmd) %ghost %{_localstatedir}/rw/nagios.cmd
%attr(664,root,nagios) %ghost %{_localstatedir}/objects.cache
+%attr(664,root,nagios) %ghost %{_localstatedir}/objects.precache
%attr(664,root,nagios) %ghost %{_localstatedir}/*.dat
%attr(664,root,nagios) %ghost %{_localstatedir}/%{name}.tmp
+%dir %{_var}/spool
+%attr(770,root,nagios) %dir %{_var}/spool/%{name}
+%attr(770,root,nagios) %dir %{_var}/spool/%{name}/checkresults
+
%{_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
+%attr(750,root,nagcmd) %dir %{_sysconfdir}
+%attr(750,root,nagios) %dir %{_sysconfdir}/plugins
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%dir %{_libdir}/%{name}/eventhandlers