mirror of
https://git.proxmox.com/git/fwupd
synced 2025-05-28 16:57:18 +00:00

A Jcat file can be used to store GPG, PKCS-7 and SHA-256 checksums for multiple files. This allows us to sign a firmware or metadata multiple times (perhaps by the OEM and also then the LVFS) which further decentralizes the trust model of the LVFS. The Jcat format was chosen as the Microsoft catalog format is nonfree and not documented. We also don't want to modify an existing .cat file created from WU as this may make it unsuitable to use on Windows. More information can be found here: https://github.com/hughsie/libjcat
115 lines
4.1 KiB
Makefile
Executable File
115 lines
4.1 KiB
Makefile
Executable File
#!/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
|
|
|
|
#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
|
|
|
|
ifneq ($(CI),)
|
|
export CI=--werror --wrap-mode=default
|
|
endif
|
|
|
|
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
|
|
export FLASHROM=-Dplugin_flashrom=false
|
|
else
|
|
TMPLDIR := debian/fwupd-$(DEB_HOST_ARCH)-signed-template/usr/share/code-signing/fwupd-$(DEB_HOST_ARCH)-signed-template
|
|
export FLASHROM=-Dplugin_flashrom=true
|
|
endif
|
|
|
|
%:
|
|
dh $@ --with gir
|
|
|
|
override_dh_auto_clean:
|
|
rm -fr obj-*
|
|
rm -fr debian/build
|
|
ifeq (ubuntu,$(SB_STYLE))
|
|
rm -rf debian/fwupd-images
|
|
endif
|
|
|
|
override_dh_auto_configure:
|
|
if pkg-config --exists libsmbios_c; then \
|
|
export DELL="-Dplugin_dell=true"; \
|
|
else \
|
|
export DELL="-Dplugin_dell=false"; \
|
|
fi; \
|
|
if pkg-config --exists efivar; then \
|
|
export UEFI="-Dplugin_uefi=true -Dplugin_redfish=true -Dplugin_nvme=true"; \
|
|
else \
|
|
export UEFI="-Dplugin_uefi=false -Dplugin_redfish=false -Dplugin_nvme=false"; \
|
|
fi; \
|
|
if [ ! -z "$$CI" ]; then \
|
|
export CI="-Dlibjcat:introspection=false $$CI"; \
|
|
fi; \
|
|
dh_auto_configure -- $$UEFI $$DELL $$FLASHROM $$CI -Dplugin_dummy=true -Dgtkdoc=true
|
|
|
|
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
|
|
dh_install
|
|
#install the EFI binaries if needed
|
|
if [ -d debian/tmp/usr/libexec/fwupd/efi/ ]; then \
|
|
dh_install -pfwupd usr/libexec/fwupd/efi ;\
|
|
fi
|
|
#libjcat built as a subproject for CI
|
|
if [ ! -z "$$CI" ]; then \
|
|
dh_install -plibfwupd-dev usr/include/libjcat-1; \
|
|
dh_install -plibfwupd2 usr/lib/*/libjcat.so.*; \
|
|
dh_install -plibfwupd-dev usr/lib/*/libjcat.so; \
|
|
dh_install -plibfwupd-dev usr/lib/*/pkgconfig/jcat.pc; \
|
|
dh_install -plibfwupd-dev usr/libexec/jcat-tool; \
|
|
dh_install -plibfwupd-dev usr/share/gir-1.0/Jcat*; \
|
|
dh_install -pfwupd-tests usr/libexec/installed-tests/libjcat; \
|
|
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/usr/lib/*/fwupd-plugins-3/libfu_plugin_invalid.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/libexec/fwupd/efi/ ]; then \
|
|
mkdir -p debian/fwupd-images/$(deb_version) ;\
|
|
cp debian/tmp/usr/libexec/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
|