#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

VER=4

DEBIAN=$(CURDIR)/debian

RT = request-tracker$(VER)
CLIENTS = rt$(VER)-clients

RT_PKG = $(DEBIAN)/$(RT)
CLIENTS_PKG = $(DEBIAN)/$(CLIENTS)

RT_BUGDIR = $(RT_PKG)/usr/share/bug/$(RT)
CLIENTS_BUGDIR = $(CLIENTS_PKG)/usr/share/bug/$(CLIENTS)
TPSRC=third-party-source/devel/third-party

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp

configure: build-stamp
build-stamp: configure
	dh_testdir

	# Update translations
	debconf-updatepo

	# Keep aside automatically generated files shipped in the upstream tarball
	mkdir bak
	find . -name '*.in' -print | egrep -v '\.pc|\.\/debian' | sed -e 's/\.in$$//' | while read f; do mkdir -p bak/`dirname $$f`; mv -v $$f bak/$$f; done
	test -d $(TPSRC)

	dh_autoreconf

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	# The test suite needs a different configuration in place
	./configure \
	  --with-my-user-group \
	  --enable-layout=inplace \
	  --with-db-type=SQLite \
	  --enable-externalauth \
	  --with-s3 \
	  --with-dropbox \
	  --enable-developer

	-$(MAKE) testdeps
	mkdir -p var
	RT_TEST_PARALLEL_NUM=3 http_proxy= $(MAKE) test-parallel
	rm -rf var
endif

	# --enable-gpg and --enable-smime disabled for #654697
	# still usable when manually configured
	./configure \
	  --enable-layout=Debian \
	  --enable-graphviz \
	  --enable-gd \
	  --with-rt-group=root \
	  --with-web-user=www-data \
	  --with-web-group=www-data \
	  --with-web-handler=standalone,fastcgi,modperl2 \
	  --with-libs-group=root \
	  --with-db-type=Pg \
	  --with-db-dba=postgres \
	  --enable-externalauth \
	  --with-s3 \
	  --with-dropbox \

	-$(MAKE) testdeps
	mkdir man
	perl debian/scripts/fix-whatis < debian/whatis

	PERL5LIB=lib devel/tools/rt-static-docs --to html-docs

	touch build-stamp

clean:
	dh_testdir
	dh_testroot

	$(RM) -r man
	# Restore shipped generated files
	-find bak -type f -print | sed -e 's/^bak\///' | while read f; do mv bak/$$f $$f; done
	-rm -rf bak
	rm -rf html-docs
	rm -f config.status config.log config.pld bak t/tmp/ports t/data/gnupg/keyrings/random_seed
	dh_autoreconf_clean
	dh_clean build-stamp

install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	$(MAKE) install DESTDIR=$(RT_PKG)
	rm -rf $(RT_PKG)/usr/share/$(RT)/lib/t/
	rm -rf $(RT_PKG)/usr/bin/mason_handler.svc
	rm -rf $(RT_PKG)/usr/sbin/rt-test-dependencies
	rm -rf $(RT_PKG)/usr/share/$(RT)/html/NoAuth/RichText/FCKeditor/license.txt
	# We will install a symlink to the separately-packaged javascript
	# libraries instead
	# (leave below as example as there'll be different ones to add back)
	#rm -rf $(RT_PKG)/usr/share/$(RT)/html/NoAuth/js/prototype
	# We will install symlinks to the fonts provided by the fonts-noto
	# and fonts-droid-fallback packages
	rm -rf $(RT_PKG)/usr/share/$(RT)/fonts

	for x in rt-server rt-server.fcgi standalone_httpd; do \
	  mv $(RT_PKG)/usr/sbin/$$x $(RT_PKG)/usr/share/$(RT)/libexec/; \
	done
	dh_install
		
test:
	perl debian/scripts/check-deps

# Build architecture-dependent files here.
binary-arch: build install
# We have nothing to do by default.

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_usrlocal
	dh_installchangelogs
	dh_installdocs
	dh_installexamples sbin/standalone_httpd
	dh_installman man/*
	dh_installdebconf
	dh_installlogcheck
	cd $(RT_PKG) && perl $(DEBIAN)/scripts/move-alts $(VER) \
	    $(DEBIAN)/alts $(DEBIAN)/$(CLIENTS).alts
	dh_movefiles --sourcedir=debian/$(RT)
	dh_link
	dh_fixperms
	# Remove any leftover .in files
	find $(RT_PKG)/usr/share/$(RT)/lib -type f -name '*.in' -print0 | xargs -0 --no-run-if-empty rm
	rm -f $(RT_PKG)/usr/share/$(RT)/etc/upgrade/*.in
	
	# Remove a test file
	rm -f .prove

	# This is generated by the maintainer scripts
	$(RM) $(RT_PKG)/usr/share/$(RT)/etc/RT_SiteConfig.pm

	install -m 644 debian/scripts/siteconfig.template $(RT_PKG)/usr/share/$(RT)/debian/
	install -m 644 debian/scripts/dbconfig.template $(RT_PKG)/usr/share/$(RT)/debian/
	install -m 755 debian/scripts/write-siteconfig $(RT_PKG)/usr/share/$(RT)/debian/

	install -m 644 debian/lintian-overrides $(RT_PKG)/usr/share/lintian/overrides/$(RT)

	# dh_link already made the pgsql and sqlite links
	install -m 755 debian/scripts/dbconfig-install $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/install/mysql
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.4 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.4
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.6-mysql $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.6
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.6 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/pgsql/4.0.6
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.10 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.10
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.12 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.12
	# No sqlite upgrade file provided for this
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.12-2-mysql $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.12-2
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.12-2-pgsql $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/pgsql/4.0.12-2
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.19-mysql $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.0.19
	install -m 755 debian/scripts/dbconfig-upgrade-4.0.19 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/pgsql/4.0.19
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.3 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.3
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.4 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.4
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.6 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.6
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.7 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.7
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.10 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.10
	install -m 755 debian/scripts/dbconfig-upgrade-4.2.11 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.2.11
	install -m 755 debian/scripts/dbconfig-upgrade-4.4.1 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.4.1
	install -m 755 debian/scripts/dbconfig-upgrade-4.4.2 $(RT_PKG)/usr/share/dbconfig-common/scripts/$(RT)/upgrade/mysql/4.4.2

	chmod 755 $(RT_PKG)/usr/share/bug/$(RT)/script

	install -d $(RT_PKG)/var/lib/$(RT)/data
	find $(RT_PKG)/var/cache/$(RT)/ -type d -print0 | xargs --null chown www-data:root
	find $(RT_PKG)/var/lib/$(RT)/ -type d -print0 | xargs --null chown www-data:root
	find $(RT_PKG)/var/cache/$(RT)/ -type d -print0 | xargs --null chmod 2750
	find $(RT_PKG)/var/lib/$(RT)/ -type d -print0 | xargs --null chmod 2750

	chown www-data:www-data $(RT_PKG)/var/log/$(RT)/
	# special perms for gpg
	install -d $(RT_PKG)/var/lib/$(RT)/data/gpg
	chown www-data:www-data $(RT_PKG)/var/lib/$(RT)/data/gpg
	chmod 700 $(RT_PKG)/var/lib/$(RT)/data/gpg

	chmod 2755 $(RT_PKG)/var/log/$(RT)/
	dh_compress
	dh_perl
	# NB - we don't enable this by default, in common with the init script
	#dh_systemd_enable
	dh_installinit
	dh_systemd_start
	dh_usrlocal
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install test