#!/usr/bin/make -f # -*- makefile -*- export DEB_BUILD_MAINT_OPTIONS = hardening=+all DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) EFIDIR ?= $(shell dpkg-vendor --query vendor | awk '{ print tolower($$0) }') PODATE := $(shell dpkg-parsechangelog --show-field Date | xargs -0 date --utc "+%Y-%m-%d %H:%M%z" --date) deb_version := $(shell dpkg-parsechangelog --show-field Version) SB_STYLE := debian ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes)) SB_STYLE := ubuntu else TMPLDIR := debian/fwupdate-$(DEB_HOST_ARCH)-signed-template/usr/share/code-signing/fwupdate-$(DEB_HOST_ARCH)-signed-template endif buildroot := debian/tmp SBAT_IN = debian/sbat.$(SB_STYLE).csv.in SBAT_DATA = efi/data/sbat.$(SB_STYLE).csv $(SBAT_DATA): $(SBAT_IN) rm -f $@ set -e; \ sed -e "s/@DEB_VERSION@/$(deb_version)/g" \ -e "s/@UPSTREAM_VERSION@/$(plain_upstream_version)/g" \ < $(SBAT_IN) > $(SBAT_DATA) # If we have an empty $(SBAT_DATA), delete if [ ! -s $(SBAT_DATA) ]; then rm -f $(SBAT_DATA); fi %: dh $@ override_dh_auto_build: $(SBAT_DATA) dh_auto_build -- libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ libexecdir=\$${prefix}/lib/ \ datadir=/var/cache/ \ localedir=/usr/share/locale/ \ GNUEFIDIR=\$${prefix}/lib \ CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- \ EFIDIR=$(EFIDIR) sed 's,#EFIDIR#,$(EFIDIR),' \ debian/fwupdate.postrm.in > debian/fwupdate.postrm sed 's,#EFIDIR#,$(EFIDIR),' \ debian/fwupdate.postinst.in > debian/fwupdate.postinst # This is to satisfy https://wiki.debian.org/ReproducibleBuilds sed -i 's,POT-Creation-Date:.*,POT-Creation-Date: $(PODATE)\\n",' \ linux/libfwup.po sed -i 's,POT-Creation-Date:.*,POT-Creation-Date: $(PODATE)\\n",' \ linux/fwupdate.po override_dh_auto_install: dh_auto_install -- libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \ libexecdir=\$${prefix}/lib/ \ datadir=/var/cache/ \ localedir=/usr/share/locale/ \ GNUEFIDIR=\$${prefix}/lib \ CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- \ EFIDIR=$(EFIDIR) chmod -x ${buildroot}/boot/efi/EFI/$(EFIDIR)/*.efi mkdir -p ${buildroot}/usr/lib/fwupdate cp debian/scripts/install.in ${buildroot}/usr/lib/fwupdate/install sed -i 's,#EFIDIR#,$(EFIDIR),' ${buildroot}/usr/lib/fwupdate/install 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/fwupdate.postinst $(TMPLDIR)/source-template/debian/fwupdate-$(DEB_HOST_ARCH)-signed.postinst install -m 0755 debian/fwupdate.postrm $(TMPLDIR)/source-template/debian/fwupdate-$(DEB_HOST_ARCH)-signed.postrm ./debian/gen_signing_changelog $(TMPLDIR)/source-template/debian fwupdate $(DEB_HOST_ARCH) ./debian/gen_signing_json $(TMPLDIR) fwupdate ${DEB_HOST_ARCH} endif override_dh_auto_clean: dh_auto_clean -- EFIDIR=$(EFIDIR) rm -f $(SBAT_DATA) efi/sbat.*.csv rm -rf debian/fwupdate-*-signed-template* override_dh_builddeb: dh_builddeb -- -Zxz