summaryrefslogtreecommitdiffstats
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules100
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/*/*