#!/usr/bin/make -f
#
# MailScanners debian/rules file
#
# created by Matthias Klose <doko@debian.org>
# modified by Simon Walter <simon.walter@hp-factory.de>

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

p = mailscanner
d = debian/$(p)

DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)

build: build-stamp

build-stamp: 
	dh_testdir

	touch build-stamp

clean: 
	dh_testdir
	dh_testroot

	rm -rf bin/tnef*
	rm -rf ../$(shell basename $(CURDIR)).orig/bin/tnef*
	-find . ../$(shell basename $(CURDIR)).orig -name '.#*' | xargs rm -f
	-find . ../$(shell basename $(CURDIR)).orig -type d -empty| xargs rm -rf

	make -C debian/man clean

	dh_clean debian/ucffiles debian/postinst.ucf debian/postrm.ucf
# unnessasary see #467411
#	debconf-updatepo

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	: # tmp directories
	mkdir -p debian/tmp/
	mkdir -p debian/tmp/man/

	make -C debian/man

	pod2man --section=8 bin/upgrade_MailScanner_conf --center=MailScanner \
		> debian/tmp/man/upgrade_MailScanner_conf.8

	: # cleanup
	-find $(d) -name '*[Ss]olaris' | xargs rm -f
	-find $(d) -name CVS | xargs rm -rf
	-find ../ -name svn-commit.tmp | xargs rm -rf

	: # fix virus.scanners.conf
	sed -e 's,/opt/MailScanner/lib/,/etc/MailScanner/wrapper/,g' etc/virus.scanners.conf > debian/tmp/virus.scanners.conf

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs
	dh_installcron
	dh_installdebconf
	dh_installdocs
	dh_installexamples
	dh_installinit
	dh_installlogcheck
	dh_installman
	dh_install -X.old
	dh_compress
	dh_fixperms

	: # fix permissions
	-find $(d)/usr/share/MailScanner/reports -type f | xargs chmod -f a-x
	-find $(d)/usr/share/doc/mailscanner/examples -type f | xargs chmod -f a-x
	chmod a-x $(d)/usr/share/MailScanner/MailScanner/ConfigDefs.pl
	chmod a-x $(d)/usr/share/MailScanner/MailScanner/*.pm
	chmod a-x $(d)/usr/share/MailScanner/MailScanner.pm
	chmod a-x $(d)/etc/MailScanner/CustomConfig.pm
	chmod a-x $(d)/etc/MailScanner/*.conf*
	chmod a-x $(d)/etc/MailScanner/rules/*

	: # #464317 install links after fixing permission to avoid "chmod: cannot operate on dangling symlink"
	dh_link

	: # custom premissions
	chown -f -R mail:mail $(d)/var/lib/MailScanner
	chown -f -R mail:mail $(d)/var/spool/MailScanner
	chmod -f 750 $(d)/var/lib/MailScanner
	chmod -f -R 750 $(d)/var/spool/MailScanner

	: # helper scripts have to be executable
	chmod -f 755 $(d)/etc/MailScanner/autoupdate/*
	chmod -f 755 $(d)/etc/MailScanner/wrapper/*

	: # lintian overrides
	install -m 755 -d $(d)/usr/share/lintian/overrides
	install -m 644 debian/mailscanner.lintian.overrides $(d)/usr/share/lintian/overrides/mailscanner

	: # report files handled by ucf
	find $(d)/usr/share/MailScanner/reports -type f \
	  | sed 's,$(d)/usr/share/,/etc/,' | sed '/For all your IT requirements visit: http:\/\/www.transtec.co.uk/d' > debian/ucffiles

	dh_installdeb
	( \
	  echo 'if [ "$$1" = purge ] && [ -x /usr/bin/ucf ] ; then'; \
	  echo "    (echo Removing report files ... may take some time < /dev/tty >/dev/tty)"; \
	  for f in `cat debian/ucffiles`; do \
	    echo "    ucf --purge --debconf-ok $$f"; \
	  done; \
	  echo 'fi'; \
	) > debian/postrm.ucf

	( \
	  echo 'if [ "$$1" = "configure" ]; then'; \
	  for dir in $$(for f in $$(cat debian/ucffiles); do dirname "$$f" ; done | sort | uniq); do \
	    echo "    mkdir -p $$dir"; \
	  done; \
	  echo "    (echo Checking/installing report files ... < /dev/tty >/dev/tty)"; \
	  for f in `cat debian/ucffiles`; do \
	    f2=`echo $$f | sed s,/etc/MailScanner,/usr/share/MailScanner,`; \
	    echo "    ucf --debconf-ok $$f2 $$f"; \
	  done; \
	  echo 'fi'; \
	) > debian/postinst.ucf

	perl -pi -e '/#UCF#/ and do { open F, "debian/postinst.ucf"; local $$/ ; $$_ = <F> };' $(d)/DEBIAN/postinst
	perl -pi -e '/#UCF#/ and do { open F, "debian/postrm.ucf"; local $$/ ; $$_ = <F> };' $(d)/DEBIAN/postrm

#	dh_perl
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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

binary: binary-indep binary-arch

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