#!/usr/bin/make -f
# Debian rules file for xscreensaver, adapted by Larry Daffner from
# Sample debian.rules file - for GNU Hello (1.3).
# Copyright 1994,1995 by Ian Jackson.
# I hereby give you perpetual unlimited permission to copy,
# modify and relicense this file, provided that you do not remove
# my name from the file itself.  (I assert my moral right of
# paternity under the Copyright, Designs and Patents Act 1988.)
# This file may have to be extensively modified
# Modified by Jose Luis Rivas and Tormod Volden and others

# Includes hardening compile options
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# Add cpu time statistics to verbose output
export DEB_CFLAGS_MAINT_APPEND = -DLOG_CPU_TIME

%:
	dh $@ --without autoreconf

override_dh_auto_configure:
	# fix up Catalan translation file
	[ -f ca.po.orig ] || cp -p po/ca.po ca.po.orig
	iconv -f ISO8859-1 -t UTF-8 -o po/ca.po ca.po.orig
	# Generate POT file for translators
	cd po && intltool-update --verbose -p && cd ..

	# These are for some reason in the upstream tarball, preserve them
	[ -f driver/XScreenSaver_ad.h.upstream ] || \
	  [ ! -f driver/XScreenSaver_ad.h ] || \
	    mv driver/XScreenSaver_ad.h driver/XScreenSaver_ad.h.upstream
	[ -f driver/XScreenSaver_Xm_ad.h.upstream ] || \
	  [ ! -f driver/XScreenSaver_Xm_ad.h ] || \
	    mv driver/XScreenSaver_Xm_ad.h driver/XScreenSaver_Xm_ad.h.upstream
	# Configure for xscreensaver
	dh_auto_configure -- \
		--without-gl --with-pam --with-gtk --without-kerberos \
		--without-shadow \
		--with-hackdir=/usr/libexec/xscreensaver \
		--with-configdir=/usr/share/xscreensaver/config \
		--with-login-manager \
		--with-app-defaults=/etc/X11/app-defaults \
		--with-proc-interrupts
	cp driver/XScreenSaver.ad driver/XScreenSaver.ad-nogl
	# Configure for xscreensaver-gl
	dh_auto_configure -- \
		--with-gl --with-pam --with-gtk --without-kerberos \
		--without-shadow \
		--with-hackdir=/usr/libexec/xscreensaver \
		--with-configdir=/usr/share/xscreensaver/config \
		--with-login-manager \
		--with-app-defaults=/etc/X11/app-defaults \
		--with-proc-interrupts

override_dh_auto_clean:
	[ ! -f Makefile ] || $(MAKE) distclean
	[ ! -f driver/XScreenSaver_ad.h.upstream ] || \
	  mv driver/XScreenSaver_ad.h.upstream driver/XScreenSaver_ad.h
	[ ! -f driver/XScreenSaver_Xm_ad.h.upstream ] || \
	  mv driver/XScreenSaver_Xm_ad.h.upstream driver/XScreenSaver_Xm_ad.h
	# restore original non-UTF8 Catalan translation file
	[ ! -f ca.po.orig ] || mv ca.po.orig po/ca.po
	dh_auto_clean

override_dh_auto_install:
	ln -sf README NEWS
	dh_auto_install -- install_prefix=$(CURDIR)/debian/tmp \
		GTK_DATADIR=/usr/share KDEDIR=/usr \
		UPDATE_ICON_CACHE=:
	# Install .desktop files used by gnome-screensaver etc
	mkdir -p debian/tmp/usr/share/applications/screensavers
	cp debian/screensavers-desktop-files/*.desktop \
		debian/tmp/usr/share/applications/screensavers/
	for i in debian/tmp/usr/share/applications/screensavers/*; do \
		cat debian/screensavers-desktop.stub >> $${i}; done
	# Change man section from 6 or 6x to 1
	for i in xscreensaver-gl-visual \
		 xscreensaver-getimage \
		 xscreensaver-getimage-file \
		 xscreensaver-getimage-video \
		 xscreensaver-systemd \
		 xscreensaver-auth \
		 xscreensaver-gfx \
		 xscreensaver-text ; \
	    do \
	       mv debian/tmp/usr/share/man/man6/$${i}.6* \
	          debian/tmp/usr/share/man/man1/$${i}.1 ; \
	       sed -i '1s/6x*/1/' debian/tmp/usr/share/man/man1/$${i}.1 ; \
	    done
	debian/split-hacks.sh
	# Not built on kfreebsd and hurd
	[ -e debian/tmp/usr/libexec/xscreensaver/xscreensaver-systemd ] && { \
	  echo "usr/libexec/xscreensaver/xscreensaver-systemd" ; \
	  echo "usr/share/man/man1/xscreensaver-systemd.1" ; \
	} >> debian/xscreensaver.install || true
	# Install app-defaults to proper places
	mv debian/tmp/etc/X11/app-defaults/XScreenSaver \
		debian/xscreensaver-gl/etc/X11/app-defaults/XScreenSaver-gl
	install -D -m 644 driver/XScreenSaver.ad-nogl \
		debian/xscreensaver-data/etc/X11/app-defaults/XScreenSaver-nogl

override_dh_fixperms-arch:
	dh_fixperms
	chmod 4755 debian/xscreensaver/usr/libexec/xscreensaver/xscreensaver-auth
	chmod -x debian/xscreensaver/usr/share/xscreensaver/xscreensaver.desktop
	chmod -x debian/xscreensaver/usr/share/applications/xscreensaver-settings.desktop

override_dh_installsystemduser:
	dh_installsystemduser --no-enable