File ingraph.spec of Package inGraph

#
# spec file for package inGraph
#
# Copyright (c) 2012 mopp@gmx.net
#
# 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/
#

#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
  %define _fillupdir /var/adm/fillup-templates
%endif

Name:		ingraph
Summary:	NETWAYS inGraph Addon for Icinga
Version:	1.0.2
Release:	1
Url:		https://github.com/NETWAYS/ingraph
License:	GPL-3.0
Group:		System/Monitoring
Source:		%{name}-%{version}.tar.gz
Source1:	ingraph.sysconfig
Source2:	ingraph-collector.sysconfig
Source3:	create-mysql-db.sh
Source4:	INSTALL
Source5:	%{name}-rpmlintrc
BuildRoot:	%{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch:	noarch
%endif

#icinga-web >= 1.5.0 will work,but requires some additional patching
Requires:	icinga-web >= 1.6.0
Requires:	python >= 2.4.0
Requires:	python-SQLAlchemy >= 0.6.0
Requires:	python-mysql
Requires:	php5-curl
Requires:	php5-xmlrpc
Requires(pre):	%fillup_prereq
Requires(pre):	%insserv_prereq
BuildRequires:	fdupes
BuildRequires:	python-devel
BuildRequires:	python-setuptools

%define apacheuser wwwrun
%define apachegroup www
%define icingawebdir /usr/share/icinga-web
%define clearcache /usr/share/icinga-web/bin/clearcache.sh

%description
Netways inGraph is a flexible, open source charting tool for Icinga and Nagios,
which collects performance data in a database and displays the results in a web
interface.

This package is optimized for Icinga-web and not the standalone version.

%prep
%setup -q
for file in $(find . -type f -name "*.py"); do
  sed -i "s|/usr/bin/env python|%{_bindir}/python|g" "$file"
done

%build

%install
# Install backend
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
# Install sysconfig templates
%{__mkdir_p} %{buildroot}%{_localstatedir}/adm/fillup-templates/
install -D -m 644 %{SOURCE1} %{buildroot}%{_fillupdir}/sysconfig.ingraph
install -D -m 644 %{SOURCE2} %{buildroot}%{_fillupdir}/sysconfig.ingraph-collector

# Install db creation scripts
%{__mkdir_p} %{buildroot}%{_defaultdocdir}/%{name}/examples/
install -D -m 755 %{SOURCE3} %{buildroot}%{_defaultdocdir}/%{name}/examples/

# Install inGraph documentation and sample modifications for icinga
install -D -m 644 AUTHORS LICENSE README TODO %{SOURCE4} %{buildroot}/%{_defaultdocdir}/%{name}
install -D -m 755 contrib/icinga/add_perfdata_processing_commands.sh %{buildroot}%{_defaultdocdir}/%{name}/examples/
install -D -m 755 contrib/icinga/enable_perfdata_processing.sh %{buildroot}%{_defaultdocdir}/%{name}/examples/
%{__mkdir_p} %{buildroot}%{_localstatedir}/lib/icinga/perfdata

# Install frontend for Icinga
%{__mkdir_p} %{buildroot}%{icingawebdir}/app/config
#Simulating an installed icinga version >= 1.6.n
cat << EOF > %{buildroot}%{icingawebdir}/app/config/icinga.xml
<setting name="version.major">1</setting>
<setting name="version.minor">6</setting>
EOF
cd icinga-web/
# To prevent copy and permission problems use the current user for installation.
# Permissions are corrected in the RPM
./setup-icinga-web.sh --install --prefix=%{buildroot}%{icingawebdir} --with-web-user=$(%{__id} -un) --with-web-group=$(%{__id} -gn)
rm %{buildroot}%{icingawebdir}/app/config/icinga.xml

%{__mkdir_p} %{buildroot}%{_sbindir} %{buildroot}%{_localstatedir}/log/ingraph
%{__ln_s} ../../%{_sysconfdir}/init.d/ingraph  "%{buildroot}%{_sbindir}/rcingraph"
%{__ln_s} ../../%{_sysconfdir}/init.d/ingraph-collector  "%{buildroot}%{_sbindir}/rcingraph-collector"

%fdupes %{buildroot}%{_prefix}

%pre
/usr/sbin/useradd -c 'inGraph User' -G icinga -s /sbin/nologin -r ingraph 2> /dev/null || :

%post
if [[ -x %{clearcache} ]]; then %{clearcache}; fi
%{fillup_and_insserv -n ingraph}
%{fillup_and_insserv -n ingraph-collector}

%preun
%stop_on_removal ingraph-collector
%stop_on_removal ingraph

%postun
if [[ -x %{clearcache} ]]; then %{clearcache}; fi
%restart_on_update ingraph-collector
%restart_on_update ingraph
%{insserv_cleanup}

%files 
%defattr(-,root,root)
%{_sbindir}/rcingraph
%{_sbindir}/rcingraph-collector
%doc AUTHORS LICENSE README TODO
%doc %{_defaultdocdir}/%{name}/INSTALL
%attr(755,root,root) %{_defaultdocdir}/%{name}/examples/
%attr(0755,%{apacheuser},%{apachegroup}) %{_datadir}/icinga-web/app/modules/inGraph/config/views/
%attr(0755,%{apacheuser},%{apachegroup}) %{_datadir}/icinga-web/app/modules/inGraph/config/templates/
%{_datadir}/icinga-web/
%{_fillupdir}/sysconfig.ingraph*
%dir %{_sysconfdir}/ingraph
%config(noreplace) %{_sysconfdir}/ingraph/ingraph-aggregates.conf
%config(noreplace) %{_sysconfdir}/ingraph/ingraph-database.conf
%config(noreplace) %{_sysconfdir}/ingraph/ingraph-xmlrpc.conf
%attr(0755,root,root) %{_sysconfdir}/init.d/ingraph
%attr(0755,root,root) %{_sysconfdir}/init.d/ingraph-collector
%attr(0755,root,root) %{_bindir}/check_ingraph
%attr(0755,root,root) %{_bindir}/ingraph-collectord
%attr(0755,root,root) %{_bindir}/ingraphd
%{python_sitelib}/
%attr(0755,root,root) %{python_sitelib}/ingraph/bin/check_ingraph.py
%attr(0755,root,root) %{python_sitelib}/ingraph/bin/ingraph_collectord.py
%attr(0755,root,root) %{python_sitelib}/ingraph/bin/ingraphd.py
%dir %attr(0775,icinga,icinga) %{_localstatedir}/lib/icinga
%dir %attr(0775,icinga,icinga) %{_localstatedir}/lib/icinga/perfdata
%dir %attr(0775,icinga,icinga) %{_localstatedir}/log/ingraph

%changelog

openSUSE Build Service is sponsored by