summaryrefslogtreecommitdiffstats
path: root/debian/rules
blob: 93ac7ba7fe49b4d369639eaa9a23b26c26acb541 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-

# Enable PIE, BINDNOW, and possible future flags.
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk


# TODO test if this can be dropped:
# Specify where dh_install will find the files that it needs to move:
DEB_DH_INSTALL_SOURCEDIR=debian/tmp
# Specify the destination of shadow's "make install"
# (This is only needed on The Hurd, where only one package is built. On
# the other arch, DEB_DESTDIR already points to debian/tmp)
DEB_DESTDIR=$(CURDIR)/debian/tmp

# Adds extra options when calling the configure script:
DEB_CONFIGURE_EXTRA_FLAGS := --disable-shared \
	--without-libcrack \
	--mandir=/usr/share/man \
	--with-libpam \
	--enable-shadowgrp \
	--enable-man \
	--disable-account-tools-setuid \
	--with-group-name-max-length=32 \
	--without-acl \
	--without-attr \
	--without-su \
	--without-tcb \
	 SHELL=/bin/sh

# Set the default editor for vipw/vigr
CFLAGS += -DDEFAULT_EDITOR="\"sensible-editor\""

%:
	dh $@

override_dh_auto_configure:
	cp debian/HOME_MODE.xml man/login.defs.d/HOME_MODE.xml
	dh_auto_configure -- $(DEB_CONFIGURE_EXTRA_FLAGS)

override_dh_install-arch:
ifneq ($(DEB_HOST_ARCH_OS),linux)
	sed -i 's/session    optional   pam_keyinit.so/# Linux only # session    optional   pam_keyinit.so/' debian/login.pam
endif
	dh_install -a
ifeq ($(DEB_HOST_ARCH_OS),hurd)
	# /bin/login is provided by the hurd package.
	rm -f debian/login/bin/login
endif

override_dh_installpam:
	# Distribute the pam.d files; unless for the commands with disabled PAM
	# support
	dh_installpam -p login
	dh_installpam -p passwd --name=passwd
	dh_installpam -p passwd --name=chfn
	dh_installpam -p passwd --name=chsh
	dh_installpam -p passwd --name=chpasswd
	dh_installpam -p passwd --name=newusers

override_dh_builddeb-arch:
	# uidmap
	chmod u+s debian/uidmap/usr/bin/newuidmap
	chmod u+s debian/uidmap/usr/bin/newgidmap
	# login
	# No real need for login to be setuid root
	# chmod u+s debian/login/bin/login
	chmod u+s debian/login/usr/bin/newgrp
	# passwd
	chmod u+s debian/passwd/usr/bin/chfn
	chmod u+s debian/passwd/usr/bin/chsh
	chmod u+s debian/passwd/usr/bin/gpasswd
	chmod u+s debian/passwd/usr/bin/passwd
	chgrp shadow debian/passwd/usr/bin/chage
	chgrp shadow debian/passwd/usr/bin/expiry
	chmod g+s debian/passwd/usr/bin/chage
	chmod g+s debian/passwd/usr/bin/expiry
	dh_builddeb -a

override_dh_auto_clean:
	sed -i 's/# Linux only # //' debian/login.pam
	dh_auto_clean

override_dh_clean:
	dh_clean ./man/login.defs.d/HOME_MODE.xml