Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/fwupd.git#4508dc897157d08c217137f7077d17c18a05bb88
This commit is contained in:
parent
e799affee6
commit
61364ae4e8
1
.gitignore
vendored
1
.gitignore
vendored
@ -70,3 +70,4 @@
|
||||
/fwupd-1.4.6.tar.xz
|
||||
/fwupd-1.5.0.tar.xz
|
||||
/fwupd-1.5.1.tar.xz
|
||||
/fwupd-1.5.2.tar.xz
|
||||
|
@ -1,526 +0,0 @@
|
||||
From 1a14d2be009ada386eba65ccd78feaa27853f109 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Hughes <richard@hughsie.com>
|
||||
Date: Thu, 19 Nov 2020 13:19:54 +0000
|
||||
Subject: [PATCH] Fix sync method when called from threads without a context
|
||||
|
||||
Set the thread-default context for the current thread before performing the
|
||||
async operation.
|
||||
|
||||
Hopefully fixes https://github.com/fwupd/fwupd/issues/2600
|
||||
---
|
||||
libfwupd/fwupd-client-sync.c | 80 +++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 79 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libfwupd/fwupd-client-sync.c b/libfwupd/fwupd-client-sync.c
|
||||
index 56068f6b..dab0a751 100644
|
||||
--- a/libfwupd/fwupd-client-sync.c
|
||||
+++ b/libfwupd/fwupd-client-sync.c
|
||||
@@ -21,6 +21,7 @@ typedef struct {
|
||||
gchar *str;
|
||||
GError *error;
|
||||
GPtrArray *array;
|
||||
+ GMainContext *context;
|
||||
GMainLoop *loop;
|
||||
GVariant *val;
|
||||
GHashTable *hash;
|
||||
@@ -45,6 +46,7 @@ fwupd_client_helper_free (FwupdClientHelper *helper)
|
||||
g_object_unref (helper->device);
|
||||
g_free (helper->str);
|
||||
g_main_loop_unref (helper->loop);
|
||||
+ g_main_context_unref (helper->context);
|
||||
g_free (helper);
|
||||
}
|
||||
|
||||
@@ -53,7 +55,8 @@ fwupd_client_helper_new (void)
|
||||
{
|
||||
FwupdClientHelper *helper;
|
||||
helper = g_new0 (FwupdClientHelper, 1);
|
||||
- helper->loop = g_main_loop_new (NULL, FALSE);
|
||||
+ helper->context = g_main_context_new ();
|
||||
+ helper->loop = g_main_loop_new (helper->context, FALSE);
|
||||
return helper;
|
||||
}
|
||||
|
||||
@@ -94,8 +97,10 @@ fwupd_client_connect (FwupdClient *self, GCancellable *cancellable, GError **err
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_connect_async (self, cancellable, fwupd_client_connect_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -137,9 +142,11 @@ fwupd_client_get_devices (FwupdClient *self, GCancellable *cancellable, GError *
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_devices_async (self, cancellable,
|
||||
fwupd_client_get_devices_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -181,9 +188,11 @@ fwupd_client_get_plugins (FwupdClient *self, GCancellable *cancellable, GError *
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_plugins_async (self, cancellable,
|
||||
fwupd_client_get_plugins_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -225,9 +234,11 @@ fwupd_client_get_history (FwupdClient *self, GCancellable *cancellable, GError *
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_history_async (self, cancellable,
|
||||
fwupd_client_get_history_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -272,9 +283,11 @@ fwupd_client_get_releases (FwupdClient *self, const gchar *device_id,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_releases_async (self, device_id, cancellable,
|
||||
fwupd_client_get_releases_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -319,9 +332,11 @@ fwupd_client_get_downgrades (FwupdClient *self, const gchar *device_id,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_downgrades_async (self, device_id, cancellable,
|
||||
fwupd_client_get_downgrades_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -366,9 +381,11 @@ fwupd_client_get_upgrades (FwupdClient *self, const gchar *device_id,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_upgrades_async (self, device_id, cancellable,
|
||||
fwupd_client_get_upgrades_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -415,11 +432,13 @@ fwupd_client_get_details_bytes (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_details_bytes_async (self, bytes,
|
||||
cancellable,
|
||||
fwupd_client_get_details_bytes_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -473,10 +492,12 @@ fwupd_client_get_details (FwupdClient *self,
|
||||
istr = fwupd_unix_input_stream_from_fn (filename, error);
|
||||
if (istr == NULL)
|
||||
return NULL;
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_details_stream_async (self, istr, cancellable,
|
||||
fwupd_client_get_details_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -530,10 +551,12 @@ fwupd_client_verify (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_verify_async (self, device_id, cancellable,
|
||||
fwupd_client_verify_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -580,10 +603,12 @@ fwupd_client_verify_update (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_verify_update_async (self, device_id, cancellable,
|
||||
fwupd_client_verify_update_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -630,10 +655,12 @@ fwupd_client_unlock (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_unlock_async (self, device_id, cancellable,
|
||||
fwupd_client_unlock_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -683,11 +710,13 @@ fwupd_client_modify_config (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_modify_config_async (self, key, value,
|
||||
cancellable,
|
||||
fwupd_client_modify_config_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -735,11 +764,13 @@ fwupd_client_activate (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_activate_async (self, device_id,
|
||||
cancellable,
|
||||
fwupd_client_activate_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -786,11 +817,13 @@ fwupd_client_clear_results (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_clear_results_async (self, device_id,
|
||||
cancellable,
|
||||
fwupd_client_clear_results_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -835,9 +868,11 @@ fwupd_client_get_results (FwupdClient *self, const gchar *device_id,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_results_async (self, device_id, cancellable,
|
||||
fwupd_client_get_results_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->device == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -881,10 +916,12 @@ fwupd_client_get_host_security_attrs (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_host_security_attrs_async (self, cancellable,
|
||||
fwupd_client_get_host_security_attrs_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -931,10 +968,12 @@ fwupd_client_get_device_by_id (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_device_by_id_async (self, device_id, cancellable,
|
||||
fwupd_client_get_device_by_id_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->device == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -980,10 +1019,12 @@ fwupd_client_get_devices_by_guid (FwupdClient *self, const gchar *guid,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_devices_by_guid_async (self, guid, cancellable,
|
||||
fwupd_client_get_devices_by_guid_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1044,11 +1085,13 @@ fwupd_client_install (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_install_stream_async (self, device_id, istr, filename,
|
||||
install_flags, cancellable,
|
||||
fwupd_client_install_fd_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1107,11 +1150,13 @@ fwupd_client_install_bytes (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_install_bytes_async (self, device_id, bytes, install_flags,
|
||||
cancellable,
|
||||
fwupd_client_install_bytes_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1162,11 +1207,13 @@ fwupd_client_install_release (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_install_release_async (self, device, release,
|
||||
install_flags, cancellable,
|
||||
fwupd_client_install_release_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1236,10 +1283,12 @@ fwupd_client_update_metadata (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_update_metadata_stream_async (self, remote_id, istr, istr_sig, cancellable,
|
||||
fwupd_client_update_metadata_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1304,11 +1353,13 @@ fwupd_client_update_metadata_bytes (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_update_metadata_bytes_async (self, remote_id, metadata, signature,
|
||||
cancellable,
|
||||
fwupd_client_update_metadata_bytes_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1353,10 +1404,13 @@ fwupd_client_refresh_remote (FwupdClient *self,
|
||||
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||
|
||||
+ /* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_refresh_remote_async (self, remote, cancellable,
|
||||
fwupd_client_refresh_remote_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1411,11 +1465,13 @@ fwupd_client_modify_remote (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_modify_remote_async (self, remote_id, key, value,
|
||||
cancellable,
|
||||
fwupd_client_modify_remote_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1459,10 +1515,12 @@ fwupd_client_get_report_metadata (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_report_metadata_async (self, cancellable,
|
||||
fwupd_client_get_report_metadata_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->hash == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1518,11 +1576,13 @@ fwupd_client_modify_device (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_modify_device_async (self, device_id, key, value,
|
||||
cancellable,
|
||||
fwupd_client_modify_device_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1564,9 +1624,11 @@ fwupd_client_get_remotes (FwupdClient *self, GCancellable *cancellable, GError *
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_remotes_async (self, cancellable,
|
||||
fwupd_client_get_remotes_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1667,10 +1729,12 @@ fwupd_client_get_approved_firmware (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_approved_firmware_async (self, cancellable,
|
||||
fwupd_client_get_approved_firmware_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1722,10 +1786,12 @@ fwupd_client_set_approved_firmware (FwupdClient *self,
|
||||
g_ptr_array_add (array, g_strdup (checksums[i]));
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_set_approved_firmware_async (self, array, cancellable,
|
||||
fwupd_client_set_approved_firmware_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1770,10 +1836,12 @@ fwupd_client_get_blocked_firmware (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_get_blocked_firmware_async (self, cancellable,
|
||||
fwupd_client_get_blocked_firmware_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->array == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1829,10 +1897,12 @@ fwupd_client_set_blocked_firmware (FwupdClient *self,
|
||||
g_ptr_array_add (array, g_strdup (checksums[i]));
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_set_blocked_firmware_async (self, array, cancellable,
|
||||
fwupd_client_set_blocked_firmware_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1882,10 +1952,12 @@ fwupd_client_set_feature_flags (FwupdClient *self,
|
||||
return FALSE;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_set_feature_flags_async (self, feature_flags, cancellable,
|
||||
fwupd_client_set_feature_flags_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (!helper->ret) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return FALSE;
|
||||
@@ -1934,10 +2006,12 @@ fwupd_client_self_sign (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_self_sign_async (self, value, flags, cancellable,
|
||||
fwupd_client_self_sign_cb,
|
||||
helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->str == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -1988,9 +2062,11 @@ fwupd_client_download_bytes (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_download_bytes_async (self, url, flags, cancellable,
|
||||
fwupd_client_download_bytes_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->bytes == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
@@ -2095,9 +2171,11 @@ fwupd_client_upload_bytes (FwupdClient *self,
|
||||
return NULL;
|
||||
|
||||
/* call async version and run loop until complete */
|
||||
+ g_main_context_push_thread_default (helper->context);
|
||||
fwupd_client_upload_bytes_async (self, url, payload, signature, flags, cancellable,
|
||||
fwupd_client_upload_bytes_cb, helper);
|
||||
g_main_loop_run (helper->loop);
|
||||
+ g_main_context_pop_thread_default (helper->context);
|
||||
if (helper->bytes == NULL) {
|
||||
g_propagate_error (error, g_steal_pointer (&helper->error));
|
||||
return NULL;
|
||||
--
|
||||
2.29.2
|
||||
|
79
fwupd.spec
79
fwupd.spec
@ -1,7 +1,7 @@
|
||||
%global glib2_version 2.45.8
|
||||
%global libxmlb_version 0.1.3
|
||||
%global libgusb_version 0.3.5
|
||||
%global libsoup_version 2.51.92
|
||||
%global libcurl_version 7.62.0
|
||||
%global libjcat_version 0.1.0
|
||||
%global systemd_version 231
|
||||
%global json_glib_version 1.1.1
|
||||
@ -31,11 +31,6 @@
|
||||
%global have_msr 1
|
||||
%endif
|
||||
|
||||
# redfish is only available on this arch
|
||||
%ifarch x86_64
|
||||
%global have_redfish 1
|
||||
%endif
|
||||
|
||||
# libsmbios is only available on x86
|
||||
%ifarch x86_64
|
||||
%global have_dell 1
|
||||
@ -48,14 +43,11 @@
|
||||
|
||||
Summary: Firmware update daemon
|
||||
Name: fwupd
|
||||
Version: 1.5.1
|
||||
Release: 2%{?dist}
|
||||
Version: 1.5.2
|
||||
Release: 1%{?dist}
|
||||
License: LGPLv2+
|
||||
URL: https://github.com/fwupd/fwupd
|
||||
Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz
|
||||
# Backport of https://github.com/fwupd/fwupd/pull/2605
|
||||
# Fixes https://github.com/fwupd/fwupd/issues/2600
|
||||
Patch0: 0001-Fix-sync-method-when-called-from-threads-without-a-c.patch
|
||||
|
||||
BuildRequires: gettext
|
||||
BuildRequires: glib2-devel >= %{glib2_version}
|
||||
@ -63,11 +55,12 @@ BuildRequires: libxmlb-devel >= %{libxmlb_version}
|
||||
BuildRequires: libgcab1-devel
|
||||
BuildRequires: libgudev1-devel
|
||||
BuildRequires: libgusb-devel >= %{libgusb_version}
|
||||
BuildRequires: libsoup-devel >= %{libsoup_version}
|
||||
BuildRequires: libcurl-devel >= %{libcurl_version}
|
||||
BuildRequires: libjcat-devel >= %{libjcat_version}
|
||||
BuildRequires: polkit-devel >= 0.103
|
||||
BuildRequires: sqlite-devel
|
||||
BuildRequires: systemd >= %{systemd_version}
|
||||
BuildRequires: systemd-devel
|
||||
BuildRequires: libarchive-devel
|
||||
BuildRequires: gobject-introspection-devel
|
||||
BuildRequires: gcab
|
||||
@ -94,10 +87,6 @@ BuildRequires: ModemManager-glib-devel >= 1.10.0
|
||||
BuildRequires: libqmi-devel >= 1.22.0
|
||||
%endif
|
||||
|
||||
%if 0%{?have_redfish}
|
||||
BuildRequires: efivar-devel >= 33
|
||||
%endif
|
||||
|
||||
%if 0%{?have_uefi}
|
||||
BuildRequires: efivar-devel >= 33
|
||||
BuildRequires: python3 python3-cairo python3-gobject python3-pillow
|
||||
@ -123,7 +112,6 @@ Requires(postun): systemd
|
||||
Requires: glib2%{?_isa} >= %{glib2_version}
|
||||
Requires: libxmlb%{?_isa} >= %{libxmlb_version}
|
||||
Requires: libgusb%{?_isa} >= %{libgusb_version}
|
||||
Requires: libsoup%{?_isa} >= %{libsoup_version}
|
||||
Requires: bubblewrap
|
||||
Requires: shared-mime-info
|
||||
|
||||
@ -209,18 +197,11 @@ can be flashed using flashrom. It is probably not required on servers.
|
||||
-Dplugin_msr=false \
|
||||
%endif
|
||||
-Dplugin_thunderbolt=true \
|
||||
%if 0%{?have_redfish}
|
||||
-Dplugin_redfish=true \
|
||||
%else
|
||||
-Dplugin_redfish=false \
|
||||
%endif
|
||||
%if 0%{?have_uefi}
|
||||
-Dplugin_uefi=true \
|
||||
-Dplugin_nvme=true \
|
||||
-Dtpm=true \
|
||||
%else
|
||||
-Dplugin_uefi=false \
|
||||
-Dplugin_nvme=false \
|
||||
-Dtpm=false \
|
||||
%endif
|
||||
%if 0%{?have_dell}
|
||||
@ -235,7 +216,8 @@ can be flashed using flashrom. It is probably not required on servers.
|
||||
%else
|
||||
-Dplugin_modem_manager=false \
|
||||
%endif
|
||||
-Dman=true
|
||||
-Dman=true \
|
||||
-Dsupported_build=true
|
||||
|
||||
%meson_build
|
||||
|
||||
@ -288,9 +270,7 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%if 0%{?have_uefi}
|
||||
%config(noreplace)%{_sysconfdir}/fwupd/uefi.conf
|
||||
%endif
|
||||
%if 0%{?have_redfish}
|
||||
%config(noreplace)%{_sysconfdir}/fwupd/redfish.conf
|
||||
%endif
|
||||
%config(noreplace)%{_sysconfdir}/fwupd/thunderbolt.conf
|
||||
%dir %{_libexecdir}/fwupd
|
||||
%{_libexecdir}/fwupd/fwupd
|
||||
@ -323,9 +303,9 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%config(noreplace)%{_sysconfdir}/pki/fwupd
|
||||
%{_sysconfdir}/pki/fwupd-metadata
|
||||
%if 0%{?have_msr}
|
||||
%{_sysconfdir}/modules-load.d/fwupd-msr.conf
|
||||
/usr/lib/modules-load.d/fwupd-msr.conf
|
||||
%endif
|
||||
%{_sysconfdir}/modules-load.d/fwupd-platform-integrity.conf
|
||||
/usr/lib/modules-load.d/fwupd-platform-integrity.conf
|
||||
%{_datadir}/dbus-1/system.d/org.freedesktop.fwupd.conf
|
||||
%{_datadir}/bash-completion/completions/fwupdmgr
|
||||
%{_datadir}/bash-completion/completions/fwupdtool
|
||||
@ -340,16 +320,16 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%{_datadir}/polkit-1/actions/org.freedesktop.fwupd.policy
|
||||
%{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules
|
||||
%{_datadir}/dbus-1/system-services/org.freedesktop.fwupd.service
|
||||
%{_datadir}/man/man1/fwupdtool.1.gz
|
||||
%{_datadir}/man/man1/fwupdagent.1.gz
|
||||
%{_datadir}/man/man1/dfu-tool.1.gz
|
||||
%{_mandir}/man1/fwupdtool.1*
|
||||
%{_mandir}/man1/fwupdagent.1*
|
||||
%{_mandir}/man1/dfu-tool.1*
|
||||
%if 0%{?have_uefi}
|
||||
%{_datadir}/man/man1/dbxtool.1.gz
|
||||
%{_mandir}/man1/dbxtool.*
|
||||
%endif
|
||||
%{_datadir}/man/man1/fwupdmgr.1.gz
|
||||
%{_mandir}/man1/fwupdmgr.1*
|
||||
%if 0%{?have_uefi}
|
||||
%{_datadir}/man/man1/fwupdate.1.gz
|
||||
%{_datadir}/man/man1/fwupdtpmevlog.1.gz
|
||||
%{_mandir}/man1/fwupdate.1*
|
||||
%{_mandir}/man1/fwupdtpmevlog.1*
|
||||
%endif
|
||||
%{_datadir}/metainfo/org.freedesktop.fwupd.metainfo.xml
|
||||
%{_datadir}/icons/hicolor/scalable/apps/org.freedesktop.fwupd.svg
|
||||
@ -380,7 +360,6 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_amt.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_ata.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_bcm57xx.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_bios.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_ccgx.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_colorhug.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_coreboot.so
|
||||
@ -399,6 +378,7 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_ep963x.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_fastboot.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_fresco_pd.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_hailuck.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_iommu.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_jabra.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_linux_lockdown.so
|
||||
@ -409,16 +389,12 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_msr.so
|
||||
%endif
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_nitrokey.so
|
||||
%if 0%{?have_uefi}
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_nvme.so
|
||||
%endif
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_optionrom.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_pci_bcr.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_pci_mei.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_platform_integrity.so
|
||||
%if 0%{?have_redfish}
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_redfish.so
|
||||
%endif
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hid.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hub.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_solokey.so
|
||||
@ -439,6 +415,7 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%if 0%{?have_uefi}
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_tpm.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_tpm_eventlog.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_bios.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_uefi.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_dbx.so
|
||||
%{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_recovery.so
|
||||
@ -487,6 +464,26 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Nov 23 2020 Richard Hughes <richard@hughsie.com> 1.5.2-1
|
||||
- New upstream release
|
||||
- Add a flag to indicate if packages are supported
|
||||
- Add a plugin for the Pinebook Pro laptop
|
||||
- Allow components to set the icon from the metadata
|
||||
- Fall back to FAT32 internal partitions for detecting ESP
|
||||
- Fix detection of ColorHug version on older firmware versions
|
||||
- Fix reading BCM57XX vendor and device ids from firmware
|
||||
- Fix replugging the MSP430 device
|
||||
- Fix sync method when called from threads without a context
|
||||
- Ignore an invalid vendor-id when adding releases for display
|
||||
- Improve synaptics-mst reliability when writing data
|
||||
- Install modules-load configs in the correct directory
|
||||
- Notify the service manager when idle-quitting
|
||||
- Only download the remote metadata as required
|
||||
- Remove HSI update and attestation suffixes
|
||||
- Restore recognizing GPG and PKCS7 signature types in libfwupd
|
||||
- Set the SMBIOS chassis type to portable if a DT battery exists
|
||||
- Switch from libsoup to libcurl for downloading data
|
||||
|
||||
* Fri Nov 20 2020 Adam Williamson <awilliam@redhat.com> - 1.5.1-2
|
||||
- Backport #2605 for #2600, seems to help RHBZ #1896540
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (fwupd-1.5.1.tar.xz) = 9cd8738403179e48154392061e462d877f299f7ca7b5fac3d03960af505a16c044beccdf4196d54f6c6f3868e98abb561789fb7e3ff600d6253dd2c6b0e434a0
|
||||
SHA512 (fwupd-1.5.2.tar.xz) = 5014d445a81510b8bc41ba7771fac0632c0205493c63312495e19a6b90f47cdf93e737288a552414ce60b38c515faf39e2c876c8cfa0e85da8f837fd45f915b4
|
||||
|
Loading…
Reference in New Issue
Block a user