#!/usr/bin/make -f

pam_types = account auth session password
pam_krb5_auth_opts = use_authtok
pam_krb5_passwd_opts = use_authtok

DEB_AUTO_UPDATE_DEBIAN_CONTROL = 1
DEBATHENA_DIVERT_FILES_debathena-pam-config += \
	$(patsubst %,/etc/pam.d/common-%.debathena,$(pam_types)) \
	/etc/pam.d/gdm.debathena \
	/etc/pam.d/ssh.debathena \
	/etc/pam.d/login.debathena
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/rules/debathena-check-conffiles.mk
include /usr/share/cdbs/1/rules/debathena-divert.mk

common-build-indep:: $(patsubst %,debian/common-%.debathena,$(pam_types)) debian/gdm.debathena debian/login.debathena debian/ssh.debathena

debian/common-account.debathena: /usr/share/pam/common-account
	perl -0pe 's/^(account[ \t]+)required( ? ?)([ \t]+)(pam_unix\.so([ \t]+.*)?)\n/$$1sufficient$$3$$4\n$$1required$$2$$3pam_krb5.so\n/m or die' $< > $@

debian/common-auth.debathena: /usr/share/pam/common-auth
	perl -0pe 's/^(auth[ \t]+)required( ? ?)([ \t]+)(pam_unix\.so([ \t]+.*)?)\n/$$1sufficient$$3$$4\n$$1required$$2$$3pam_krb5.so use_first_pass\n/m or die' $< > $@

debian/common-session.debathena: /usr/share/pam/common-session
	perl -0pe 's/^(session[ \t]+)required([ \t]+)(pam_unix\.so([ \t]+.*)?)\n/$$1required$$2$$3\n$$1optional$$2pam_krb5.so\n$$1optional$$2pam_krb524.so\n$$1optional$$2pam_athena_locker.so\n$$1optional$$2pam_debathena_home_type.so\n/m or die' $< > $@

debian/common-password.debathena: /usr/share/pam/common-password
	perl -0pe 's/^(password[ \t]+)required( ? ?)([ \t]+)(pam_unix\.so([ \t]+.*)?)\n/$$1sufficient$$3$$4\n$$1required$$2$$3pam_krb5.so use_first_pass\n/m or die' $< > $@

debian/gdm.debathena: $(call debathena_check_conffiles,/etc/pam.d/gdm)
	perl -0pe 's/^(\@include common-account)/account\trequired\tpam_access.so\n$$1/m or die' $< > $@

debian/ssh.debathena: $(call debathena_check_conffiles,/etc/pam.d/ssh)
	perl -0pe 's/^\#[\t ]+(account[ \t]+required[ \t]+pam_access.so)/$$1/m or s/^(?=\@include[ \t]+common-account)/account    required     pam_access.so\n/m or die' $< > $@

debian/login.debathena: $(call debathena_check_conffiles,/etc/pam.d/login)
	perl -0pe 's/^\#[\t ]+(account[ \t]+required[ \t]+pam_access.so)/$$1/m or die' $< > $@

clean::
	rm -f $(patsubst %,debian/common-%.debathena,$(pam_types)) debian/gdm.debathena debian/login.debathena debian/ssh.debathena
