diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..777553f --- /dev/null +++ b/debian/rules @@ -0,0 +1,113 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +export DEB_CFLAGS_MAINT_APPEND = -Wall -DNDEBUG +export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed + +export DPKG_GENSYMBOLS_CHECK_LEVEL := 4 +export KNOT_SOFTHSM2_DSO = /usr/lib/softhsm/libsofthsm2.so +export KNOT_VERSION_FORMAT = release + +ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),riscv64)) + export DEB_LDFLAGS_MAINT_APPEND += -latomic +endif + +include /usr/share/dpkg/default.mk + +ifeq (maint,$(filter $(DEB_BUILD_OPTIONS),maint)) + FASTPARSER := --disable-fastparser +else + FASTPARSER := --enable-fastparser +endif + +# To make it build on sh4. +# See https://buildd.debian.org/status/fetch.php?pkg=knot&arch=sh4&ver=3.0.2-2&stamp=1607372581&raw=0 +ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),sh4)) + FASTPARSER := --disable-fastparser +else + FASTPARSER := --enable-fastparser +endif + +ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),hurd-i386)) + RECVMMSG:=--enable-recvmmsg=no +else + RECVMMSG:=--enable-recvmmsg=yes +endif + +ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH),amd64 i386)) + RUN_TEST := +else + RUN_TEST := -timeout --kill-after=5s 5m +endif + +# MAJOR.MINOR version part +BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/') + +PYBUILD = pybuild --dir python --dest-dir debian/python3-libknot + +%: + dh $@ \ + --exclude=.la --exclude=example.com.zone \ + --with python3 + +override_dh_auto_configure: + echo confirming architecture... + echo 'arch:' $(DEB_HOST_ARCH) + echo 'filtered arch:' $(filter $(DEB_HOST_ARCH),mips powerpc riscv64) + echo 'DEB_LDFLAGS_MAINT_APPEND:' $(DEB_LDFLAGS_MAINT_APPEND) + echo done + dh_auto_configure -- \ + --sysconfdir=/etc \ + --localstatedir=/var/lib \ + --libexecdir=/usr/lib/knot \ + --with-rundir=/run/knot \ + --with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/knot/modules-$(BASE_VERSION) \ + --with-storage=/var/lib/knot \ + --enable-systemd=auto \ + --enable-dnstap \ + --with-module-dnstap=shared \ + --with-module-geoip=shared \ + $(RECVMMSG) \ + $(FASTPARSER) \ + --disable-silent-rules + +override_dh_auto_configure-indep: + $(PYBUILD) --configure + +override_dh_auto_build-indep: + dh_auto_build -- info html + $(PYBUILD) --build + +override_dh_auto_install-arch: + dh_auto_install -- install + # rename knot.sample.conf to knot.conf + mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf + # Some workarounds where XDP is unavailable + @if [ -f "$(CURDIR)/debian/tmp/usr/sbin/kxdpgun" ]; then \ + echo "XDP enabled"; \ + else \ + echo "XDP disabled"; \ + touch $(CURDIR)/debian/tmp/usr/share/man/man8/kxdpgun.8; \ + printf '#!/bin/sh\n\necho "kxdpgun not available"\n' > $(CURDIR)/debian/tmp/usr/sbin/kxdpgun; \ + fi + +override_dh_auto_install-indep: + dh_auto_install -- install-info install-html + # rename knot.sample.conf to knot.conf + mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf + $(PYBUILD) --install + +override_dh_auto_test-indep: +override_dh_auto_test-arch: +ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) + $(RUN_TEST) dh_auto_test + $(MAKE) -C samples knot.sample.conf + debian/get_kaspdb samples/knot.sample.conf + [ $$(debian/get_user samples/knot.sample.conf) = knot ] +endif + +override_dh_missing: + dh_missing --fail-missing + +override_dh_installchangelogs: + dh_installchangelogs NEWS |