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" | ||