Signed-off-by: Ross Burton <ross.bur...@arm.com> --- meta-oe/recipes-bsp/fwupd/fwupd/io.patch | 36 +++++ meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch | 141 ++++++++++++++++++ meta-oe/recipes-bsp/fwupd/fwupd/run-ptest | 6 + meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb | 102 +++++++++++++ 4 files changed, 285 insertions(+) create mode 100644 meta-oe/recipes-bsp/fwupd/fwupd/io.patch create mode 100644 meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch create mode 100755 meta-oe/recipes-bsp/fwupd/fwupd/run-ptest create mode 100644 meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd/io.patch b/meta-oe/recipes-bsp/fwupd/fwupd/io.patch new file mode 100644 index 0000000000..7cef88507b --- /dev/null +++ b/meta-oe/recipes-bsp/fwupd/fwupd/io.patch @@ -0,0 +1,36 @@ +Upstream-Status: Submitted [https://github.com/fwupd/fwupd/pull/3970] +Signed-off-by: Ross Burton <ross.bur...@arm.com> + +From c3711712d0603f14beef64b0ef0b2fd03c0442e0 Mon Sep 17 00:00:00 2001 +From: Ross Burton <ross.bur...@arm.com> +Date: Tue, 9 Nov 2021 16:26:45 +0000 +Subject: [PATCH] build: check that outb is present in io.h + +The flashrom plugin can use inb/outb to do a CMOS reset. The build gates +this on whether io.h exists (since bc43ad) as with glibc if io.h exists, +inb/outb are defined. However on musl, io.h always exists but it may not +define inb/outb. + +Thus, fwupd builds with musl on non-x86 platforms will fail to link. Fix +this by checking for both io.h and that outb() is defined. + +Signed-off-by: Ross Burton <ross.bur...@arm.com> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index dabfc1ce..4c548cf9 100644 +--- a/meson.build ++++ b/meson.build +@@ -308,7 +308,7 @@ endif + if cc.has_header('sys/socket.h') + conf.set('HAVE_SOCKET_H', '1') + endif +-if cc.has_header('sys/io.h') ++if cc.has_header('sys/io.h') and cc.has_function('outb', prefix: '#include <sys/io.h>') + conf.set('HAVE_IO_H', '1') + endif + if cc.has_header('linux/ethtool.h') +-- +2.25.1 diff --git a/meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch b/meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch new file mode 100644 index 0000000000..e0f83c4b6c --- /dev/null +++ b/meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch @@ -0,0 +1,141 @@ +Upstream-Status: Backport [a346c582cc0f34ac6c7c11251919c84553424efb] +Signed-off-by: Ross Burton <ross.bur...@arm.com> + +diff --git a/data/installed-tests/fwupd.sh b/data/installed-tests/fwupd.sh +index 5b1f5d22..eaa5ec7f 100755 +--- a/data/installed-tests/fwupd.sh ++++ b/data/installed-tests/fwupd.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + exec 2>&1 + dirname=`dirname $0` +@@ -7,7 +7,7 @@ run_test() + { + if [ -f $dirname/$1 ]; then + $dirname/$1 +- rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi ++ rc=$?; if [ $rc != 0 ]; then exit $rc; fi + fi + } + +diff --git a/data/installed-tests/fwupdmgr.sh b/data/installed-tests/fwupdmgr.sh +index e3f7ee31..3d65395e 100755 +--- a/data/installed-tests/fwupdmgr.sh ++++ b/data/installed-tests/fwupdmgr.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + exec 2>&1 + device=08d460be0f1f9f128413f816022a6439e0078018 +@@ -13,47 +13,47 @@ error() + # --- + echo "Getting the list of remotes..." + fwupdmgr get-remotes +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Enabling fwupd-tests remote..." + fwupdmgr enable-remote fwupd-tests +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Update the device hash database..." + fwupdmgr verify-update $device +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Getting devices (should be one)..." + fwupdmgr get-devices --no-unreported-check +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Testing the verification of firmware..." + fwupdmgr verify $device +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Getting updates (should be one)..." + fwupdmgr --no-unreported-check --no-metadata-check get-updates +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Installing test firmware..." + fwupdmgr update $device -y +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Getting updates (should be none)..." + fwupdmgr --no-unreported-check --no-metadata-check get-updates +-rc=$?; if [[ $rc != 2 ]]; then error $rc; fi ++rc=$?; if [ $rc != 2 ]; then error $rc; fi + + # --- + echo "Testing the verification of firmware (again)..." + fwupdmgr verify $device +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + if [ -z "$CI_NETWORK" ]; then + echo "Skipping remaining tests due to CI_NETWORK not being set" +@@ -63,27 +63,27 @@ fi + # --- + echo "Downgrading to older release (requires network access)" + fwupdmgr downgrade $device -y +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Downgrading to older release (should be none)" + fwupdmgr downgrade $device +-rc=$?; if [[ $rc != 2 ]]; then error $rc; fi ++rc=$?; if [ $rc != 2 ]; then error $rc; fi + + # --- + echo "Updating all devices to latest release (requires network access)" + fwupdmgr --no-unreported-check --no-metadata-check --no-reboot-check update -y +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # --- + echo "Getting updates (should be none)..." + fwupdmgr --no-unreported-check --no-metadata-check get-updates +-rc=$?; if [[ $rc != 2 ]]; then error $rc; fi ++rc=$?; if [ $rc != 2 ]; then error $rc; fi + + # --- + echo "Refreshing from the LVFS (requires network access)..." + fwupdmgr refresh +-rc=$?; if [[ $rc != 0 ]]; then error $rc; fi ++rc=$?; if [ $rc != 0 ]; then error $rc; fi + + # success! + exit 0 +diff --git a/plugins/uefi-capsule/fwupd.grub.conf.in b/plugins/uefi-capsule/fwupd.grub.conf.in +index 92bd49a1..9c3a22f2 100755 +--- a/plugins/uefi-capsule/fwupd.grub.conf.in ++++ b/plugins/uefi-capsule/fwupd.grub.conf.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! /bin/sh + # SPDX-License-Identifier: LGPL-2.1+ + set -e + +@@ -8,7 +8,7 @@ set -e + + if [ -f @localstatedir@/lib/fwupd/uefi_capsule.conf ] && + ls /sys/firmware/efi/efivars/fwupd-*-0abba7dc-e516-4167-bbf5-4d9d1c739416 1>/dev/null 2>&1; then +- source @localstatedir@/lib/fwupd/uefi_capsule.conf ++ . @localstatedir@/lib/fwupd/uefi_capsule.conf + if [ "${EFI_PATH}" != "" ] && [ "${ESP}" != "" ]; then + echo "Adding Linux Firmware Updater entry" >&2 + cat << EOF diff --git a/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest b/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest new file mode 100755 index 0000000000..dbc0fc32a2 --- /dev/null +++ b/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest @@ -0,0 +1,6 @@ +#! /bin/sh + +# Don't run all of the fwupd tests, as fwupd/fwupdmgr.test needs a custom +# /etc/fwupd/daemon.conf with DisabledPlugins unset. + +gnome-desktop-testing-runner fwupd/fwupd.test diff --git a/meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb b/meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb new file mode 100644 index 0000000000..5827c39e9f --- /dev/null +++ b/meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb @@ -0,0 +1,102 @@ +SUMMARY = "A simple daemon to allow session software to update firmware" +LICENSE = "LGPL-2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "glib-2.0 libxmlb json-glib sqlite3 libjcat gcab vala-native" + +SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/1.7.1/${BP}.tar.xz \ + file://run-ptest \ + file://no-bash.patch \ + file://io.patch" +SRC_URI[sha256sum] = "ae56ceb44b786f21f54d133ac70bc5d9cb8cd4bda0167339c669a228da67fa3c" + +UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" + +# Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages + +GIDOCGEN_MESON_OPTION = 'docs' +GIDOCGEN_MESON_ENABLE_FLAG = 'docgen' +GIDOCGEN_MESON_DISABLE_FLAG = 'none' + +PACKAGECONFIG ??= "curl gnutls gudev gusb lzma \ + ${@bb.utils.filter('DISTRO_FEATURES', 'polkit systemd', d)} \ + ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \ + ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \ + plugin_altos \ + plugin_amt \ + plugin_emmc \ + plugin_fastboot \ + plugin_flashrom \ + plugin_intel_spi \ + plugin_logitech_bulkcontroller \ + plugin_modem_manager \ + plugin_msr \ + plugin_nvme \ + plugin_parade_lspcon \ + plugin_platform_integrity \ + plugin_realtek_mst \ + plugin_redfish \ + plugin_synaptics_mst \ + plugin_synaptics_rmi \ + plugin_thunderbolt" + +PACKAGECONFIG[bluez] = "-Dbluez=true,-Dbluez=false" +PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit" +PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl" +PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false" +PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" +PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev" +PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb" +PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive" +PACKAGECONFIG[lzma] = "-Dlzma=true,-Dlzma=false,xz" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false" +PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit" +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" +PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native" + +# TODO plugins-all meta-option that expands to all plugin_*? +PACKAGECONFIG[plugin_altos] = "-Dplugin_altos=true,-Dplugin_altos=false,elfutils" +PACKAGECONFIG[plugin_amt] = "-Dplugin_amt=true,-Dplugin_amt=false" +PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios" +PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false" +PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false" +PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false" +PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom" +PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true,-Dplugin_intel_spi=false" +PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c" +PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager" +PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid" +PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false" +PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false" +PACKAGECONFIG[plugin_platform_integrity] = "-Dplugin_platform_integrity=true,-Dplugin_platform_integrity=false" +PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false" +PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false" +PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false" +PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false" +PACKAGECONFIG[plugin_thunderbolt] = "-Dplugin_thunderbolt=true,-Dplugin_thunderbolt=false" +PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss" +# Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported +PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi" +PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false" + +# Always disable these plugins on non-x86 platforms as they don't compile +DISABLE_NON_X86 = "plugin_msr plugin_intel_spi" +DISABLE_NON_X86:x86 = "" +DISABLE_NON_X86:x86-64 = "" +PACKAGECONFIG:remove = "${DISABLE_NON_X86}" + +FILES:${PN} += "${libdir}/fwupd-plugins-* \ + ${systemd_unitdir} \ + ${datadir}/fish \ + ${datadir}/metainfo \ + ${datadir}/icons \ + ${datadir}/dbus-1 \ + ${datadir}/polkit-1 \ + ${nonarch_libdir}/modules-load.d" + +FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \ + ${datadir}/installed-tests/" +RDEPENDS:${PN}-ptest += "gnome-desktop-testing" -- 2.25.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#93891): https://lists.openembedded.org/g/openembedded-devel/message/93891 Mute This Topic: https://lists.openembedded.org/mt/86939429/21656 Group Owner: openembedded-devel+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-