1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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
|