diff options
| -rw-r--r-- | meta-oe/recipes-bsp/fwupd/fwupd/io.patch | 36 | ||||
| -rw-r--r-- | meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch | 141 | ||||
| -rwxr-xr-x | meta-oe/recipes-bsp/fwupd/fwupd/run-ptest | 6 | ||||
| -rw-r--r-- | meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb | 102 |
4 files changed, 285 insertions, 0 deletions
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 @@ | |||
| 1 | Upstream-Status: Submitted [https://github.com/fwupd/fwupd/pull/3970] | ||
| 2 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
| 3 | |||
| 4 | From c3711712d0603f14beef64b0ef0b2fd03c0442e0 Mon Sep 17 00:00:00 2001 | ||
| 5 | From: Ross Burton <ross.burton@arm.com> | ||
| 6 | Date: Tue, 9 Nov 2021 16:26:45 +0000 | ||
| 7 | Subject: [PATCH] build: check that outb is present in io.h | ||
| 8 | |||
| 9 | The flashrom plugin can use inb/outb to do a CMOS reset. The build gates | ||
| 10 | this on whether io.h exists (since bc43ad) as with glibc if io.h exists, | ||
| 11 | inb/outb are defined. However on musl, io.h always exists but it may not | ||
| 12 | define inb/outb. | ||
| 13 | |||
| 14 | Thus, fwupd builds with musl on non-x86 platforms will fail to link. Fix | ||
| 15 | this by checking for both io.h and that outb() is defined. | ||
| 16 | |||
| 17 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
| 18 | --- | ||
| 19 | meson.build | 2 +- | ||
| 20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 21 | |||
| 22 | diff --git a/meson.build b/meson.build | ||
| 23 | index dabfc1ce..4c548cf9 100644 | ||
| 24 | --- a/meson.build | ||
| 25 | +++ b/meson.build | ||
| 26 | @@ -308,7 +308,7 @@ endif | ||
| 27 | if cc.has_header('sys/socket.h') | ||
| 28 | conf.set('HAVE_SOCKET_H', '1') | ||
| 29 | endif | ||
| 30 | -if cc.has_header('sys/io.h') | ||
| 31 | +if cc.has_header('sys/io.h') and cc.has_function('outb', prefix: '#include <sys/io.h>') | ||
| 32 | conf.set('HAVE_IO_H', '1') | ||
| 33 | endif | ||
| 34 | if cc.has_header('linux/ethtool.h') | ||
| 35 | -- | ||
| 36 | 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 @@ | |||
| 1 | Upstream-Status: Backport [a346c582cc0f34ac6c7c11251919c84553424efb] | ||
| 2 | Signed-off-by: Ross Burton <ross.burton@arm.com> | ||
| 3 | |||
| 4 | diff --git a/data/installed-tests/fwupd.sh b/data/installed-tests/fwupd.sh | ||
| 5 | index 5b1f5d22..eaa5ec7f 100755 | ||
| 6 | --- a/data/installed-tests/fwupd.sh | ||
| 7 | +++ b/data/installed-tests/fwupd.sh | ||
| 8 | @@ -1,4 +1,4 @@ | ||
| 9 | -#!/bin/bash | ||
| 10 | +#!/bin/sh | ||
| 11 | |||
| 12 | exec 2>&1 | ||
| 13 | dirname=`dirname $0` | ||
| 14 | @@ -7,7 +7,7 @@ run_test() | ||
| 15 | { | ||
| 16 | if [ -f $dirname/$1 ]; then | ||
| 17 | $dirname/$1 | ||
| 18 | - rc=$?; if [[ $rc != 0 ]]; then exit $rc; fi | ||
| 19 | + rc=$?; if [ $rc != 0 ]; then exit $rc; fi | ||
| 20 | fi | ||
| 21 | } | ||
| 22 | |||
| 23 | diff --git a/data/installed-tests/fwupdmgr.sh b/data/installed-tests/fwupdmgr.sh | ||
| 24 | index e3f7ee31..3d65395e 100755 | ||
| 25 | --- a/data/installed-tests/fwupdmgr.sh | ||
| 26 | +++ b/data/installed-tests/fwupdmgr.sh | ||
| 27 | @@ -1,4 +1,4 @@ | ||
| 28 | -#!/bin/bash | ||
| 29 | +#!/bin/sh | ||
| 30 | |||
| 31 | exec 2>&1 | ||
| 32 | device=08d460be0f1f9f128413f816022a6439e0078018 | ||
| 33 | @@ -13,47 +13,47 @@ error() | ||
| 34 | # --- | ||
| 35 | echo "Getting the list of remotes..." | ||
| 36 | fwupdmgr get-remotes | ||
| 37 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 38 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 39 | |||
| 40 | # --- | ||
| 41 | echo "Enabling fwupd-tests remote..." | ||
| 42 | fwupdmgr enable-remote fwupd-tests | ||
| 43 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 44 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 45 | |||
| 46 | # --- | ||
| 47 | echo "Update the device hash database..." | ||
| 48 | fwupdmgr verify-update $device | ||
| 49 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 50 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 51 | |||
| 52 | # --- | ||
| 53 | echo "Getting devices (should be one)..." | ||
| 54 | fwupdmgr get-devices --no-unreported-check | ||
| 55 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 56 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 57 | |||
| 58 | # --- | ||
| 59 | echo "Testing the verification of firmware..." | ||
| 60 | fwupdmgr verify $device | ||
| 61 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 62 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 63 | |||
| 64 | # --- | ||
| 65 | echo "Getting updates (should be one)..." | ||
| 66 | fwupdmgr --no-unreported-check --no-metadata-check get-updates | ||
| 67 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 68 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 69 | |||
| 70 | # --- | ||
| 71 | echo "Installing test firmware..." | ||
| 72 | fwupdmgr update $device -y | ||
| 73 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 74 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 75 | |||
| 76 | # --- | ||
| 77 | echo "Getting updates (should be none)..." | ||
| 78 | fwupdmgr --no-unreported-check --no-metadata-check get-updates | ||
| 79 | -rc=$?; if [[ $rc != 2 ]]; then error $rc; fi | ||
| 80 | +rc=$?; if [ $rc != 2 ]; then error $rc; fi | ||
| 81 | |||
| 82 | # --- | ||
| 83 | echo "Testing the verification of firmware (again)..." | ||
| 84 | fwupdmgr verify $device | ||
| 85 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 86 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 87 | |||
| 88 | if [ -z "$CI_NETWORK" ]; then | ||
| 89 | echo "Skipping remaining tests due to CI_NETWORK not being set" | ||
| 90 | @@ -63,27 +63,27 @@ fi | ||
| 91 | # --- | ||
| 92 | echo "Downgrading to older release (requires network access)" | ||
| 93 | fwupdmgr downgrade $device -y | ||
| 94 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 95 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 96 | |||
| 97 | # --- | ||
| 98 | echo "Downgrading to older release (should be none)" | ||
| 99 | fwupdmgr downgrade $device | ||
| 100 | -rc=$?; if [[ $rc != 2 ]]; then error $rc; fi | ||
| 101 | +rc=$?; if [ $rc != 2 ]; then error $rc; fi | ||
| 102 | |||
| 103 | # --- | ||
| 104 | echo "Updating all devices to latest release (requires network access)" | ||
| 105 | fwupdmgr --no-unreported-check --no-metadata-check --no-reboot-check update -y | ||
| 106 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 107 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 108 | |||
| 109 | # --- | ||
| 110 | echo "Getting updates (should be none)..." | ||
| 111 | fwupdmgr --no-unreported-check --no-metadata-check get-updates | ||
| 112 | -rc=$?; if [[ $rc != 2 ]]; then error $rc; fi | ||
| 113 | +rc=$?; if [ $rc != 2 ]; then error $rc; fi | ||
| 114 | |||
| 115 | # --- | ||
| 116 | echo "Refreshing from the LVFS (requires network access)..." | ||
| 117 | fwupdmgr refresh | ||
| 118 | -rc=$?; if [[ $rc != 0 ]]; then error $rc; fi | ||
| 119 | +rc=$?; if [ $rc != 0 ]; then error $rc; fi | ||
| 120 | |||
| 121 | # success! | ||
| 122 | exit 0 | ||
| 123 | diff --git a/plugins/uefi-capsule/fwupd.grub.conf.in b/plugins/uefi-capsule/fwupd.grub.conf.in | ||
| 124 | index 92bd49a1..9c3a22f2 100755 | ||
| 125 | --- a/plugins/uefi-capsule/fwupd.grub.conf.in | ||
| 126 | +++ b/plugins/uefi-capsule/fwupd.grub.conf.in | ||
| 127 | @@ -1,4 +1,4 @@ | ||
| 128 | -#! /bin/bash | ||
| 129 | +#! /bin/sh | ||
| 130 | # SPDX-License-Identifier: LGPL-2.1+ | ||
| 131 | set -e | ||
| 132 | |||
| 133 | @@ -8,7 +8,7 @@ set -e | ||
| 134 | |||
| 135 | if [ -f @localstatedir@/lib/fwupd/uefi_capsule.conf ] && | ||
| 136 | ls /sys/firmware/efi/efivars/fwupd-*-0abba7dc-e516-4167-bbf5-4d9d1c739416 1>/dev/null 2>&1; then | ||
| 137 | - source @localstatedir@/lib/fwupd/uefi_capsule.conf | ||
| 138 | + . @localstatedir@/lib/fwupd/uefi_capsule.conf | ||
| 139 | if [ "${EFI_PATH}" != "" ] && [ "${ESP}" != "" ]; then | ||
| 140 | echo "Adding Linux Firmware Updater entry" >&2 | ||
| 141 | 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 @@ | |||
| 1 | #! /bin/sh | ||
| 2 | |||
| 3 | # Don't run all of the fwupd tests, as fwupd/fwupdmgr.test needs a custom | ||
| 4 | # /etc/fwupd/daemon.conf with DisabledPlugins unset. | ||
| 5 | |||
| 6 | 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 @@ | |||
| 1 | SUMMARY = "A simple daemon to allow session software to update firmware" | ||
| 2 | LICENSE = "LGPL-2.1+" | ||
| 3 | LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" | ||
| 4 | |||
| 5 | DEPENDS = "glib-2.0 libxmlb json-glib sqlite3 libjcat gcab vala-native" | ||
| 6 | |||
| 7 | SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/1.7.1/${BP}.tar.xz \ | ||
| 8 | file://run-ptest \ | ||
| 9 | file://no-bash.patch \ | ||
| 10 | file://io.patch" | ||
| 11 | SRC_URI[sha256sum] = "ae56ceb44b786f21f54d133ac70bc5d9cb8cd4bda0167339c669a228da67fa3c" | ||
| 12 | |||
| 13 | UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases" | ||
| 14 | |||
| 15 | # Machine-specific as we examine MACHINE_FEATURES to decide whether to build the UEFI plugins | ||
| 16 | PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
| 17 | |||
| 18 | inherit meson vala gobject-introspection systemd bash-completion pkgconfig gi-docgen ptest manpages | ||
| 19 | |||
| 20 | GIDOCGEN_MESON_OPTION = 'docs' | ||
| 21 | GIDOCGEN_MESON_ENABLE_FLAG = 'docgen' | ||
| 22 | GIDOCGEN_MESON_DISABLE_FLAG = 'none' | ||
| 23 | |||
| 24 | PACKAGECONFIG ??= "curl gnutls gudev gusb lzma \ | ||
| 25 | ${@bb.utils.filter('DISTRO_FEATURES', 'polkit systemd', d)} \ | ||
| 26 | ${@bb.utils.contains('MACHINE_FEATURES', 'efi', 'plugin_uefi_capsule plugin_uefi_pk', '', d)} \ | ||
| 27 | ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests plugin_dummy', '', d)} \ | ||
| 28 | plugin_altos \ | ||
| 29 | plugin_amt \ | ||
| 30 | plugin_emmc \ | ||
| 31 | plugin_fastboot \ | ||
| 32 | plugin_flashrom \ | ||
| 33 | plugin_intel_spi \ | ||
| 34 | plugin_logitech_bulkcontroller \ | ||
| 35 | plugin_modem_manager \ | ||
| 36 | plugin_msr \ | ||
| 37 | plugin_nvme \ | ||
| 38 | plugin_parade_lspcon \ | ||
| 39 | plugin_platform_integrity \ | ||
| 40 | plugin_realtek_mst \ | ||
| 41 | plugin_redfish \ | ||
| 42 | plugin_synaptics_mst \ | ||
| 43 | plugin_synaptics_rmi \ | ||
| 44 | plugin_thunderbolt" | ||
| 45 | |||
| 46 | PACKAGECONFIG[bluez] = "-Dbluez=true,-Dbluez=false" | ||
| 47 | PACKAGECONFIG[consolekit] = "-Dconsolekit=true,-Dconsolekit=false,consolekit" | ||
| 48 | PACKAGECONFIG[curl] = "-Dcurl=true,-Dcurl=false,curl" | ||
| 49 | PACKAGECONFIG[firmware-packager] = "-Dfirmware-packager=true,-Dfirmware-packager=false" | ||
| 50 | PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls" | ||
| 51 | PACKAGECONFIG[gudev] = "-Dgudev=true,-Dgudev=false,libgudev" | ||
| 52 | PACKAGECONFIG[gusb] = "-Dgusb=true,-Dgusb=false,libgusb" | ||
| 53 | PACKAGECONFIG[libarchive] = "-Dlibarchive=true,-Dlibarchive=false,libarchive" | ||
| 54 | PACKAGECONFIG[lzma] = "-Dlzma=true,-Dlzma=false,xz" | ||
| 55 | PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false" | ||
| 56 | PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false,polkit" | ||
| 57 | PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" | ||
| 58 | PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,gcab-native" | ||
| 59 | |||
| 60 | # TODO plugins-all meta-option that expands to all plugin_*? | ||
| 61 | PACKAGECONFIG[plugin_altos] = "-Dplugin_altos=true,-Dplugin_altos=false,elfutils" | ||
| 62 | PACKAGECONFIG[plugin_amt] = "-Dplugin_amt=true,-Dplugin_amt=false" | ||
| 63 | PACKAGECONFIG[plugin_dell] = "-Dplugin_dell=true,-Dplugin_dell=false,libsmbios" | ||
| 64 | PACKAGECONFIG[plugin_dummy] = "-Dplugin_dummy=true,-Dplugin_dummy=false" | ||
| 65 | PACKAGECONFIG[plugin_emmc] = "-Dplugin_emmc=true,-Dplugin_emmc=false" | ||
| 66 | PACKAGECONFIG[plugin_fastboot] = "-Dplugin_fastboot=true,-Dplugin_fastboot=false" | ||
| 67 | PACKAGECONFIG[plugin_flashrom] = "-Dplugin_flashrom=true,-Dplugin_flashrom=false,flashrom" | ||
| 68 | PACKAGECONFIG[plugin_intel_spi] = "-Dplugin_intel_spi=true,-Dplugin_intel_spi=false" | ||
| 69 | PACKAGECONFIG[plugin_logitech_bulkcontroller] = "-Dplugin_logitech_bulkcontroller=true,-Dplugin_logitech_bulkcontroller=false,protobuf-c-native protobuf-c" | ||
| 70 | PACKAGECONFIG[plugin_modem_manager] = "-Dplugin_modem_manager=true,-Dplugin_modem_manager=false,libqmi modemmanager" | ||
| 71 | PACKAGECONFIG[plugin_msr] = "-Dplugin_msr=true,-Dplugin_msr=false,cpuid" | ||
| 72 | PACKAGECONFIG[plugin_nvme] = "-Dplugin_nvme=true,-Dplugin_nvme=false" | ||
| 73 | PACKAGECONFIG[plugin_parade_lspcon] = "-Dplugin_parade_lspcon=true,-Dplugin_parade_lspcon=false" | ||
| 74 | PACKAGECONFIG[plugin_platform_integrity] = "-Dplugin_platform_integrity=true,-Dplugin_platform_integrity=false" | ||
| 75 | PACKAGECONFIG[plugin_realtek_mst] = "-Dplugin_realtek_mst=true,-Dplugin_realtek_mst=false" | ||
| 76 | PACKAGECONFIG[plugin_redfish] = "-Dplugin_redfish=true,-Dplugin_redfish=false" | ||
| 77 | PACKAGECONFIG[plugin_synaptics_mst] = "-Dplugin_synaptics_mst=true,-Dplugin_synaptics_mst=false" | ||
| 78 | PACKAGECONFIG[plugin_synaptics_rmi] = "-Dplugin_synaptics_rmi=true,-Dplugin_synaptics_rmi=false" | ||
| 79 | PACKAGECONFIG[plugin_thunderbolt] = "-Dplugin_thunderbolt=true,-Dplugin_thunderbolt=false" | ||
| 80 | PACKAGECONFIG[plugin_tpm] = "-Dplugin_tpm=true,-Dplugin_tpm=false,tpm2-tss" | ||
| 81 | # Turn off the capsule splash as it needs G-I at buildtime, which isn't currently supported | ||
| 82 | PACKAGECONFIG[plugin_uefi_capsule] = "-Dplugin_uefi_capsule=true -Dplugin_uefi_capsule_splash=false,-Dplugin_uefi_capsule=false,efivar fwupd-efi" | ||
| 83 | PACKAGECONFIG[plugin_uefi_pk] = "-Dplugin_uefi_pk=true,-Dplugin_uefi_pk=false" | ||
| 84 | |||
| 85 | # Always disable these plugins on non-x86 platforms as they don't compile | ||
| 86 | DISABLE_NON_X86 = "plugin_msr plugin_intel_spi" | ||
| 87 | DISABLE_NON_X86:x86 = "" | ||
| 88 | DISABLE_NON_X86:x86-64 = "" | ||
| 89 | PACKAGECONFIG:remove = "${DISABLE_NON_X86}" | ||
| 90 | |||
| 91 | FILES:${PN} += "${libdir}/fwupd-plugins-* \ | ||
| 92 | ${systemd_unitdir} \ | ||
| 93 | ${datadir}/fish \ | ||
| 94 | ${datadir}/metainfo \ | ||
| 95 | ${datadir}/icons \ | ||
| 96 | ${datadir}/dbus-1 \ | ||
| 97 | ${datadir}/polkit-1 \ | ||
| 98 | ${nonarch_libdir}/modules-load.d" | ||
| 99 | |||
| 100 | FILES:${PN}-ptest += "${libexecdir}/installed-tests/ \ | ||
| 101 | ${datadir}/installed-tests/" | ||
| 102 | RDEPENDS:${PN}-ptest += "gnome-desktop-testing" | ||
