diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..ef13edf --- /dev/null +++ b/debian/rules @@ -0,0 +1,71 @@ +#!/usr/bin/make -f + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +# riscv is an emulated architecture for now, and too slow to run expensive unit tests +# hppa's threading is absurdly slow (#981127) +SLOW_ARCHES = $(filter $(shell dpkg-architecture -qDEB_BUILD_ARCH),riscv64 hppa) +ifneq ($(SLOW_ARCHES),) + export COCKPIT_SKIP_SLOW_TESTS=1 +endif + +export deb_systemdsystemunitdir = $(shell pkgconf --variable=systemdsystemunitdir systemd | sed s,^/,,) +# pam.pc doesn't yet have a libdir on older releases +export deb_pamlibdir = $(shell { pkgconf --variable=libdir pam || echo /lib/$(DEB_HOST_MULTIARCH); } | sed s,^/,,) + +%: + dh $@ --buildsystem=autoconf --with=python3 + +override_dh_auto_configure: + dh_auto_configure -- \ + --with-cockpit-user=cockpit-ws \ + --with-cockpit-ws-instance-user=cockpit-wsinstance \ + --with-pamdir=/$(deb_pamlibdir)/security \ + --libexecdir=/usr/lib/cockpit $(CONFIG_OPTIONS) + +# HACK: Debian's pip breaks --prefix: https://bugs.debian.org/1035546 with +# default install layout +override_dh_auto_install: + DEB_PYTHON_INSTALL_LAYOUT=deb dh_auto_install + +# avoid trying to start cockpit-motd.service and cockpit-wsinstance-*.socket etc. +override_dh_installsystemd: + dh_installsystemd -p cockpit-ws cockpit.socket + +override_dh_install: + # Debian/Ubuntu PAM config + mkdir -p debian/tmp/etc/pam.d + install -p -m 644 tools/cockpit.debian.pam debian/tmp/etc/pam.d/cockpit + + # don't ship broken branding symlinks + for d in rhel fedora centos scientific opensuse; do rm -r debian/tmp/usr/share/cockpit/branding/$$d; done + dpkg-vendor --derives-from ubuntu || rm -r debian/tmp/usr/share/cockpit/branding/ubuntu + + # handled by package maintainer scripts + rm debian/tmp/etc/motd.d/cockpit debian/tmp/etc/issue.d/cockpit.issue + + # unpackaged modules + rm -r debian/tmp/usr/share/cockpit/kdump + rm debian/tmp/usr/share/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml + rm -r debian/tmp/usr/share/cockpit/selinux + rm debian/tmp/usr/share/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml + + dh_install -Xusr/src/debug + # we don't need this, it contains full build paths and breaks reproducibility + rm -r debian/tmp/usr/lib/python*/*-packages/*.dist-info + + make install-tests DESTDIR=debian/cockpit-tests + +execute_after_dh_install-indep: + # avoid dh_missing failure + rm -r debian/tmp/usr/lib/python* + +# run pytests *after* installation, so that we can make sure that we installed the right files +execute_after_dh_install-arch: +ifeq (, $(findstring nocheck, $(DEB_BUILD_OPTIONS))) +ifeq ($(shell . /etc/os-release; echo $${VERSION_ID:-unstable}),22.04) + PYTHONPATH=$$(ls -d debian/cockpit-bridge/usr/lib/python3*/dist-packages) python3 -m pytest -vv -k 'not linter and not test_descriptions' +else + pytest -vv -k 'not linter and not test_descriptions' -opythonpath=$$(ls -d debian/cockpit-bridge/usr/lib/python3*/dist-packages) +endif +endif |