File check_mk.spec of Package check_mk

#
# spec file for package nagios-check_mk  
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

Name:           check_mk
Summary:        Nagios Addon check_mk
Version:        1.1.10p3
Release:        1
Url:            http://mathias-kettner.de/checkmk_index.html
License:        GPL v2 or later
Group:          System/Monitoring
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildArch:      noarch
PreReq:         coreutils
PreReq:         sed
PreReq:         /bin/logger
Requires:       nagios apache2 apache2-mod_python
#Source0:        %{realname}-%{version}.tar.bz2
Source0:        check_mk-%{version}.tar.gz
#Source1:        check_mk_setup.conf
Source2:        check_mk-apache2.conf 
Source3:        defaults

%define         nnmmsg logger -t %{name}/rpm
%define         nsusr nagios
%define         nsgrp nagios
%define         cmdgrp nagcmd

%description
Check_mk adopts a new a approach for collecting data
from operating systems and network components. It
obsoletes NRPE, check_by_ssh, NSClient and
check_snmp. It has many benefits, the most important
of which are:

* Significant reduction of CPU usage on the Nagios
* host.
* Automatic inventory of items to be checked on
* hosts.

http://mathias-kettner.de/check_mk.html

%package agent
Summary:    Agent for check_mk
Group:      System/Monitoring
Requires:   xinetd

%description agent
Check_mk adopts a new a approach for collecting data
from operating systems and network components. It
obsoletes NRPE, check_by_ssh, NSClient and
check_snmp. It has many benefits, the most important
of which are:

* Significant reduction of CPU usage on the Nagios
* host.
* Automatic inventory of items to be checked on
* hosts.


%prep
%setup -q -n %{name}-%{version}

%build


%install

#454        mkdir -p $DESTDIR$modulesdir &&
#455        create_defaults > $DESTDIR$modulesdir/defaults &&

mkdir -p %buildroot/usr/share/check_mk/checks
tar xzf checks.tar.gz -C %buildroot/usr/share/check_mk/checks

mkdir -p %buildroot/usr/share/nagios
tar xzf htdocs.tar.gz -C %buildroot/usr/share/nagios
for php in %buildroot/usr/share/nagios/*php; do
 sed -ri 's@\$vardir *= *"(.*)"@$vardir="'"/var/lib/check_mk"'"@' $php
done

mkdir -p %buildroot/usr/share/check_mk/web
tar xzf web.tar.gz -C %buildroot/usr/share/check_mk/web

mkdir -p %buildroot/usr/share/pnp/templates
tar xzf pnp-templates.tar.gz -C %buildroot/usr/share/pnp/templates

mkdir -p %buildroot/usr/share/check_mk/modules
rm -f %buildroot/usr/share/check_mk/modules/check_mk{,_admin}
tar xzf modules.tar.gz -C %buildroot/usr/share/check_mk/modules

mkdir -p %buildroot/%_docdir/check_mk
tar xzf doc.tar.gz -C %buildroot/%_docdir/check_mk


mkdir -p %buildroot/%_docdir/check_mk/checks
tar xzf checkman.tar.gz -C %buildroot/%_docdir/check_mk/checks

if [ -f mibs.tar.gz ] ; then
    mkdir -p %buildroot/usr/share/snmp/mibs
    tar xzf mibs.tar.gz -C %buildroot/usr/share/snmp/mibs
fi

mkdir -p %buildroot/usr/lib/check_mk/agents
tar xzf agents.tar.gz -C %buildroot/usr/lib/check_mk/agents
for agent in %buildroot/usr/lib/check_mk/agents/*; do
 sed -ri 's@^export MK_LIBDIR="(.*)"@export MK_LIBDIR="'"/usr/lib/check_mk/agents"'"@' $agent
 sed -ri 's@^export MK_CONFDIR="(.*)"@export MK_CONFDIR="'"/etc/check_mk"'"@' $agent
done

mkdir -p %buildroot/usr/bin
cp %buildroot/usr/lib/check_mk/agents/check_mk_agent.linux %buildroot/usr/bin/check_mk_agent
mkdir -p %buildroot/etc/xinetd.d
cp %buildroot/usr/lib/check_mk/agents/xinetd.conf %buildroot/etc/xinetd.d/check_mk-agent

rm -rf %buildroot/usr/lib/check_mk/agents



mkdir -p %buildroot/var/lib/check_mk/{autochecks,counter,precompiled,cache,logwatch}

mkdir -p %buildroot/etc/check_mk/conf.d
tar xzf conf.tar.gz -C %buildroot/etc/check_mk/conf.d
if [ -e %buildroot/etc/check_mk/check_mk.cfg -a ! -e %buildroot/etc/check_mk/main.mk ] ; then
 mv -v %buildroot/etc/check_mk/check_mk.cfg %buildroot/etc/check_mk/main.mk
fi

for f in %buildroot/var/lib/check_mk/*.cfg %buildroot/etc/check_mk/conf.d/*.cfg ; do
 if [ -f "$f" ] ; then
  mv -v $f ${f%.cfg}.mk
 fi
done

if [ ! -f %buildroot/etc/check_mk/main.mk ] ; then
 tar xzf conf.tar.gz --to-stdout > %buildroot/etc/check_mk/main.mk
fi

echo 'All files in this directory that end with .mk will be read in after main.mk' > %buildroot/etc/check_mk/conf.d/README

if [ ! -d %buildroot/var/lib/nagios/pnp ] ; then
 mkdir -p %buildroot/var/lib/nagios/pnp
fi

mkdir -p %buildroot%_bindir
rm -f %buildroot%_bindir/check_mk
echo -e "#!/bin/sh\nexec python $buildroot/usr/share/%{name}/modules/check_mk.py "'"$@"' > %buildroot%_bindir/check_mk
sed -i "s#@BINDIR@#%_bindir#g" %buildroot%_docdir/%{name}/check_mk_templates.cfg
sed -i "s#@VARDIR@#/var/lib/check_mk#g" %buildroot%_docdir/%{name}/check_mk_templates.cfg
sed -i "s#@CGIURL@#/nagios/cgi-bin#g" %buildroot%_docdir/%{name}/check_mk_templates.cfg
sed -i "s#@CHECK_ICMP@#/usr/lib/nagios/plugins/check_icmp#g" %buildroot%_docdir/%{name}/check_mk_templates.cfg
sed -i "s#@NAGIOSURL@#/nagios#g" %buildroot%_docdir/%{name}/check_mk_templates.cfg


mkdir -p %buildroot/etc/nagios/objects
cp %buildroot/%_docdir/check_mk/check_mk_templates.cfg  %buildroot/etc/nagios/objects/check_mk_templates.cfg

sed -i "s#/usr/lib/nagios/plugins/check_icmp#/usr/lib/nagios/plugins/check_ping -w 3000.0,80% -c 5000.0,100% -p 1 -4 -H #g" %buildroot/etc/nagios/objects/check_mk_templates.cfg


mkdir -p %buildroot/etc/apache2/conf.d
%{__install} -m 0644 %{SOURCE2} %buildroot/etc/apache2/conf.d/check_mk.conf

%{__install} -m 0644 %{SOURCE3} %buildroot/usr/share/check_mk/modules/defaults
sed -i "s#VERSION#%{version}#g" %buildroot/usr/share/check_mk/modules/defaults

sed -i "s#NAGIOSUSER#%{nsusr}#g" %buildroot/usr/share/check_mk/modules/defaults
sed -i "s#WWWGRP#%{cmdgrp}#g" %buildroot/usr/share/check_mk/modules/defaults



%clean
rm -rf %buildroot

%pre
# Create user and group on the system if necessary
# default group: nagios
if
    getent group %{nsgrp} >/dev/null
then
    : OK group %{nsgrp} already present
else
    groupadd -r %{nsgrp} 2>/dev/null || :
    %{nnmmsg} "Added group %{nsgrp} for package %{name}"
fi
 # default group: nagcmd
if
    getent group %{cmdgrp} >/dev/null
then
    : OK group %{cmdgrp} already present
else
    groupadd -r %{cmdgrp} 2>/dev/null || :
    %{nnmmsg} "Added group %{cmdgrp} for package %{name}"
fi
# default user: nagios
if
    id %{nsusr} > /dev/null 2>&1
then
    : OK user %{nsusr} already present
else
    useradd  -r -o -g %{nsgrp} -s /bin/false -c "User for Nagios" -d /var/lib/%{nsusr} %{nsusr} 2> /dev/null || :
    %{nnmmsg} "Added user %{nsusr} for package %{name}"
fi

#%post

#%preun

#%postun

%files
%defattr(-,root,root)
%doc VERSION INSTALL COPYING ChangeLog AUTHORS
%dir /etc/check_mk
%dir /etc/check_mk/conf.d
%dir /usr/share/pnp/templates
%dir /etc/apache2
%dir /etc/apache2/conf.d
%dir /usr/share/nagios
%dir /usr/share/pnp
%dir /usr/share/check_mk
%dir /usr/share/check_mk/checks
%dir /usr/share/check_mk/modules
%dir /usr/share/check_mk/web
/usr/share/nagios/*
/usr/share/pnp/templates/*
%config %attr(0644,root,root) /etc/apache2/conf.d/check_mk.conf
%config /etc/check_mk/conf.d/README
%config /etc/check_mk/conf.d/main.mk-1.0.39
%attr(0644,%nsusr,%nsgrp) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/check_mk/main.mk
/etc/nagios
/etc/nagios/objects
%attr(0644,%nsusr,%nsgrp) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /etc/nagios/objects/check_mk_templates.cfg
%dir %attr(0744,%nsusr,%nsgrp) /var/lib/check_mk
%dir %attr(0744,%nsusr,%nsgrp) /var/lib/check_mk/autochecks
%dir %attr(0744,%nsusr,%nsgrp) /var/lib/check_mk/cache
%dir %attr(0744,%nsusr,%nsgrp) /var/lib/check_mk/precompiled
%dir %attr(0744,%nsusr,%nsgrp) /var/lib/check_mk/logwatch


%defattr(0755,root,root)
%_bindir/check_mk
/usr/share/check_mk/checks/*
/usr/share/check_mk/modules/*
/usr/share/check_mk/web/*
%attr(0644,root,root) /usr/share/check_mk/web/check_mk.css
%attr(0644,root,root) /usr/share/check_mk/modules/defaults


%defattr(-,root,root)
%dir %_docdir/check_mk/

%files agent
%defattr(-,root,root)
%config /etc/xinetd.d/check_mk-agent

%defattr(755,root,root)
%_bindir/check_mk_agent


%changelog

openSUSE Build Service is sponsored by