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 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#!/usr/bin/make -f
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
# only build cockpit-pcp if pcp is available
ifneq ($(shell dpkg -s libpcp3-dev >/dev/null 2>&1 && echo yes),yes)
export DH_OPTIONS = -Ncockpit-pcp
CONFIG_OPTIONS = --disable-pcp
endif
# newer firewalld ships cockpit.xml, but keep it for backports
FIREWALLD_SERVICE = $(findstring $(shell . /etc/os-release; echo $$VERSION_ID),8 9 16.04 18.04)
ifeq ($(FIREWALLD_SERVICE),)
WS_CONFLICTS = firewalld (<< 0.6.0)
endif
%:
dh $@
# Apply patches using git in order to support binary patches. Note that
# we also reset mtimes since patches should be "complete" and include both
# generated and source file changes.
# Keep this in sync with tools/cockpit.spec.
debian/git-patches-applied:
set -ex; if [ -d debian/git-patches ]; then \
git init; \
git config user.email "unused@example.com"; git config user.name "Unused"; \
git config core.autocrlf false; git config core.safecrlf false && git config gc.auto 0; \
git add -f . && git commit -a -q -m "Base" && git tag -a initial --message="initial"; \
git am --whitespace=nowarn debian/git-patches/*.patch; \
touch -r $$(git diff --name-only initial..HEAD) .git; \
fi
touch $@
# unapply our git patches
override_dh_clean:
if [ -d .git ] && [ -e debian/git-patches-applied ]; then \
git reset --hard initial; \
git clean -fdx; \
rm -rf .git; \
fi
rm -f debian/git-patches-applied
dh_clean
override_dh_auto_configure: debian/git-patches-applied
dh_auto_configure -- \
--with-networkmanager-needs-root=yes \
--with-cockpit-user=cockpit-ws \
--with-appstream-config-packages='[ "appstream" ]' \
--with-nfs-client-packages='"nfs-common"' \
--with-pamdir=/lib/$(DEB_HOST_MULTIARCH)/security \
--libexecdir=/usr/lib/cockpit $(CONFIG_OPTIONS)
override_dh_systemd_enable:
dh_systemd_enable -p cockpit-ws --name=cockpit cockpit.socket
override_dh_systemd_start:
dh_systemd_start -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; 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
# unpackaged modules
for m in kdump kubernetes selinux sosreport subscriptions ovirt; do rm -r debian/tmp/usr/share/cockpit/$$m; done
rm debian/tmp/usr/share/metainfo/org.cockpit-project.cockpit-sosreport.metainfo.xml
rm debian/tmp/usr/share/pixmaps/cockpit-sosreport.png
rm debian/tmp/usr/share/metainfo/org.cockpit-project.cockpit-kdump.metainfo.xml
rm debian/tmp/usr/share/metainfo/org.cockpit-project.cockpit-selinux.metainfo.xml
# part of kubernetes
rm -f debian/tmp/usr/lib/cockpit/cockpit-stub
dh_install --fail-missing -Xusr/src/debug
make install-tests DESTDIR=debian/cockpit-tests
if [ -z "$(FIREWALLD_SERVICE)" ] && [ -d debian/cockpit-ws ]; then rm debian/cockpit-ws/usr/lib/firewalld/services/cockpit.xml; rmdir -p --ignore-fail-on-non-empty debian/cockpit-ws/usr/lib/firewalld/services/; fi
override_dh_gencontrol:
dh_gencontrol -- -Vbridge:minversion="$(shell tools/min-base-version)" -Vws:Conflicts="$(WS_CONFLICTS)"
|