diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..08c5269 --- /dev/null +++ b/debian/rules @@ -0,0 +1,101 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on debhelper verbose mode. +#export DH_VERBOSE=1 + +# Set some custom build flags +export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow,+pie +DEB_CFLAGS_MAINT_APPEND = -Wall +include /usr/share/dpkg/architecture.mk +-include /usr/share/dpkg/buildtools.mk + +CONFFLAGS = + +# Used e.g. for manpages (to build them in a reprodicible way) +include /usr/share/dpkg/pkg-info.mk +DEB_DATE := $(strip $(shell LC_ALL=C date -u +%F -d@$(SOURCE_DATE_EPOCH))) + +%: + dh $@ + +override_dh_auto_configure: + dh_auto_configure -- $(CONFFLAGS) \ + --libdir=/lib/$(DEB_HOST_MULTIARCH) \ + --sbindir=/sbin \ + --with-tmpfilesdir=/usr/lib/tmpfiles.d \ + --enable-libargon2 \ + --enable-shared \ + --enable-cryptsetup-reencrypt + +override_dh_auto_build: + dh_auto_build + + # build askpass and passdev keyscripts + $(CC) -o debian/askpass debian/askpass.c $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -pedantic + $(CC) -o debian/scripts/passdev debian/scripts/passdev.c $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -pedantic + + # generate manpages + sed 's/VERSION/$(DEB_VERSION)/;s/DATE/$(DEB_DATE)/' \ + debian/doc/variables.xml.in >debian/doc/variables.xml + xsltproc --nonet --xinclude -o debian/doc/ \ + /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \ + debian/doc/manpages.xml + pod2man --section=8 --center="Administrative commands" \ + --release="$(DEB_VERSION)" debian/scripts/luksformat \ + debian/doc/luksformat.8 + + # generate gettext po files (for luksformat) + $(MAKE) -C debian/scripts/po all luksformat.pot + +override_dh_auto_install: + dh_auto_install + # install gettext po files (for luksformat) + $(MAKE) -C debian/scripts/po DESTDIR=$(CURDIR)/debian/cryptsetup-bin install + +override_dh_install: + dh_install + # install apport files when building on Ubuntu +ifeq ($(shell dpkg-vendor --is Ubuntu && echo yes),yes) + mkdir -p $(CURDIR)/debian/cryptsetup/usr/share/apport/package-hooks + install -m 0644 debian/cryptsetup.apport \ + $(CURDIR)/debian/cryptsetup/usr/share/apport/package-hooks/cryptsetup.py +endif + if [ ! -f $(CURDIR)/debian/cryptsetup-initramfs.preinst.in ]; then \ + cp -fpT $(CURDIR)/debian/cryptsetup-initramfs.preinst $(CURDIR)/debian/cryptsetup-initramfs.preinst.in; \ + fi + while IFS= read -r x; do \ + if [ "$${x#CONF_HOOK_CONTENTS=}" = "$$x" ]; then \ + printf "%s\\n" "$$x"; \ + else \ + printf "CONF_HOOK_CONTENTS=\"\$$(cat <<EOF\\n"; \ + cat debian/initramfs/conf-hook || exit 1; \ + printf "EOF\\n)\""; \ + fi; \ + done <$(CURDIR)/debian/cryptsetup-initramfs.preinst.in >$(CURDIR)/debian/cryptsetup-initramfs.preinst + +override_dh_installinit: + dh_installinit -pcryptsetup --no-start --name=cryptdisks + dh_installinit -pcryptsetup --no-start --name=cryptdisks-early + +override_dh_auto_clean: + dh_auto_clean + $(MAKE) -C debian/scripts/po update clean + if [ -f $(CURDIR)/debian/cryptsetup-initramfs.preinst.in ]; then \ + mv -fT $(CURDIR)/debian/cryptsetup-initramfs.preinst.in $(CURDIR)/debian/cryptsetup-initramfs.preinst; \ + fi + +override_dh_bugfiles: + dh_bugfiles -A + +override_dh_fixperms-arch: + dh_fixperms + chmod 0755 debian/cryptsetup/lib/cryptsetup/checks/* + chmod 0755 debian/cryptsetup/lib/cryptsetup/scripts/decrypt_* + chmod 0755 debian/cryptsetup-udeb/lib/cryptsetup/checks/* + chmod 0755 debian/cryptsetup-udeb/lib/cryptsetup/scripts/decrypt_* + +override_dh_fixperms-indep: + dh_fixperms + chmod 0755 debian/cryptsetup-initramfs/usr/share/cryptsetup/initramfs/bin/* + chmod 0755 debian/cryptsetup-initramfs/usr/share/initramfs-tools/hooks/* + chmod 0755 debian/cryptsetup-initramfs/usr/share/initramfs-tools/scripts/*/* |