#!/usr/bin/make -f
# debian/rules makefile for icinga

# export DH_VERBOSE=1

# Enable hardening build flags
export DEB_BUILD_MAINT_OPTIONS=hardening=+all

export AUTOHEADER=true

b := $(shell pwd)/debian

export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)

CFLAGS += $(CPPFLAGS)

SHELL		= /bin/sh -e
CONFIGURE_OPTS	= --prefix=/usr \
				--mandir=/usr/share/man \
				--bindir=/usr/sbin \
				--sbindir=/usr/lib/cgi-bin/icinga \
				--datarootdir=/usr/share/icinga/htdocs \
				--sysconfdir=/etc/icinga \
				--infodir=/usr/share/info \
				--libexecdir=/usr/lib/nagios/plugins \
				--localstatedir=/var/lib/icinga \
				--with-state-dir=/var/cache/icinga \
				--enable-event-broker \
				--with-ido-sockfile=/var/lib/icinga/ido.sock \
				--enable-embedded-perl \
				--with-icinga-user=nagios \
				--with-icinga-group=nagios \
				--with-command-user=nagios \
				--with-command-group=nagios \
				--with-init-dir=/etc/init.d \
				--with-lockfile=/var/run/icinga/icinga.pid \
				--with-mail=/usr/bin/mail \
				--with-perlcache \
				--build=$(DEB_BUILD_GNU_TYPE) \
				--host=$(DEB_HOST_GNU_TYPE) \
				--with-htmurl=/icinga \
				--with-cgiurl=/cgi-bin/icinga \
				--with-p1-file-dir=/usr/lib/icinga \
				--enable-idoutils \
				--with-ido2db-lockfile=/var/run/icinga/ido2db.pid \
				--with-log-dir=/var/log/icinga \
				--libdir=/usr/lib/icinga \
				--with-temp-file=/var/cache/icinga/icinga.tmp \
				--with-mainurl=/cgi-bin/icinga/tac.cgi

%:
	dh $@ --with autoreconf

fix-configs: fix-configs-stamp
fix-configs-stamp:
	mkdir -p debian-configs
	sed -e '/Sample CGI/ s/\([0-9]\.[0-9]\.[0-9]\)//' \
	    -e '/Last Modified/,+1 d' \
	    sample-config/cgi.cfg > debian-configs/cgi.cfg
	sed -i -e 's/local-service/generic-service/' \
		module/idoutils/config/ido2db_check_proc.cfg
	sed -i -e 's#/usr/sbin/#/usr/lib/icinga/#' \
		module/idoutils/config/idoutils.cfg-sample
	sed -e '/Sample Main Config/ s/\([0-9]\.[0-9]\.[0-9]\)//' \
	    -e '/Last Modified/ d' \
	    sample-config/icinga.cfg > debian-configs/icinga.cfg
	sed -e '/SAMPLE COMMAND DEFINITIONS/ s/\([0-9]\.[0-9]\.[0-9]\)//' \
	   -e '/Last Modified/,+1 d' \
	   -e '/^#$$/ d' sample-config/template-object/commands.cfg > debian-configs/commands.cfg
	sed -i  \
		-e "s/^\(db_host=\).*/\1_DBC_DBSERVER_/" \
		-e "s/^\(db_servertype=\).*/\1_DBC_DBTYPE_/"  \
		-e "s/^\(db_port=\).*/\1_DBC_DBPORT_/" \
		-e "s/^\(db_name=\).*/\1_DBC_DBNAME_/" \
		-e "s/^\(db_user=\).*/\1_DBC_DBUSER_/" \
		-e "s/^\(db_pass=\).*/\1_DBC_DBPASS_/" module/idoutils/config/ido2db.cfg-sample

override_dh_auto_clean:
	dh_testdir
	dh_testroot
	if test -f Makefile; then make distclean; fi
	rm -f install-stamp configure-stamp build-stamp fix-configs-stamp
	rm -rf debian-configs
	-rm -f contrib/perlxsi.c
	find -type d -name autom4te.cache -print0 | xargs -0 -r rm -rf \;
	-rm -f platform.h auto-include.h
	-rm -f solaris/pkginfo
	-rm -f contrib/eventhandlers/submit_check_result contrib/eventhandlers/disable_active_service_checks
	-rm -f contrib/eventhandlers/disable_notifications contrib/eventhandlers/enable_active_service_checks
	-rm -f contrib/eventhandlers/enable_notifications
	-rm -f config.log
	find -type d -name build -print0 | xargs -0 -r rm -rf \;
	find \( -name config.sub -o -name config.guess \) -print0 | xargs -0 -r rm -f \;

override_dh_auto_configure:
	dh_testdir
	@echo "Doing $@"
	if test -f Makefile; then make clean; fi
	ln -sf /usr/share/misc/config.sub .
	ln -sf /usr/share/misc/config.guess .
	rm -f config.cache

	dh_auto_configure -- $(CONFIGURE_OPTS)

override_dh_auto_build:
	dh_testdir
	@echo "Doing $@"
	dh_auto_build -- all
	dh_auto_build --sourcedirectory=contrib

override_dh_auto_test:
	mkdir -p t/var/spool/checkresults

	dh_auto_test

	rm -rf t/var/spool

override_dh_auto_install: fix-configs-stamp
	@echo "Doing $@"
	dh_testdir
	dh_testroot
	dh_installdirs -a -i
	$(MAKE) install-unstripped DESTDIR=$b/tmp INSTALL_OPTS="" COMMAND_OPTS=""
	$(MAKE) install-idoutils DESTDIR=$b/icinga-idoutils INSTALL_OPTS="" COMMAND_OPTS=""
	rm -f $b/icinga-idoutils/etc/icinga/ido2db.cfg-sample
	#We have to rename the sample files
	#mv $b/icinga-idoutils/etc/icinga/ido2db.cfg-sample $b/icinga-idoutils/etc/icinga/ido2db.cfg
	mv $b/icinga-idoutils/etc/icinga/idomod.cfg-sample $b/icinga-idoutils/etc/icinga/idomod.cfg
	mkdir -p $b/icinga-idoutils/usr/share/doc/icinga-idoutils/examples
	mv $b/icinga-idoutils/etc/icinga/modules/idoutils.cfg-sample $b/icinga-idoutils/usr/share/doc/icinga-idoutils/examples
	mkdir -p $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/install \
	         $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/install
	cp module/idoutils/db/mysql/mysql.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/install/mysql
	cp module/idoutils/db/pgsql/pgsql.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/install/pgsql
	mkdir -p $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/
	mkdir -p $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.0.2-fix-object-relations.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.0.2-2
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.0.2.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.0.2-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.0.2-fix-object-relations.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.0.2-2
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.0.3.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.0.3-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.3.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.2.99-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.4.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.4.0
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.5.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.5.0-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.6.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.6.0-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.7.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.7.0-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.8.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.8.0-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.9.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.9.0-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.10.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.10.1-1
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.11.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.11.0
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.11.3.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.11.3-2
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.11.6.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.11.6
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.12.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.12.0
	cp module/idoutils/db/mysql/upgrade/mysql-upgrade-1.13.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/mysql/1.13.0
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.0.1.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.0.1-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.0.3.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.0.3-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.3.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.2.99-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.4.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.5.0-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.6.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.6.0-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.7.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.7.0-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.8.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.8.0-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.9.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.9.0-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.10.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.10.1-1
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.11.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.11.0
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.11.3.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.11.3-2
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.11.6.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.11.6
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.12.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.12.0
	cp module/idoutils/db/pgsql/upgrade/pgsql-upgrade-1.13.0.sql $b/icinga-idoutils/usr/share/dbconfig-common/data/icinga-idoutils/upgrade/pgsql/1.13.0

	# remove jquery from package
	rm -rf ${b}/tmp/usr/share/icinga/htdocs/js/jquery-*
	rm -rf ${b}/tmp/usr/share/icinga/htdocs/docs/js/jquery-*

override_dh_install-arch:
	dh_install -a

	mkdir -p ${b}/icinga-dbg/usr/bin/
	mv contrib/mini_epn ${b}/icinga-dbg/usr/bin/mini_epn_icinga

	# fix permissions
	chmod 644 ${b}/icinga-core/usr/lib/icinga/p1.pl

override_dh_install-indep:
	dh_install -i

	# set up /var/cache/icinga for access by www-data
	chgrp www-data ${b}/icinga-common/var/cache/icinga
	chmod g+s ${b}/icinga-common/var/cache/icinga
	chown root:www-data ${b}/icinga-common/var/lib/icinga/rw
	chmod 700 ${b}/icinga-common/var/lib/icinga/rw

	rm -f ${b}/icinga-common/usr/share/icinga/plugins/eventhandlers/*.in
	chmod +x ${b}/icinga-common/usr/share/icinga/plugins/eventhandlers/* \
	         ${b}/icinga-common/usr/share/icinga/plugins/eventhandlers/distributed-monitoring/* \
	         ${b}/icinga-common/usr/share/icinga/plugins/eventhandlers/redundancy-scenario1/*

	chmod 755 ${b}/icinga-common/var/lib/icinga
	# the real version is in -cgi
	rm -f ${b}/icinga-common/etc/icinga/cgi.cfg

	chmod 600 ${b}/icinga-common/etc/icinga/resource.cfg
	chmod +x ${b}/icinga-common/usr/share/icinga/plugins/eventhandlers/submit_check_result

override_dh_installexamples-arch:
	dh_installexamples -a

	chmod -x ${b}/icinga-idoutils/usr/share/doc/icinga-idoutils/examples/README
	rm -f ${b}/icinga-idoutils/usr/share/doc/icinga-idoutils/examples/scripts/*.in

override_dh_installexamples-indep:
	dh_installexamples -i

override_dh_installinit:
	dh_installinit --name icinga --error-handler=init_failed
	dh_installinit --name ido2db -n -picinga-idoutils

override_dh_link:
	rm -rf ${b}/icinga/usr/share/doc/
	rm -rf ${b}/icinga-core/usr/share/doc/

	dh_link

override_dh_strip:
	dh_strip --dbg-package=icinga-dbg

override_dh_compress:
	dh_compress -X.sql

overide_dh_makeshlibs:
	dh_makeshlibs -V

override_dh_fixperms-arch:
	dh_fixperms -a -X/var/cache/icinga

override_dh_fixperms-indep:
	dh_fixperms -i -Xicinga/resource.cfg

