File nagios.spec of Package nagios

#
# spec file for package nagios (Version 2.12)
#
# Copyright (c) 2008 Scorpio IT, Deidesheim, Germany
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via <rpm@scorpio-it.net>
#

# norootforbuild

%if %{?rel:0}%{!?rel:1}
%define rel 1
%endif

#Distribution:   %dist
#Packager:       %packager
#Vendor:         %vendor

Name:           nagios

%define nsusr %{name}
%define nsgrp %{name}
%define cmdusr wwwrun
%define cmdgrp www
%define nslockfile_dir /var/run/%{name}
%define nslockfile %{nslockfile_dir}/%{name}.pid
%define apxs2 /usr/sbin/apxs2-prefork
%define apache2_sysconfdir %(%{apxs2} -q SYSCONFDIR)

Summary:        The Nagios Network Monitor
Version:        2.12
Release:        %{rel}.%{pid}
License:        GNU General Public License (GPL)
Group:          System/Monitoring
URL:            http://www.%{name}.org/
Source0:        %{name}-%{version}.tar.bz2
Source1:        rc%{name}
Source2:        %{name}.quick-start.txt
Source3:        %{name}-httpd.conf
Source6:        %{name}.logrotate
Patch1:         %{name}-2.9-neb_deregister_module_callbacks.patch
Patch2:         %{name}-2.9-sehandlers.end_time.patch
Patch3:         %{name}.avail.host_name.patch
Patch4:         %{name}.sample-config.email-admin-localhost.patch
Patch6:         %{name}.p1.pl-location.patch
Patch20:        %{name}-2.12-%{name}QL.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         %insserv_prereq %fillup_prereq coreutils /usr/sbin/useradd /usr/sbin/groupadd

BuildRequires:  audit krb5 libgssapi
BuildRequires:  apache2-devel freetype2-devel gd-devel iputils
BuildRequires:  libjpeg-devel libpng-devel mailx openssl-devel
BuildRequires:  pcre-devel perl traceroute

%if 0%{?suse_version} < 1010
BuildRequires:  libapr0 XFree86-devel XFree86-libs
%else
BuildRequires:  libapr-util1-devel xorg-x11-devel
%endif

Requires:       %{name}-plugins


#----------------------------------------------------------------------
%description
#----------------------------------------------------------------------
The Nagios Network Monitor

patched for use with nagiosQL :)

  Authors: Ethan Galstad <%{name}@%{name}.org>

----------------------------------------------------------------------

#----------------------------------------------------------------------
%package www
#----------------------------------------------------------------------
Group:          System/Monitoring
Summary:        Nagios Network Monitor
PreReq:         http_daemon
Requires:	%{name} = %{version}
Requires:	gd

#----------------------------------------------------------------------
%description www
#----------------------------------------------------------------------
Nagios Network Monitor

patched for use with nagiosQL :)

  Authors: Ethan Galstad <%{name}@%{name}.org>

----------------------------------------------------------------------

#----------------------------------------------------------------------
%prep
#----------------------------------------------------------------------
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && %{__rm} -rf $RPM_BUILD_ROOT
%setup -n %{name}-%{version}
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch6 -p1
%patch20 -p1

#----------------------------------------------------------------------
%build
#----------------------------------------------------------------------
%{?suse_update_config:%{suse_update_config}}
#aclocal
#automake
autoconf
CFLAGS="$RPM_OPT_FLAGS" \
CXXFLAGS="$RPM_OPT_FLAGS" \
./configure \
	--with-cgiurl=/%{name}/cgi-bin \
	--with-htmurl=/%{name} \
	--with-lockfile=%{nslockfile} \
	--with-nagios-user=%{nsusr} \
	--with-nagios-grp=%{nsgrp} \
	--with-command-user=%{cmdusr} \
	--with-command-group=%{cmdgrp} \
	--prefix=%{_prefix} \
	--exec-prefix=%{_prefix}/sbin \
	--bindir=%{_prefix}/sbin \
	--sbindir=%{_prefix}/lib/%{name}/cgi \
	--libexecdir=%{_prefix}/lib/%{name}/plugins \
	--datadir=%{_prefix}/share/%{name} \
	--sysconfdir=%{_sysconfdir}/%{name} \
        --with-init-dir=%{_sysconfdir}/init.d \
	--localstatedir=/var/lib/%{name} \
	--with-gd-inc=/usr/include/gd \
	--enable-embedded-perl \
	--enable-event-broker \
	--with-nagiosQL \
	--with-perlcache 

%{__sed} -i 's#@p1pldir@#%{_prefix}/lib/%{name}#g' Makefile include/locations.h sample-config/%{name}.cfg

%{__make} all %{?jobs:-j%jobs}

%{__sed} -i~ -e '
s@/var/lib/%{name}/rw/@/var/spool/%{name}/@
s@/var/lib/%{name}/%{name}.log@/var/log/%{name}/%{name}.log@
s@/var/lib/%{name}/archives@/var/log/%{name}/archives@
s@^%{name}_user=daemon$@%{name}_user=%{nsusr}@
s@^%{name}_group=%{name}$@%{name}_group=%{nsgrp}@
' sample-config/%{name}.cfg
diff -u sample-config/%{name}.cfg~ sample-config/%{name}.cfg || :

cd contrib
%{__make} %{?jobs:-j%jobs}
cd ..

#----------------------------------------------------------------------
%install
#----------------------------------------------------------------------
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}/var/spool/%{name}
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}/var/log/%{name}
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}/var/log/%{name}/archives
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_prefix}/include/%{name}
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/init.d
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{apache2_sysconfdir}/conf.d/
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{nslockfile_dir}
%{__cp} -a %{S:2} quick-start.txt
chmod 644 quick-start.txt
touch ${RPM_BUILD_ROOT}%{nslockfile}
%{__make} DESTDIR=$RPM_BUILD_ROOT INSTALL_OPTS="" COMMAND_OPTS="" INIT_OPTS= STRIP=: install
%{__make} DESTDIR=$RPM_BUILD_ROOT INSTALL_OPTS="-o %{cmdusr} -g %{nsusr}" COMMAND_OPTS="" NAGIOSQL_OPTS="" INIT_OPTS= CGICFGDIR=%{_sysconfdir}/%{name} install-config
for i in $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/*-sample ; do
  %{__mv} $i ${i%%-sample}
done
#cp -vf sample-config/template-object/minimal.cfg \
#       $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/minimal.cfg-sample
#chown %{cmdusr}:%{nsgrp} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/minimal.cfg-sample
# devel
%{__install} -m 0644 include/locations.h ${RPM_BUILD_ROOT}%{_prefix}/include/%{name}
#
cd contrib
%{__make} DESTDIR=$RPM_BUILD_ROOT INSTALL=install CGIDIR=%{_prefix}/lib/%{name}/cgi INSTALL_OPTS= install
cd ..
%{__install} -d -m 755 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/plugins
# install SuSE specials 
%{__cp} %{SOURCE3} $RPM_BUILD_ROOT/%{apache2_sysconfdir}/conf.d/%{name}.conf
#install -m 744 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/init.d/%{name}
%{__sed} "s@^NAGIOS_PID=.*@NAGIOS_PID=%{nslockfile}@" %{SOURCE1} > $RPM_BUILD_ROOT/etc/init.d/%{name}
%{__ln_s} -f ../..%{_sysconfdir}/init.d/%{name} $RPM_BUILD_ROOT/usr/sbin/rc%{name}
%{__install} -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/%{name}

# move files not needed by nagiosQL
%{__install} -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/sample
%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{commands,localhost}.cfg  $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/sample/

#----------------------------------------------------------------------
%pre
#----------------------------------------------------------------------
#echo "PARAM_pre: "$1
# on `rpm -ivh` PARAM is 1
# on `rpm -Uvh` PARAM is 2
if [ "$1" = "1" ]; then
  #/usr/sbin/groupadd -r %{name} 2> /dev/null || :
  if [ -z  "`%__grep "%{nsgrp}:"/etc/group 2>/dev/null`" ]; then
    %{_sbindir}/groupadd -r %{nsgrp}
  fi
  #/usr/sbin/useradd  -r -o -g %{name} -s /bin/false -c "User for Nagios" -d /var/lib/%{name} %{name} 2> /dev/null || :
  if [ -z "`%__grep "^%{nsusr}" /etc/passwd 2>/dev/null`" ]; then 
    %{_sbindir}/useradd -r -o -g %{nsusr} -s /bin/false -c "User for Nagios" -d /var/lib/%{name} %{nsusr}
  fi
fi

#----------------------------------------------------------------------
%post
#----------------------------------------------------------------------
%{fillup_and_insserv nagios}
# Update ?
if [ ${FIRST_ARG:-0} -gt 1 ]; then
 if [ -f %{_sysconfdir}/%{name}/%{name}.cfg ]; then 
  if ! %{__grep} -q lock_file=%{nslockfile} %{_sysconfdir}/%{name}/%{name}.cfg ; then
   echo "updating pid lock_file= to %{nslockfile} in %{_sysconfdir}/%{name}/%{name}.cfg" 
   %{__sed} -i "s@^lock_file=.*@lock_file=%{nslockfile}@" %{_sysconfdir}/%{name}/%{name}.cfg 
  fi
 fi
fi

#----------------------------------------------------------------------
%preun
#----------------------------------------------------------------------
%stop_on_removal nagios

#----------------------------------------------------------------------
%postun
#----------------------------------------------------------------------
if test -f %{nslockfile}
then
	%{__chown} -v %{name} %{nslockfile}
fi
%restart_on_update %{name}
%{insserv_cleanup}

#----------------------------------------------------------------------
%clean
#----------------------------------------------------------------------
[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && %{__rm} -rf $RPM_BUILD_ROOT

#----------------------------------------------------------------------
%files
#----------------------------------------------------------------------
%defattr(-,root,root,-)
%doc Changelog LICENSE README* UPGRADING
%doc quick-start.txt
%attr(0755,root,root) %config %{_sysconfdir}/init.d/%{name}
%config %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %attr(644,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/[!r]*.cfg
%config(noreplace) %attr(640,root,%{cmdgrp}) %{_sysconfdir}/%{name}/resource.cfg
%config(noreplace) %attr(644,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/sample/[!r]*.cfg
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/backup
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/backup/hosts
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/backup/services
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/hosts
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/sample
%dir %attr(755,%{cmdusr},%{nsgrp}) %{_sysconfdir}/%{name}/services
%dir %{_prefix}/lib/%{name}
%dir %{_prefix}/lib/%{name}/plugins
%dir %{_prefix}/include/%{name}
%dir %attr(755,%{nsusr},%{nsgrp}) /var/lib/%{name}
%dir %attr(755,%{nsusr},%{nsgrp}) /var/log/%{name}
%dir %attr(755,%{nsusr},%{nsgrp}) /var/log/%{name}/archives
%dir %attr(2775,%{nsusr},%{cmdgrp}) /var/spool/%{name}
%dir %attr(755,%{nsusr},root) /var/run/%{name}
%attr(0644,%{nsusr},%{nsgrp}) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/run/%{name}/%{name}.pid
%attr(0644,root,root) %{_prefix}/lib/%{name}/p1.pl
%attr(0770,root,%{cmdgrp}) %{_prefix}/sbin/%{name}
%attr(0770,root,%{cmdgrp}) %{_prefix}/sbin/%{name}tats
%{_prefix}/sbin/convertcfg
%{_prefix}/sbin/mini_epn
%{_prefix}/sbin/new_mini_epn
%{_prefix}/sbin/rcnagios
%{_prefix}/include/%{name}/locations.h

#----------------------------------------------------------------------
%files www
#----------------------------------------------------------------------
%defattr(-,root,root)
%config(noreplace) %{apache2_sysconfdir}/conf.d/%{name}.conf
%dir %{_prefix}/lib/%{name}/cgi
%dir %{_prefix}/share/%{name}
%{_prefix}/lib/%{name}/cgi/*
%{_prefix}/share/%{name}/*

#----------------------------------------------------------------------
%changelog -n nagios
#----------------------------------------------------------------------
* Mon Jan 12 2009 - rpm@scorpio-it.net - 2.12
- fixed some errors in spec
- some rpmlint fixes
* Thu Jul 17 2008 - rpm@scorpio-it.net - 2.12
- reworked nagiosQL.patch
- fixed ownership of resource.cfg
* Wed Jun 04 2008 - rpm@scorpio-it.net - 2.12 - 1
- upgrade to new version
* Thu Dec 06 2007 - rpm@scorpio-it.net - 2.10 - 2
- fixed permission on rcnagios
* Thu Nov 01 2007 - rpm@scorpio-it.net - 2.10 - 1
 - update to nagios version 2.10  
   * Added 'make install-webconf' command to install Apache web config file  
   * Sample config files are now installed without a -sample extension  
   * Fix for SIGTERMs being seen as SIGEXITs, non-logging of SIGTERMs/shutdowns  
   * Minor fix for notification timeout log messages  
   * Fix for not logging passive host check results  
   * Minor bug fixes in CGIs  
   * Fix for a segfault when processing passive host check results with empty output/perfdata  
   * Fix for incorrect latency calculation for passive service checks  
   * Bug fix with attempting to access an uninitalized mutex if external commands are disabled  
   * Fix for keeping service checks in the event queue when active service checks are disabled globally  
   * Fix for a potential cross site scripting vulnerability in the CGIs  
   * Program version is now displayed in CGIs  
 - removed obsolete FAQ patch in html/docs dir
 - fixed some errors in SPEC
* Mon Sep 24 2007 - rpm@scorpio-it.net - 2.9 - 3
- added some patches from openSuSE:Factory
* Mon Jun 04 2007 - rpm@scorpio-it.net - 2.9 - 2
- moved {commands,localhost}.cfg to sample dir
  not needed by nagiosQL
* Mon Apr 30 2007 - rpm@scorpio-it.net - 2.9 - 1
- upgrade to 2.9
* Sun Apr 29 2007 - rpm@scorpio-it.net - 2.5 - 5
- fixed some minor bugs
  directory permissions /etc/nagios
  missing dependency for nagiosQL
- removed nagiosQL, plugins from package
  was a bad idea :)
* Sat Apr 28 2007 - rpm@scorpio-it.net - 2.5 - 4
- added nagiosQL to this package
* Sat Apr 28 2007 - rpm@scorpio-it.net - 2.5 - 3
- added plugins to this package
* Sat Apr 28 2007 - rpm@scorpio-it.net - 2.5 - 2
- mods for use with nagiosQL-2.00-P00
  added nagios-2.5-nagiosQL.patch
* Sun Feb 18 2007 - rpm@scorpio-it.net - 2.5 - 1
- first run for SLES10
openSUSE Build Service is sponsored by