diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..757085c --- /dev/null +++ b/debian/rules @@ -0,0 +1,100 @@ +#!/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 $@ + +ifneq (,$(filter nodoc, $(DEB_BUILD_OPTIONS))) +CONFFLAGS += --disable-asciidoc +endif + +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 + +execute_after_dh_auto_build: + # build askpass and passdev keyscripts + $(CC) -o debian/askpass debian/askpass.c -Wall -Werror $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -pedantic + $(CC) -o debian/scripts/passdev debian/scripts/passdev.c -Wall -Werror $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -pedantic + + # build suspend binary + $(CC) -o debian/scripts/suspend/cryptsetup-suspend debian/scripts/suspend/cryptsetup-suspend.c \ + -Wall -Werror $(CFLAGS) $(CPPFLAGS) -I$(CURDIR)/lib $(LDFLAGS) -L$(CURDIR)/.libs -lcryptsetup -pedantic + +ifeq (,$(filter nodoc, $(DEB_BUILD_OPTIONS))) + # 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 +endif + + # generate gettext po files (for luksformat) + $(MAKE) -C debian/scripts/po all luksformat.pot + +execute_before_dh_auto_test: + # tests/fake_token_path.so is built without global $(CFLAGS) + @echo "blhc: ignore-line-regexp: gcc\\s.*\\s\\.\\./tests/[0-9A-Za-z_-]+\\.c\\s.*" + +execute_after_dh_auto_install: + # install gettext po files (for luksformat) + $(MAKE) -C debian/scripts/po DESTDIR=$(CURDIR)/debian/cryptsetup-bin install + +execute_after_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 + +override_dh_installinit: + dh_installinit -pcryptsetup --no-start --name=cryptdisks + dh_installinit -pcryptsetup --no-start --name=cryptdisks-early + +execute_after_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 + +execute_after_dh_fixperms-arch: + chmod 0755 debian/cryptsetup/lib/cryptsetup/checks/* + chmod 0755 debian/cryptsetup/lib/cryptsetup/scripts/decrypt_* + chmod 0755 debian/cryptsetup-suspend/lib/cryptsetup/scripts/suspend/cryptsetup-suspend-wrapper + chmod 0755 debian/cryptsetup-suspend/lib/systemd/system-shutdown/cryptsetup-suspend.shutdown +ifeq (,$(filter noudeb, $(DEB_BUILD_PROFILES))) + chmod 0755 debian/cryptsetup-udeb/lib/cryptsetup/checks/* + chmod 0755 debian/cryptsetup-udeb/lib/cryptsetup/scripts/decrypt_* +endif + +execute_after_dh_fixperms-indep: + 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/*/* |