#!/usr/bin/make -f # -*- makefile -*- export LC_ALL := C.UTF-8 export DEB_BUILD_MAINT_OPTIONS = hardening=+all export DEB_LDFLAGS_MAINT_STRIP=-Wl,-Bsymbolic-functions export EFIDIR=$(shell dpkg-vendor --query vendor | awk '{ print tolower($$0) }') #GPGME needs this for proper building on 32 bit archs ifeq "$(DEB_HOST_ARCH_BITS)" "32" export DEB_CFLAGS_MAINT_APPEND = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE endif CONFARGS = ifneq ($(CI),) CONFARGS += --wrap-mode=default endif regenerate_control: OS=debian-x86_64 ./contrib/ci/generate_debian.py SB_STYLE := debian deb_version := $(shell dpkg-parsechangelog --show-field Version) ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes)) SB_STYLE := ubuntu tar_name := fwupd_$(deb_version)_$(DEB_HOST_ARCH).tar.gz CONFARGS += -Dplugin_flashrom=false CONFARGS += -Defi_sbat_distro_id=ubuntu CONFARGS += -Defi_sbat_distro_summary=Ubuntu CONFARGS += -Defi_sbat_distro_pkgname=fwupd CONFARGS += -Defi_sbat_distro_version=$(deb_version) CONFARGS += -Defi_sbat_distro_url="https://launchpad.net/ubuntu/+source/fwupd" else TMPLDIR := debian/fwupd-$(DEB_HOST_ARCH)-signed-template/usr/share/code-signing/fwupd-$(DEB_HOST_ARCH)-signed-template CONFARGS += -Dplugin_flashrom=false CONFARGS += -Defi_sbat_distro_id=debian CONFARGS += -Defi_sbat_distro_summary=Debian CONFARGS += -Defi_sbat_distro_pkgname=fwupd CONFARGS += -Defi_sbat_distro_version=$(deb_version) CONFARGS += -Defi_sbat_distro_url="https://tracker.debian.org/pkg/fwupd" endif ifeq (yes,$(shell pkg-config --exists libsmbios_c && echo yes)) CONFARGS += -Dplugin_dell=true else CONFARGS += -Dplugin_dell=false endif ifeq (yes,$(shell pkg-config --exists efivar && echo yes)) CONFARGS += -Dplugin_uefi=true -Dplugin_redfish=true -Dplugin_nvme=true else CONFARGS += -Dplugin_uefi=false -Dplugin_redfish=false -Dplugin_nvme=false endif CONFARGS += -Dplugin_dummy=true -Dgtkdoc=true --libexecdir=/usr/lib %: [ -f debian/control ] || debian/rules regenerate_control dh $@ --with gir override_dh_auto_clean: rm -fr debian/build rm -f debian/fwupd.preinst ifeq (ubuntu,$(SB_STYLE)) rm -rf debian/fwupd-images endif dh_auto_clean override_dh_auto_configure: dh_auto_configure -- $(CONFARGS) override_dh_install: find debian/tmp/usr -type f -name "*a" -print | xargs rm -f sed -i 's,wheel,sudo,' ./debian/tmp/usr/share/polkit-1/rules.d/org.freedesktop.fwupd.rules sed 's/@@EFIDIR@@/$(EFIDIR)/' debian/fwupd.preinst.in > debian/fwupd.preinst dh_install #install the EFI binaries if needed if [ -d debian/tmp/usr/lib/fwupd/efi/ ]; then \ dh_install -pfwupd usr/lib/fwupd/efi ;\ dh_install -pfwupd usr/lib/fwupd/fwupdate; \ fi #if build with meson subproject in CI need to install this too if [ -n "$CI" ] && [ -f debian/tmp/usr/lib/xb-tool ]; then \ dh_install -pfwupd usr/lib/xb-tool ;\ fi dh_missing -a --fail-missing #this is placed in fwupd-tests rm -f debian/fwupd/usr/lib/*/fwupd-plugins-3/libfu_plugin_test.so rm -f debian/fwupd/etc/fwupd/remotes.d/fwupd-tests.conf ifeq (debian,$(SB_STYLE)) # Generate the template source for the Debian signing service to use mkdir -p $(TMPLDIR)/source-template/debian cp -a debian/signing-template/* $(TMPLDIR)/source-template/debian cp debian/README.Debian $(TMPLDIR)/source-template/debian find $(TMPLDIR)/source-template/debian -type f | xargs sed -i "s,SIGNARCH,$(DEB_HOST_ARCH)," find $(TMPLDIR)/source-template/debian -type f | xargs sed -i "s,SIGNVERSION,$(deb_version)," for file in $$(find $(TMPLDIR)/source-template/debian -type f -name *SIGNARCH*); do file1=$$(echo $$file | sed "s,SIGNARCH,$(DEB_HOST_ARCH),"); mv -v $$file $$file1; done install -m 0755 debian/fwupd.postinst $(TMPLDIR)/source-template/debian/fwupd-$(DEB_HOST_ARCH)-signed.postinst install -m 0755 debian/fwupd.postrm $(TMPLDIR)/source-template/debian/fwupd-$(DEB_HOST_ARCH)-signed.postrm ./debian/gen_signing_changelog $(TMPLDIR)/source-template/debian fwupd $(DEB_HOST_ARCH) ./debian/gen_signing_json $(TMPLDIR) fwupd ${DEB_HOST_ARCH} endif override_dh_strip_nondeterminism: dh_strip_nondeterminism -Xfirmware-example.xml.gz override_dh_auto_test: if [ -x /usr/bin/valgrind ] ; then \ dh_auto_test; \ fi override_dh_builddeb: dh_builddeb ifeq (ubuntu,$(SB_STYLE)) if [ -d debian/tmp/usr/lib/fwupd/efi/ ]; then \ mkdir -p debian/fwupd-images/$(deb_version) ;\ cp debian/tmp/usr/lib/fwupd/efi/fwupd*.efi debian/fwupd-images/$(deb_version) ;\ echo $(deb_version) > debian/fwupd-images/$(deb_version)/version ;\ tar -C debian/fwupd-images -czvf ../$(tar_name) . ;\ dpkg-distaddfile $(tar_name) raw-uefi - ;\ fi endif override_dh_shlibdeps: dh_shlibdeps $$DHSLIBS