Rebase to the latest stable version

This commit is contained in:
Richard Hughes 2023-06-09 09:40:03 +01:00
parent 7f5cb56f69
commit e0f6e150da
8 changed files with 24 additions and 287 deletions

4
.gitignore vendored
View File

@ -94,3 +94,7 @@
/fwupd-efi-1.3.tar.xz
/fwupd-efi-1.4.tar.xz
/fwupd-1.8.10.tar.xz
/fwupd-1.8.16.tar.xz
/DBXUpdate-20230509-aa64.cab
/DBXUpdate-20230509-ia32.cab
/DBXUpdate-20230509-x64.cab

View File

@ -1,110 +0,0 @@
From 90e5a58736645cdd37bf4c63f9a4056951dfb3f2 Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Tue, 24 Jan 2023 09:52:17 +0000
Subject: [PATCH] Do not make any of the HWIDs setup failures fatal
It's perfectly okay to have no HWIDs defined.
Should help with https://github.com/fwupd/fwupd/issues/5402
---
libfwupdplugin/fu-context.c | 73 +++++++++++--------------------------
1 file changed, 21 insertions(+), 52 deletions(-)
diff --git a/libfwupdplugin/fu-context.c b/libfwupdplugin/fu-context.c
index 08618b435..11b4b1b38 100644
--- a/libfwupdplugin/fu-context.c
+++ b/libfwupdplugin/fu-context.c
@@ -767,6 +767,8 @@ fu_context_security_changed(FuContext *self)
g_signal_emit(self, signals[SIGNAL_SECURITY_CHANGED], 0);
}
+typedef gboolean (*FuContextHwidsSetupFunc)(FuContext *self, FuHwids *hwids, GError **error);
+
/**
* fu_context_load_hwinfo:
* @self: a #FuContext
@@ -786,62 +788,29 @@ fu_context_load_hwinfo(FuContext *self, FuContextHwidFlags flags, GError **error
GPtrArray *guids;
g_autoptr(GError) error_hwids = NULL;
g_autoptr(GError) error_bios_settings = NULL;
+ struct {
+ const gchar *name;
+ FuContextHwidFlags flag;
+ FuContextHwidsSetupFunc func;
+ } hwids_setup_map[] = {{"config", FU_CONTEXT_HWID_FLAG_LOAD_CONFIG, fu_hwids_config_setup},
+ {"smbios", FU_CONTEXT_HWID_FLAG_LOAD_SMBIOS, fu_hwids_smbios_setup},
+ {"fdt", FU_CONTEXT_HWID_FLAG_LOAD_FDT, fu_hwids_fdt_setup},
+ {"kenv", FU_CONTEXT_HWID_FLAG_LOAD_KENV, fu_hwids_kenv_setup},
+ {"dmi", FU_CONTEXT_HWID_FLAG_LOAD_DMI, fu_hwids_dmi_setup},
+ {NULL, FU_CONTEXT_HWID_FLAG_NONE, NULL}};
g_return_val_if_fail(FU_IS_CONTEXT(self), FALSE);
g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
- if ((flags & FU_CONTEXT_HWID_FLAG_LOAD_CONFIG) > 0) {
- g_autoptr(GError) error_local = NULL;
- if (!fu_hwids_config_setup(self, priv->hwids, &error_local)) {
- if (!g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED)) {
- g_propagate_prefixed_error(error,
- g_steal_pointer(&error_local),
- "Failed to load HWIDs config: ");
- return FALSE;
- }
- }
- }
- if ((flags & FU_CONTEXT_HWID_FLAG_LOAD_DMI) > 0) {
- g_autoptr(GError) error_local = NULL;
- if (!fu_hwids_dmi_setup(self, priv->hwids, &error_local)) {
- if (!g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED)) {
- g_propagate_prefixed_error(error,
- g_steal_pointer(&error_local),
- "Failed to load HWIDs DMI: ");
- return FALSE;
- }
- }
- }
- if ((flags & FU_CONTEXT_HWID_FLAG_LOAD_FDT) > 0) {
- g_autoptr(GError) error_local = NULL;
- if (!fu_hwids_fdt_setup(self, priv->hwids, &error_local)) {
- if (!g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED)) {
- g_propagate_prefixed_error(error,
- g_steal_pointer(&error_local),
- "Failed to load HWIDs FDT: ");
- return FALSE;
- }
- }
- }
- if ((flags & FU_CONTEXT_HWID_FLAG_LOAD_KENV) > 0) {
- g_autoptr(GError) error_local = NULL;
- if (!fu_hwids_kenv_setup(self, priv->hwids, &error_local)) {
- if (!g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED)) {
- g_propagate_prefixed_error(error,
- g_steal_pointer(&error_local),
- "Failed to load HWIDs kenv: ");
- return FALSE;
- }
- }
- }
- if ((flags & FU_CONTEXT_HWID_FLAG_LOAD_SMBIOS) > 0) {
- g_autoptr(GError) error_local = NULL;
- if (!fu_hwids_smbios_setup(self, priv->hwids, &error_local)) {
- if (!g_error_matches(error_local, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED)) {
- g_propagate_prefixed_error(error,
- g_steal_pointer(&error_local),
- "Failed to load SMBIOS: ");
- return FALSE;
+ /* run all the HWID setup funcs */
+ for (guint i = 0; hwids_setup_map[i].name != NULL; i++) {
+ if ((flags & hwids_setup_map[i].flag) > 0) {
+ g_autoptr(GError) error_local = NULL;
+ if (!hwids_setup_map[i].func(self, priv->hwids, &error_local)) {
+ g_debug("failed to load %s: %s",
+ hwids_setup_map[i].name,
+ error_local->message);
+ break;
}
}
}
--
2.39.1

View File

@ -1,60 +0,0 @@
From 19db23f9b8a64597564ce1b474eb6c384a57125f Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Wed, 2 Nov 2022 09:31:53 +0000
Subject: [PATCH] Only include the 'attribute not exported' warning on debug
builds
End users are not really capable of fixing the root issue, and people seem
overly worried that something bad has gone wrong.
Fixes https://github.com/fwupd/fwupd/issues/5077
---
libfwupdplugin/fu-bios-settings.c | 2 +-
libfwupdplugin/fu-self-test.c | 2 ++
plugins/lenovo-thinklmi/fu-self-test.c | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/libfwupdplugin/fu-bios-settings.c b/libfwupdplugin/fu-bios-settings.c
index 6151c8289..8ea1269d7 100644
--- a/libfwupdplugin/fu-bios-settings.c
+++ b/libfwupdplugin/fu-bios-settings.c
@@ -276,7 +276,7 @@ fu_bios_setting_set_type(FuBiosSettings *self, FwupdBiosSetting *attr, GError **
/* lenovo thinklmi seems to be missing it even though it's mandatory :/ */
if (!fu_bios_setting_get_key(attr, "type", &data, &error_key)) {
-#if GLIB_CHECK_VERSION(2, 64, 0)
+#if GLIB_CHECK_VERSION(2, 64, 0) && !defined(SUPPORTED_BUILD)
g_warning_once("KERNEL BUG: 'type' attribute not exported: (%s)",
error_key->message);
#else
diff --git a/libfwupdplugin/fu-self-test.c b/libfwupdplugin/fu-self-test.c
index c105fa271..c670b3a80 100644
--- a/libfwupdplugin/fu-self-test.c
+++ b/libfwupdplugin/fu-self-test.c
@@ -3117,7 +3117,9 @@ fu_bios_settings_load_func(void)
test_dir = g_test_build_filename(G_TEST_DIST, "tests", "bios-attrs", "lenovo-p620", NULL);
(void)g_setenv("FWUPD_SYSFSFWATTRIBDIR", test_dir, TRUE);
+#if GLIB_CHECK_VERSION(2, 64, 0) && !defined(SUPPORTED_BUILD)
g_test_expect_message("FuBiosSettings", G_LOG_LEVEL_WARNING, "*BUG*");
+#endif
ret = fu_context_reload_bios_settings(ctx, &error);
g_assert_no_error(error);
g_assert_true(ret);
diff --git a/plugins/lenovo-thinklmi/fu-self-test.c b/plugins/lenovo-thinklmi/fu-self-test.c
index 4777a2ae1..9e20a8cf5 100644
--- a/plugins/lenovo-thinklmi/fu-self-test.c
+++ b/plugins/lenovo-thinklmi/fu-self-test.c
@@ -39,7 +39,9 @@ fu_test_self_init(FuTest *self, GError **error_global)
g_autoptr(FuProgress) progress = fu_progress_new(G_STRLOC);
g_autoptr(GError) error = NULL;
+#if GLIB_CHECK_VERSION(2, 64, 0) && !defined(SUPPORTED_BUILD)
g_test_expect_message("FuBiosSettings", G_LOG_LEVEL_WARNING, "*KERNEL*BUG*");
+#endif
ret = fu_context_load_quirks(ctx,
FU_QUIRKS_LOAD_FLAG_NO_CACHE | FU_QUIRKS_LOAD_FLAG_NO_VERIFY,
--
2.39.1

View File

@ -1,28 +0,0 @@
From af5fb429c8e726d1d7455b2d0e5d4263edbd4290 Mon Sep 17 00:00:00 2001
From: Ivan Mikhanchuk <ivanmikh@pm.me>
Date: Tue, 24 Jan 2023 17:06:09 -0800
Subject: [PATCH] modem-manager: remove improper use of assert
FuSaharaLoader being NULL is normal for devices that only
support Firehose and don't use Sahara QDL port.
---
plugins/modem-manager/fu-sahara-loader.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/plugins/modem-manager/fu-sahara-loader.c b/plugins/modem-manager/fu-sahara-loader.c
index 89c620fbe..78f24036f 100644
--- a/plugins/modem-manager/fu-sahara-loader.c
+++ b/plugins/modem-manager/fu-sahara-loader.c
@@ -206,7 +206,8 @@ fu_sahara_loader_close(FuSaharaLoader *self, GError **error)
gboolean
fu_sahara_loader_qdl_is_open(FuSaharaLoader *self)
{
- g_return_val_if_fail(self != NULL, FALSE);
+ if (self == NULL)
+ return FALSE;
return fu_usb_device_is_open(self->usb_device);
}
--
2.39.1

View File

@ -1,24 +0,0 @@
From 7f427d567d497048772bad59e098528605e563ce Mon Sep 17 00:00:00 2001
From: Richard Hughes <richard@hughsie.com>
Date: Mon, 23 Jan 2023 11:22:43 +0000
Subject: [PATCH] trivial: Fix build fix when using ppc64le system
---
src/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/meson.build b/src/meson.build
index b9f6736f2..f3ca734ee 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -197,6 +197,7 @@ plugins_hdr = custom_target('fwupd-generate-plugins-header',
fwupdengine = library(
'fwupdengine',
resources_src,
+ plugins_hdr,
sources: fwupd_engine_src,
install: true,
install_rpath: libdir_pkg,
--
2.39.1

View File

@ -1,46 +0,0 @@
From 8076090a000d4adde59fddeadb17a6f769993d1e Mon Sep 17 00:00:00 2001
From: Jason Gerecke <killertofu@gmail.com>
Date: Tue, 17 Jan 2023 14:24:14 -0800
Subject: [PATCH] wacom-usb: Retry set_report on failure
Sometimes the flash process will randomly hang and time-out when sending
data to the device. We currently do not use any retry logic, so if this
happens the flash attempt is treated as a failure. This can be a source
of worry or frustration, especially if subsequent manual retries fail
in a similar way.
Adding FU_HID_DEVICE_FLAG_RETRY_FAILURE to the list of flags used when
calling fu_hid_device_set_report allows fwupd to try sending a block
multiple times if such a time-out (or other error) occurs. This makes
the flash process less prone to failure.
Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
---
plugins/wacom-usb/fu-wac-device.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/plugins/wacom-usb/fu-wac-device.c b/plugins/wacom-usb/fu-wac-device.c
index 9162d19a9..714761b1e 100644
--- a/plugins/wacom-usb/fu-wac-device.c
+++ b/plugins/wacom-usb/fu-wac-device.c
@@ -182,7 +182,8 @@ fu_wac_device_set_feature_report(FuWacDevice *self,
buf,
bufsz,
FU_WAC_DEVICE_TIMEOUT,
- flags | FU_HID_DEVICE_FLAG_IS_FEATURE,
+ flags | FU_HID_DEVICE_FLAG_IS_FEATURE |
+ FU_HID_DEVICE_FLAG_RETRY_FAILURE,
error);
}
@@ -920,6 +921,7 @@ fu_wac_device_init(FuWacDevice *self)
fu_device_set_install_duration(FU_DEVICE(self), 10);
fu_device_set_remove_delay(FU_DEVICE(self), FU_DEVICE_REMOVE_DELAY_RE_ENUMERATE);
fu_device_set_firmware_gtype(FU_DEVICE(self), FU_TYPE_WAC_FIRMWARE);
+ fu_device_retry_set_delay(FU_DEVICE(self), 30); /* ms */
}
static void
--
2.39.1

View File

@ -53,19 +53,13 @@
Summary: Firmware update daemon
Name: fwupd
Version: 1.8.10
Release: 2%{?dist}
Version: 1.8.16
Release: 1%{?dist}
License: LGPLv2+
URL: https://github.com/fwupd/fwupd
Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz
Source2: http://people.freedesktop.org/~hughsient/releases/fwupd-efi-1.4.tar.xz
Patch1: 0001-trivial-Fix-build-fix-when-using-ppc64le-system.patch
Patch2: 0001-Only-include-the-attribute-not-exported-warning-on-d.patch
Patch3: 0001-Do-not-make-any-of-the-HWIDs-setup-failures-fatal.patch
Patch4: 0001-modem-manager-remove-improper-use-of-assert.patch
Patch5: 0001-wacom-usb-Retry-set_report-on-failure.patch
Patch101: 0001-generate_binary-Add-NX-COMPAT-flag-manually-when-gen.patch
Source10: http://people.redhat.com/rhughes/dbx/DBXUpdate-20100307-x64.cab
@ -78,6 +72,9 @@ Source16: http://people.redhat.com/rhughes/dbx/DBXUpdate-20210429-x64.cab
Source17: http://people.redhat.com/rhughes/dbx/DBXUpdate-20220812-aa64.cab
Source18: http://people.redhat.com/rhughes/dbx/DBXUpdate-20220812-ia32.cab
Source19: http://people.redhat.com/rhughes/dbx/DBXUpdate-20220812-x64.cab
Source20: http://people.redhat.com/rhughes/dbx/DBXUpdate-20230509-aa64.cab
Source21: http://people.redhat.com/rhughes/dbx/DBXUpdate-20230509-ia32.cab
Source22: http://people.redhat.com/rhughes/dbx/DBXUpdate-20230509-x64.cab
# these are numbered high just to keep them wildly away from colliding with
# the real package sources, in order to reduce churn.
@ -208,11 +205,6 @@ can be flashed using flashrom. It is probably not required on servers.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
mkdir -p subprojects/fwupd-efi
tar xfvs %{SOURCE2} -C subprojects/fwupd-efi --strip-components=1
@ -279,6 +271,7 @@ cd -
-Dplugin_modem_manager=disabled \
%endif
-Dman=true \
-Dcompat_cli=true \
-Dbluez=disabled \
-Dcbor=disabled \
-Dplugin_android_boot=disabled \
@ -304,7 +297,10 @@ cd -
# on RHEL the LVFS is disabled by default
mkdir -p %{buildroot}/%{_datadir}/dbxtool
install %{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} %{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} %{buildroot}/%{_datadir}/dbxtool
install \
%{SOURCE10} %{SOURCE11} %{SOURCE12} %{SOURCE13} %{SOURCE14} %{SOURCE15} \
%{SOURCE16} %{SOURCE17} %{SOURCE18} %{SOURCE19} %{SOURCE20} %{SOURCE21} %{SOURCE22} \
%{buildroot}/%{_datadir}/dbxtool
# sign fwupd.efi loader
%ifarch x86_64
@ -340,7 +336,7 @@ done
%systemd_postun_with_restart pesign.service
%files -f %{name}.lang
%doc README.md AUTHORS
%doc README.md
%license COPYING
%config(noreplace)%{_sysconfdir}/fwupd/daemon.conf
%if 0%{?have_uefi}
@ -390,7 +386,6 @@ done
%{_datadir}/dbus-1/system.d/org.freedesktop.fwupd.conf
%{_datadir}/bash-completion/completions/fwupdmgr
%{_datadir}/bash-completion/completions/fwupdtool
%{_datadir}/bash-completion/completions/fwupdagent
%{_datadir}/fish/vendor_completions.d/fwupdmgr.fish
%{_datadir}/fwupd/metainfo/org.freedesktop.fwupd*.metainfo.xml
%if 0%{?have_dell}
@ -439,7 +434,7 @@ done
%dir %{_datadir}/fwupd/quirks.d
%{_datadir}/fwupd/quirks.d/builtin.quirk.gz
%if 0%{?have_uefi}
%{_sysconfdir}/grub.d/35_fwupd
%config(noreplace)%{_sysconfdir}/grub.d/35_fwupd
%endif
%{_libdir}/libfwupd.so.2*
%{_libdir}/girepository-1.0/Fwupd-2.0.typelib
@ -486,13 +481,16 @@ done
%endif
%{_datadir}/installed-tests/fwupd/chassis_type
%{_datadir}/installed-tests/fwupd/sys_vendor
%{_datadir}/fwupd/device-tests/*.json
%{_libexecdir}/installed-tests/fwupd/*
%dir %{_sysconfdir}/fwupd/remotes.d
%config(noreplace)%{_sysconfdir}/fwupd/remotes.d/fwupd-tests.conf
%endif
%changelog
* Fri Jun 09 2023 Richard Hughes <richard@hughsie.com> 1.8.16-1
- Update to latest stable upstream version.
- Resolves: rhbz#2209944
* Thu Feb 02 2023 Richard Hughes <richard@hughsie.com> 1.8.10-2
- Rebuild because distrobaker did entirely the wrong thing.
- Resolves: rhbz#2128384, needed for rhbz#2119436 and rhbz#2128384

View File

@ -1,4 +1,4 @@
SHA512 (fwupd-1.8.10.tar.xz) = 8437cdc93d553e42d33a037d14fcb09bb65b4c4d7d60add6a90c84dce0845097fe96005a1f6a9da7daf89df5b7dcd1b43a9fbba666cd18129b67ebe1c3ce7c97
SHA512 (fwupd-1.8.16.tar.xz) = 25dd773ca703ab6ad11eb042948bb719c2f3974a2e89ac8f9ae524384bce2c8a3d41e5754a5e0ab5595c14720737d53921dbf2859dd33519dcc480d227aac6c6
SHA512 (fwupd-efi-1.4.tar.xz) = c330409861a8c1e332a0d4fd49c54ef2c5bf7cdaca99d14de39b50fb35f0c490e9f7f7a4c9dd48181bd509cd358c43eb23659536aea93408c1fefb47629e4991
SHA512 (DBXUpdate-20100307-x64.cab) = f8ad56cf015f4cdc5c305856ff1f7a8589c25a2a671708c61883f427f38eb9b6a7abd3f2c8d79ef9d5076222255e42585917f8705a2a4b13f860bad4e02ec409
SHA512 (DBXUpdate-20140413-x64.cab) = 75771876a2309fa8ca083c2e76520173d434229b7cacf1e7636bd9b1bc4f871d745c348b9792bfb65fd9f40ef54c25bb427b1431151e817e7050b7829456731a
@ -10,3 +10,6 @@ SHA512 (DBXUpdate-20210429-x64.cab) = 7bc5e7780d105da89da367fbde7c33427bed6c3775
SHA512 (DBXUpdate-20220812-aa64.cab) = 422ebd0b9d15a26ad12b98798229615a1f5e272a95993934de0cd9d4e4e75589b41eae6366b52b4e25e8766bd7cf74f95d220b719649b1f3864603e46c18c193
SHA512 (DBXUpdate-20220812-ia32.cab) = 09094cc747f865e21fc815199d6ad5b6d3b1c9e19621497e3fe7cdfc4b96e144e721673bdff9ea6204dd465e8a8e2da1cc2b4a4badfd1f4f82c54eace11acb42
SHA512 (DBXUpdate-20220812-x64.cab) = 03dde66a31241ccaa562c57bd9b6b824f2a6b5a1d10affe32ee5a0452056609c981f8f7633bfc65fd0c7da79455b071dd9e02b6af7c880fb1c4a6ffdf577bcdc
SHA512 (DBXUpdate-20230509-aa64.cab) = 259f2373d6ab4cd031fe8b993825ba4cf922306afb3da1617d7b4e9d4ac918018b463135f58ace884a2ceec01789f3b2b31aaf63e63501503e4efbcf46ce567b
SHA512 (DBXUpdate-20230509-ia32.cab) = e9983039fa5283bf8357c75874842d06ac76a36e90c76406ab864a2b76f557f9649e84be3eb20ab473486cd60a08847ece0ef4015145357969067561338a7977
SHA512 (DBXUpdate-20230509-x64.cab) = b2893b431adc3b155335a07e035979a2bf08b7c06975bde7c5561f5e5c1d8ed55f337e7a4782e6ad5c4c50c286cf474a1be356991784c88c23315c467fca30bb