mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-04-02 02:49:12 +00:00
fwupd: add new recipe
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
2a46c9947c
commit
786a317182
36
meta-oe/recipes-bsp/fwupd/fwupd/io.patch
Normal file
36
meta-oe/recipes-bsp/fwupd/fwupd/io.patch
Normal file
@ -0,0 +1,36 @@
|
||||
Upstream-Status: Submitted [https://github.com/fwupd/fwupd/pull/3970]
|
||||
Signed-off-by: Ross Burton <ross.burton@arm.com>
|
||||
|
||||
From c3711712d0603f14beef64b0ef0b2fd03c0442e0 Mon Sep 17 00:00:00 2001
|
||||
From: Ross Burton <ross.burton@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.burton@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
|
||||
141
meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch
Normal file
141
meta-oe/recipes-bsp/fwupd/fwupd/no-bash.patch
Normal file
@ -0,0 +1,141 @@
|
||||
Upstream-Status: Backport [a346c582cc0f34ac6c7c11251919c84553424efb]
|
||||
Signed-off-by: Ross Burton <ross.burton@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
|
||||
6
meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
Executable file
6
meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
Executable file
@ -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
|
||||
102
meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb
Normal file
102
meta-oe/recipes-bsp/fwupd/fwupd_1.7.1.bb
Normal file
@ -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"
|
||||
Loading…
x
Reference in New Issue
Block a user