#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/autoreconf.mk

pkg = $(DEB_SOURCE_PACKAGE)

DEB_CONFIGURE_EXTRA_FLAGS := \
	--with-shadow --enable-fhs		\
	--enable-tcp-wrappers			\
	--enable-a2boot				\
	--enable-timelord --enable-overwrite	\
	--with-pkgconfdir=/etc/netatalk		\
	--enable-krb4-uam --enable-krbV-uam	\
	--with-cnid-dbd-txn			\
	--with-libgcrypt-dir			\
	--with-cracklib=/var/cache/cracklib/cracklib_dict	\
	--disable-srvloc --enable-zeroconf	\
	--enable-ddp				\
	--enable-debian

# Need to set this explicitly since we're building a -dbg package
DEB_DESTDIR = $(CURDIR)/debian/netatalk

# libgcrypt is GPL-compatible, but openssl supports randnum auth
ifneq (,$(findstring openssl,$(DEB_BUILD_OPTIONS)))
DEB_CONFIGURE_EXTRA_FLAGS += --with-ssl-dir --enable-pgp-uam
uamlist = uams_dhx2.so,uams_clrtxt.so,uams_dhx.so,uams_randnum.so
else
DEB_CONFIGURE_EXTRA_FLAGS += --without-ssl-dir
uamlist = uams_dhx2.so,uams_clrtxt.so
endif

# Check that we do not install anything linked with libssl in a GPL build
binary-post-install/$(pkg)::
	$(if $(findstring openssl,$(DEB_BUILD_OPTIONS)),,$(if $(shell objdump -x debian/netatalk/usr/lib/netatalk/* 2> /dev/null | sed -n '/NEEDED \+libssl\.so/p'),$(error OpenSSL dependencies found in GPL build!)))

# Re-install initscript with debhelper to add pre- and postinst routines
install/$(pkg)::
	mv $(DEB_DESTDIR)/etc/init.d/netatalk debian/netatalk.init

clean::
	rm -f debian/netatalk.init

# Rename files w/ manpage references to avoid namespace conflicts
#  * uniconv → netatalk-uniconv
#  * install netatalk-uniconv as system binary
bindir=debian/netatalk/usr/bin
man1dir=debian/netatalk/usr/share/man/man1
binary-post-install/$(pkg)::
	mv $(bindir)/uniconv $(bindir)/../sbin/netatalk-uniconv
	perl -p -e 's/(?<!Title: )(uniconv)\\b/netatalk(?(1)\\-)$$2/g;s/(TH "UNICONV" )"1"/$$1"8"/' <$(man1dir)/uniconv.1 >$(man1dir)/../man8/netatalk-uniconv.8
	rm $(man1dir)/uniconv.1

# Adjust PAM modules and UAMs loaded by default, depending on ssl support
binary-post-install/$(pkg)::
	perl -i -pe 's/^#AFPD_UAMLIST=.*/#AFPD_UAMLIST="-U $(uamlist)"/' debian/netatalk/etc/default/netatalk
	perl -i -pe 's/^AFPD_UAMLIST=.*/AFPD_UAMLIST="-U $(uamlist)"/' debian/netatalk/etc/init.d/netatalk

# Remove unnecessary files
binary-post-install/$(pkg)::
	rm debian/netatalk/usr/bin/netatalk-config
	rm debian/netatalk/usr/lib/libatalk.*
	rm debian/netatalk/usr/share/man/man1/afppasswd.1
	rm -r debian/netatalk/usr/include
	rm -r debian/netatalk/usr/share/aclocal
	rm -r debian/netatalk/var
	rm debian/netatalk/usr/lib/netatalk/*.la

# Needed (always/often/seldom) at runtime
#  * lsb-base needed by init scripts
#  * netbase needed by network-facing daemons
#  * libpam-modules, libpam-cracklib, cracklib-runtime and avahi-daemon needed by daemons afpd and papd
#  * lsof and procps needed by script macusers
#  * rc needed by script acleandir.rc
#  * db-util needed by script cnid_maint
#  * texlive-base-bin (dvips) and groff (roff2ps) needed by script etc2ps
#  * quota needed by daemon afpd
CDBS_DEPENDS_$(pkg) = lsb-base, netbase, libpam-modules
CDBS_RECOMMENDS_$(pkg) = lsof, rc, db-util, procps, cracklib-runtime, libpam-cracklib, avahi-daemon
CDBS_SUGGESTS_$(pkg) = texlive-base-bin, groff, quota
