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 85 86
|
#!/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
|