New upstream release
This commit is contained in:
parent
2874bb5cc7
commit
cc78c5cf5a
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
|
||||
|
77
fwupd.spec
77
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
|
||||
@ -416,9 +396,7 @@ mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd
|
||||
%{_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 +417,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 +466,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