import gnome-settings-daemon-3.32.0-9.el8
This commit is contained in:
parent
d80a9fbebd
commit
9582f7df60
@ -0,0 +1,58 @@
|
|||||||
|
From a1c2685bc6b255f22b6ce4645c001d428cb67907 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marek Kasik <mkasik@redhat.com>
|
||||||
|
Date: Wed, 22 May 2019 14:56:42 +0200
|
||||||
|
Subject: [PATCH] smartcard: Cancel cancellable when stopping
|
||||||
|
|
||||||
|
self->cancellable in GsdSmartcardManager is not cancelled
|
||||||
|
at gsd_smartcard_manager_stop() and hence some callbacks are
|
||||||
|
still called after unload_nss() which clears SECMODListLock
|
||||||
|
which is used by SECMOD_GetReadLock() / SECMOD_ReleaseReadLock().
|
||||||
|
|
||||||
|
This leads to crashes in NSSRWLock_LockRead_Util() and
|
||||||
|
NSSRWLock_UnlockRead_Util() probably.
|
||||||
|
|
||||||
|
Also check for return value of g_cancellable_connect()
|
||||||
|
and initialize pointer to PK11SlotInfo.
|
||||||
|
|
||||||
|
See https://bugzilla.redhat.com/show_bug.cgi?id=1646359,
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1688791 and
|
||||||
|
their duplicates for additional info.
|
||||||
|
---
|
||||||
|
plugins/smartcard/gsd-smartcard-manager.c | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/smartcard/gsd-smartcard-manager.c b/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
index 014c17be..da1e0d6d 100644
|
||||||
|
--- a/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
+++ b/plugins/smartcard/gsd-smartcard-manager.c
|
||||||
|
@@ -184,7 +184,7 @@
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
GsdSmartcardManagerPrivate *priv = self->priv;
|
||||||
|
- PK11SlotInfo *card, *old_card;
|
||||||
|
+ PK11SlotInfo *card = NULL, *old_card;
|
||||||
|
CK_SLOT_ID slot_id;
|
||||||
|
gulong handler_id;
|
||||||
|
int old_slot_series = -1, slot_series;
|
||||||
|
@@ -190,7 +190,8 @@ watch_one_event_from_driver (GsdSmartcardManager *self,
|
||||||
|
operation,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
- card = SECMOD_WaitForAnyTokenEvent (operation->driver, 0, PR_SecondsToInterval (1));
|
||||||
|
+ if (handler_id != 0)
|
||||||
|
+ card = SECMOD_WaitForAnyTokenEvent (operation->driver, 0, PR_SecondsToInterval (1));
|
||||||
|
|
||||||
|
g_cancellable_disconnect (cancellable, handler_id);
|
||||||
|
|
||||||
|
@@ -773,6 +774,8 @@ gsd_smartcard_manager_stop (GsdSmartcardManager *self)
|
||||||
|
|
||||||
|
g_debug ("Stopping smartcard manager");
|
||||||
|
|
||||||
|
+ g_cancellable_cancel (priv->cancellable);
|
||||||
|
+
|
||||||
|
unload_nss (self);
|
||||||
|
|
||||||
|
g_clear_object (&priv->settings);
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
@ -0,0 +1,249 @@
|
|||||||
|
From ca35861a54b9f9413e4db8486a2786ba771a0271 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kalev Lember <klember@redhat.com>
|
||||||
|
Date: Thu, 27 Jun 2019 16:12:00 +0200
|
||||||
|
Subject: [PATCH] subman: Add InstalledProducts dbus property for g-c-c
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/subman/gsd-subscription-manager.c | 135 ++++++++++++++++++++++
|
||||||
|
1 file changed, 135 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/subman/gsd-subscription-manager.c b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
index 08b13fa6..a8c18a26 100644
|
||||||
|
--- a/plugins/subman/gsd-subscription-manager.c
|
||||||
|
+++ b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019 Richard Hughes <richard@hughsie.com>
|
||||||
|
+ * Copyright (C) 2019 Kalev Lember <klember@redhat.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@@ -44,6 +45,7 @@ static const gchar introspection_xml[] =
|
||||||
|
" <arg type='a{sv}' name='options' direction='in'/>"
|
||||||
|
" </method>"
|
||||||
|
" <method name='Unregister'/>"
|
||||||
|
+" <property name='InstalledProducts' type='aa{sv}' access='read'/>"
|
||||||
|
" <property name='SubscriptionStatus' type='u' access='read'/>"
|
||||||
|
" </interface>"
|
||||||
|
"</node>";
|
||||||
|
@@ -72,6 +74,7 @@ struct GsdSubscriptionManagerPrivate
|
||||||
|
GDBusProxy *proxies[_RHSM_INTERFACE_LAST];
|
||||||
|
const gchar *userlang; /* owned by GLib internally */
|
||||||
|
GHashTable *config; /* str:str */
|
||||||
|
+ GPtrArray *installed_products;
|
||||||
|
gchar *address;
|
||||||
|
|
||||||
|
GTimer *timer_last_notified;
|
||||||
|
@@ -92,6 +95,32 @@ static void gsd_subscription_manager_finalize (GObject *objec
|
||||||
|
|
||||||
|
G_DEFINE_TYPE (GsdSubscriptionManager, gsd_subscription_manager, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
+typedef struct
|
||||||
|
+{
|
||||||
|
+ gchar *product_name;
|
||||||
|
+ gchar *product_id;
|
||||||
|
+ gchar *version;
|
||||||
|
+ gchar *arch;
|
||||||
|
+ gchar *status;
|
||||||
|
+ gchar *starts;
|
||||||
|
+ gchar *ends;
|
||||||
|
+} ProductData;
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
+product_data_free (ProductData *product)
|
||||||
|
+{
|
||||||
|
+ g_free (product->product_name);
|
||||||
|
+ g_free (product->product_id);
|
||||||
|
+ g_free (product->version);
|
||||||
|
+ g_free (product->arch);
|
||||||
|
+ g_free (product->status);
|
||||||
|
+ g_free (product->starts);
|
||||||
|
+ g_free (product->ends);
|
||||||
|
+ g_free (product);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (ProductData, product_data_free);
|
||||||
|
+
|
||||||
|
static gpointer manager_object = NULL;
|
||||||
|
|
||||||
|
GQuark
|
||||||
|
@@ -120,6 +149,32 @@ _client_subscription_status_from_text (const gchar *status_txt)
|
||||||
|
return GSD_SUBMAN_SUBSCRIPTION_STATUS_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static GVariant *
|
||||||
|
+_make_installed_products_variant (GPtrArray *installed_products)
|
||||||
|
+{
|
||||||
|
+ GVariantBuilder builder;
|
||||||
|
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("aa{sv}"));
|
||||||
|
+
|
||||||
|
+ for (guint i = 0; i < installed_products->len; i++) {
|
||||||
|
+ ProductData *product = g_ptr_array_index (installed_products, i);
|
||||||
|
+ g_auto(GVariantDict) dict;
|
||||||
|
+
|
||||||
|
+ g_variant_dict_init (&dict, NULL);
|
||||||
|
+
|
||||||
|
+ g_variant_dict_insert (&dict, "product-name", "s", product->product_name);
|
||||||
|
+ g_variant_dict_insert (&dict, "product-id", "s", product->product_id);
|
||||||
|
+ g_variant_dict_insert (&dict, "version", "s", product->version);
|
||||||
|
+ g_variant_dict_insert (&dict, "arch", "s", product->arch);
|
||||||
|
+ g_variant_dict_insert (&dict, "status", "s", product->status);
|
||||||
|
+ g_variant_dict_insert (&dict, "starts", "s", product->starts);
|
||||||
|
+ g_variant_dict_insert (&dict, "ends", "s", product->ends);
|
||||||
|
+
|
||||||
|
+ g_variant_builder_add_value (&builder, g_variant_dict_end (&dict));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return g_variant_builder_end (&builder);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
_emit_property_changed (GsdSubscriptionManager *manager,
|
||||||
|
const gchar *property_name,
|
||||||
|
@@ -154,6 +209,69 @@ _emit_property_changed (GsdSubscriptionManager *manager,
|
||||||
|
g_variant_builder_clear (&invalidated_builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static gboolean
|
||||||
|
+_client_installed_products_update (GsdSubscriptionManager *manager, GError **error)
|
||||||
|
+{
|
||||||
|
+ GsdSubscriptionManagerPrivate *priv = manager->priv;
|
||||||
|
+ JsonNode *json_root;
|
||||||
|
+ JsonArray *json_products_array;
|
||||||
|
+ const gchar *json_txt = NULL;
|
||||||
|
+ g_autoptr(GVariant) val = NULL;
|
||||||
|
+ g_autoptr(JsonParser) json_parser = json_parser_new ();
|
||||||
|
+
|
||||||
|
+ val = g_dbus_proxy_call_sync (priv->proxies[_RHSM_INTERFACE_PRODUCTS],
|
||||||
|
+ "ListInstalledProducts",
|
||||||
|
+ g_variant_new ("(sa{sv}s)",
|
||||||
|
+ "" /* filter_string */,
|
||||||
|
+ NULL /* proxy_options */,
|
||||||
|
+ priv->userlang),
|
||||||
|
+ G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
+ -1, NULL, error);
|
||||||
|
+ if (val == NULL)
|
||||||
|
+ return FALSE;
|
||||||
|
+ g_variant_get (val, "(&s)", &json_txt);
|
||||||
|
+ g_debug ("Products.ListInstalledProducts JSON: %s", json_txt);
|
||||||
|
+ if (!json_parser_load_from_data (json_parser, json_txt, -1, error))
|
||||||
|
+ return FALSE;
|
||||||
|
+ json_root = json_parser_get_root (json_parser);
|
||||||
|
+ json_products_array = json_node_get_array (json_root);
|
||||||
|
+ if (json_products_array == NULL) {
|
||||||
|
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
|
||||||
|
+ "no InstalledProducts array in %s", json_txt);
|
||||||
|
+ return FALSE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ g_ptr_array_set_size (priv->installed_products, 0);
|
||||||
|
+
|
||||||
|
+ for (guint i = 0; i < json_array_get_length (json_products_array); i++) {
|
||||||
|
+ JsonArray *json_product = json_array_get_array_element (json_products_array, i);
|
||||||
|
+ g_autoptr(ProductData) product = g_new0 (ProductData, 1);
|
||||||
|
+
|
||||||
|
+ if (json_product == NULL)
|
||||||
|
+ continue;
|
||||||
|
+ if (json_array_get_length (json_product) < 8) {
|
||||||
|
+ g_debug ("Unexpected number of array elements in InstalledProducts JSON");
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ product->product_name = g_strdup (json_array_get_string_element (json_product, 0));
|
||||||
|
+ product->product_id = g_strdup (json_array_get_string_element (json_product, 1));
|
||||||
|
+ product->version = g_strdup (json_array_get_string_element (json_product, 2));
|
||||||
|
+ product->arch = g_strdup (json_array_get_string_element (json_product, 3));
|
||||||
|
+ product->status = g_strdup (json_array_get_string_element (json_product, 4));
|
||||||
|
+ product->starts = g_strdup (json_array_get_string_element (json_product, 6));
|
||||||
|
+ product->ends = g_strdup (json_array_get_string_element (json_product, 7));
|
||||||
|
+
|
||||||
|
+ g_ptr_array_add (priv->installed_products, g_steal_pointer (&product));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /* emit notification for g-c-c */
|
||||||
|
+ _emit_property_changed (manager, "InstalledProducts",
|
||||||
|
+ _make_installed_products_variant (priv->installed_products));
|
||||||
|
+
|
||||||
|
+ return TRUE;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static gboolean
|
||||||
|
_client_subscription_status_update (GsdSubscriptionManager *manager, GError **error)
|
||||||
|
{
|
||||||
|
@@ -450,6 +568,8 @@ _client_register_with_keys (GsdSubscriptionManager *manager,
|
||||||
|
return FALSE;
|
||||||
|
if (!_client_subscription_status_update (manager, error))
|
||||||
|
return FALSE;
|
||||||
|
+ if (!_client_installed_products_update (manager, error))
|
||||||
|
+ return FALSE;
|
||||||
|
_client_maybe__show_notification (manager);
|
||||||
|
|
||||||
|
/* success */
|
||||||
|
@@ -497,6 +617,8 @@ _client_register (GsdSubscriptionManager *manager,
|
||||||
|
return FALSE;
|
||||||
|
if (!_client_subscription_status_update (manager, error))
|
||||||
|
return FALSE;
|
||||||
|
+ if (!_client_installed_products_update (manager, error))
|
||||||
|
+ return FALSE;
|
||||||
|
_client_maybe__show_notification (manager);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
@@ -523,6 +645,8 @@ _client_unregister (GsdSubscriptionManager *manager, GError **error)
|
||||||
|
return FALSE;
|
||||||
|
if (!_client_subscription_status_update (manager, error))
|
||||||
|
return FALSE;
|
||||||
|
+ if (!_client_installed_products_update (manager, error))
|
||||||
|
+ return FALSE;
|
||||||
|
_client_maybe__show_notification (manager);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
@@ -575,6 +699,10 @@ _subman_proxy_signal_cb (GDBusProxy *proxy,
|
||||||
|
g_warning ("failed to update subscription status: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
+ if (!_client_installed_products_update (manager, &error)) {
|
||||||
|
+ g_warning ("failed to update installed products: %s", error->message);
|
||||||
|
+ g_clear_error (&error);
|
||||||
|
+ }
|
||||||
|
_client_maybe__show_notification (manager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -640,6 +768,8 @@ _client_load (GsdSubscriptionManager *manager, GError **error)
|
||||||
|
return FALSE;
|
||||||
|
if (!_client_subscription_status_update (manager, error))
|
||||||
|
return FALSE;
|
||||||
|
+ if (!_client_installed_products_update (manager, error))
|
||||||
|
+ return FALSE;
|
||||||
|
if (!_client_syspurpose_update (manager, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
@@ -703,6 +833,7 @@ gsd_subscription_manager_init (GsdSubscriptionManager *manager)
|
||||||
|
{
|
||||||
|
GsdSubscriptionManagerPrivate *priv = manager->priv = GSD_SUBSCRIPTION_MANAGER_GET_PRIVATE (manager);
|
||||||
|
|
||||||
|
+ priv->installed_products = g_ptr_array_new_with_free_func ((GDestroyNotify) product_data_free);
|
||||||
|
priv->timer_last_notified = g_timer_new ();
|
||||||
|
|
||||||
|
/* expired */
|
||||||
|
@@ -767,6 +898,7 @@ gsd_subscription_manager_finalize (GObject *object)
|
||||||
|
g_clear_object (&manager->priv->bus_cancellable);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ g_clear_pointer (&manager->priv->installed_products, g_ptr_array_unref);
|
||||||
|
g_clear_pointer (&manager->priv->introspection_data, g_dbus_node_info_unref);
|
||||||
|
g_clear_object (&manager->priv->connection);
|
||||||
|
g_clear_object (&manager->priv->notification_expired);
|
||||||
|
@@ -884,6 +1016,9 @@ handle_get_property (GDBusConnection *connection,
|
||||||
|
if (g_strcmp0 (property_name, "SubscriptionStatus") == 0)
|
||||||
|
return g_variant_new_uint32 (priv->subscription_status);
|
||||||
|
|
||||||
|
+ if (g_strcmp0 (property_name, "InstalledProducts") == 0)
|
||||||
|
+ return _make_installed_products_variant (priv->installed_products);
|
||||||
|
+
|
||||||
|
g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_FAILED,
|
||||||
|
"Failed to get property: %s", property_name);
|
||||||
|
return NULL;
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -1743,3 +1743,198 @@ diff -urNp gnome-settings-daemon-3.32.0.old/plugins/subman/README.md gnome-setti
|
|||||||
+=================
|
+=================
|
||||||
+
|
+
|
||||||
+Proxy servers are not supported, nor are custom host ports or prefixes.
|
+Proxy servers are not supported, nor are custom host ports or prefixes.
|
||||||
|
From b35d9c75a7d9f51b24b86461a16dde323be91c2b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Richard Hughes <richard@hughsie.com>
|
||||||
|
Date: Thu, 20 Jun 2019 15:14:29 +0100
|
||||||
|
Subject: [PATCH 1/2] f
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/subman/gsd-subscription-manager.c | 98 ++++++++++-------------
|
||||||
|
1 file changed, 41 insertions(+), 57 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/subman/gsd-subscription-manager.c b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
index 0f6466f8..37e53ed9 100644
|
||||||
|
--- a/plugins/subman/gsd-subscription-manager.c
|
||||||
|
+++ b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
@@ -74,7 +74,6 @@ struct GsdSubscriptionManagerPrivate
|
||||||
|
GHashTable *config; /* str:str */
|
||||||
|
gchar *address;
|
||||||
|
|
||||||
|
- guint check_registration_timeout_id;
|
||||||
|
GTimer *timer_last_notified;
|
||||||
|
NotifyNotification *notification_expired;
|
||||||
|
NotifyNotification *notification_registered;
|
||||||
|
@@ -121,6 +120,40 @@ _client_subscription_status_from_text (const gchar *status_txt)
|
||||||
|
return GSD_SUBMAN_SUBSCRIPTION_STATUS_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void
|
||||||
|
+_emit_property_changed (GsdSubscriptionManager *manager,
|
||||||
|
+ const gchar *property_name,
|
||||||
|
+ GVariant *property_value)
|
||||||
|
+{
|
||||||
|
+ GsdSubscriptionManagerPrivate *priv = manager->priv;
|
||||||
|
+ GVariantBuilder builder;
|
||||||
|
+ GVariantBuilder invalidated_builder;
|
||||||
|
+
|
||||||
|
+ /* not yet connected */
|
||||||
|
+ if (priv->connection == NULL)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ /* build the dict */
|
||||||
|
+ g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
|
||||||
|
+ g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
|
||||||
|
+ g_variant_builder_add (&builder,
|
||||||
|
+ "{sv}",
|
||||||
|
+ property_name,
|
||||||
|
+ property_value);
|
||||||
|
+ g_dbus_connection_emit_signal (priv->connection,
|
||||||
|
+ NULL,
|
||||||
|
+ GSD_SUBSCRIPTION_DBUS_PATH,
|
||||||
|
+ "org.freedesktop.DBus.Properties",
|
||||||
|
+ "PropertiesChanged",
|
||||||
|
+ g_variant_new ("(sa{sv}as)",
|
||||||
|
+ GSD_SUBSCRIPTION_DBUS_INTERFACE,
|
||||||
|
+ &builder,
|
||||||
|
+ &invalidated_builder),
|
||||||
|
+ NULL);
|
||||||
|
+ g_variant_builder_clear (&builder);
|
||||||
|
+ g_variant_builder_clear (&invalidated_builder);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static gboolean
|
||||||
|
_client_subscription_status_update (GsdSubscriptionManager *manager, GError **error)
|
||||||
|
{
|
||||||
|
@@ -159,6 +192,13 @@ _client_subscription_status_update (GsdSubscriptionManager *manager, GError **er
|
||||||
|
status_txt = json_object_get_string_member (json_obj, "status");
|
||||||
|
g_debug ("Entitlement.GetStatus: %s", status_txt);
|
||||||
|
priv->subscription_status = _client_subscription_status_from_text (status_txt);
|
||||||
|
+
|
||||||
|
+ /* enit notification for g-c-c */
|
||||||
|
+ if (priv->subscription_status != priv->subscription_status_last) {
|
||||||
|
+ _emit_property_changed (manager, "SubscriptionStatus",
|
||||||
|
+ g_variant_new_uint32 (priv->subscription_status));
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -635,40 +675,6 @@ gsd_subscription_manager_class_init (GsdSubscriptionManagerClass *klass)
|
||||||
|
g_type_class_add_private (klass, sizeof (GsdSubscriptionManagerPrivate));
|
||||||
|
}
|
||||||
|
|
||||||
|
-static void
|
||||||
|
-emit_property_changed (GsdSubscriptionManager *manager,
|
||||||
|
- const gchar *property_name,
|
||||||
|
- GVariant *property_value)
|
||||||
|
-{
|
||||||
|
- GsdSubscriptionManagerPrivate *priv = manager->priv;
|
||||||
|
- GVariantBuilder builder;
|
||||||
|
- GVariantBuilder invalidated_builder;
|
||||||
|
-
|
||||||
|
- /* not yet connected */
|
||||||
|
- if (priv->connection == NULL)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
- /* build the dict */
|
||||||
|
- g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
|
||||||
|
- g_variant_builder_init (&builder, G_VARIANT_TYPE_ARRAY);
|
||||||
|
- g_variant_builder_add (&builder,
|
||||||
|
- "{sv}",
|
||||||
|
- property_name,
|
||||||
|
- property_value);
|
||||||
|
- g_dbus_connection_emit_signal (priv->connection,
|
||||||
|
- NULL,
|
||||||
|
- GSD_SUBSCRIPTION_DBUS_PATH,
|
||||||
|
- "org.freedesktop.DBus.Properties",
|
||||||
|
- "PropertiesChanged",
|
||||||
|
- g_variant_new ("(sa{sv}as)",
|
||||||
|
- GSD_SUBSCRIPTION_DBUS_INTERFACE,
|
||||||
|
- &builder,
|
||||||
|
- &invalidated_builder),
|
||||||
|
- NULL);
|
||||||
|
- g_variant_builder_clear (&builder);
|
||||||
|
- g_variant_builder_clear (&invalidated_builder);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static void
|
||||||
|
_launch_info_overview (void)
|
||||||
|
{
|
||||||
|
@@ -772,25 +778,9 @@ gsd_subscription_manager_finalize (GObject *object)
|
||||||
|
manager->priv->name_id = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (manager->priv->check_registration_timeout_id)
|
||||||
|
- g_source_remove (manager->priv->check_registration_timeout_id);
|
||||||
|
-
|
||||||
|
G_OBJECT_CLASS (gsd_subscription_manager_parent_class)->finalize (object);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static gboolean
|
||||||
|
-nlight_forced_timeout_cb (gpointer user_data)
|
||||||
|
-{
|
||||||
|
- GsdSubscriptionManager *manager = GSD_SUBSCRIPTION_MANAGER (user_data);
|
||||||
|
- GsdSubscriptionManagerPrivate *priv = manager->priv;
|
||||||
|
-
|
||||||
|
- priv->check_registration_timeout_id = 0;
|
||||||
|
- emit_property_changed (manager, "SubscriptionStatus",
|
||||||
|
- g_variant_new_boolean (TRUE));
|
||||||
|
-
|
||||||
|
- return G_SOURCE_REMOVE;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
static void
|
||||||
|
handle_method_call (GDBusConnection *connection,
|
||||||
|
const gchar *sender,
|
||||||
|
@@ -802,11 +792,9 @@ handle_method_call (GDBusConnection *connection,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
GsdSubscriptionManager *manager = GSD_SUBSCRIPTION_MANAGER (user_data);
|
||||||
|
- GsdSubscriptionManagerPrivate *priv = manager->priv;
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
|
if (g_strcmp0 (method_name, "Register") == 0) {
|
||||||
|
- guint32 duration = 0;
|
||||||
|
const gchar *organisation = NULL;
|
||||||
|
const gchar *hostname = NULL;
|
||||||
|
|
||||||
|
@@ -864,10 +852,6 @@ handle_method_call (GDBusConnection *connection,
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
- if (priv->check_registration_timeout_id)
|
||||||
|
- g_source_remove (priv->check_registration_timeout_id);
|
||||||
|
- priv->check_registration_timeout_id = g_timeout_add_seconds (duration, nlight_forced_timeout_cb, manager);
|
||||||
|
-
|
||||||
|
g_dbus_method_invocation_return_value (invocation, NULL);
|
||||||
|
} else if (g_strcmp0 (method_name, "Unregister") == 0) {
|
||||||
|
if (!_client_unregister (manager, &error)) {
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
||||||
|
|
||||||
|
From 3635202b7039cac15c258674e2170622ed0d5a42 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kalev Lember <klember@redhat.com>
|
||||||
|
Date: Tue, 25 Jun 2019 14:12:04 +0200
|
||||||
|
Subject: [PATCH 2/2] subman: trivial: Fix typo
|
||||||
|
|
||||||
|
---
|
||||||
|
plugins/subman/gsd-subscription-manager.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/subman/gsd-subscription-manager.c b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
index 37e53ed9..08b13fa6 100644
|
||||||
|
--- a/plugins/subman/gsd-subscription-manager.c
|
||||||
|
+++ b/plugins/subman/gsd-subscription-manager.c
|
||||||
|
@@ -193,7 +193,7 @@ _client_subscription_status_update (GsdSubscriptionManager *manager, GError **er
|
||||||
|
g_debug ("Entitlement.GetStatus: %s", status_txt);
|
||||||
|
priv->subscription_status = _client_subscription_status_from_text (status_txt);
|
||||||
|
|
||||||
|
- /* enit notification for g-c-c */
|
||||||
|
+ /* emit notification for g-c-c */
|
||||||
|
if (priv->subscription_status != priv->subscription_status_last) {
|
||||||
|
_emit_property_changed (manager, "SubscriptionStatus",
|
||||||
|
g_variant_new_uint32 (priv->subscription_status));
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
||||||
|
77
SOURCES/0001-subman-Increase-RHSM-dbus-call-timeouts.patch
Normal file
77
SOURCES/0001-subman-Increase-RHSM-dbus-call-timeouts.patch
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
From 298355d8b3d5a85b99e74a06e936a0113797bf2a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kalev Lember <klember@redhat.com>
|
||||||
|
Date: Fri, 28 Jun 2019 18:10:36 +0200
|
||||||
|
Subject: [PATCH] subman: Increase RHSM dbus call timeouts
|
||||||
|
|
||||||
|
Increase the dbus timeouts to 5 minutes as the register/unregister calls
|
||||||
|
seem to routinely take more than a minute.
|
||||||
|
---
|
||||||
|
plugins/subman/gsd-subman-helper.c | 17 ++++++++++++-----
|
||||||
|
1 file changed, 12 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/subman/gsd-subman-helper.c b/plugins/subman/gsd-subman-helper.c
|
||||||
|
index 182f7190..af7a82e9 100644
|
||||||
|
--- a/plugins/subman/gsd-subman-helper.c
|
||||||
|
+++ b/plugins/subman/gsd-subman-helper.c
|
||||||
|
@@ -28,6 +28,8 @@
|
||||||
|
#include <gio/gio.h>
|
||||||
|
#include <json-glib/json-glib.h>
|
||||||
|
|
||||||
|
+#define DBUS_TIMEOUT 300000 /* 5 minutes */
|
||||||
|
+
|
||||||
|
static void
|
||||||
|
_helper_convert_error (const gchar *json_txt, GError **error)
|
||||||
|
{
|
||||||
|
@@ -94,7 +96,8 @@ _helper_unregister (GError **error)
|
||||||
|
proxy_options,
|
||||||
|
""), /* lang */
|
||||||
|
G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
- -1, NULL, error);
|
||||||
|
+ DBUS_TIMEOUT,
|
||||||
|
+ NULL, error);
|
||||||
|
return res != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -127,7 +130,8 @@ _helper_auto_attach (GError **error)
|
||||||
|
proxy_options,
|
||||||
|
""), /* lang */
|
||||||
|
G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
- -1, NULL, error);
|
||||||
|
+ DBUS_TIMEOUT,
|
||||||
|
+ NULL, error);
|
||||||
|
if (res == NULL)
|
||||||
|
return FALSE;
|
||||||
|
g_variant_get (res, "(&s)", &str);
|
||||||
|
@@ -158,7 +162,8 @@ _helper_save_config (const gchar *key, const gchar *value, GError **error)
|
||||||
|
g_variant_new_string (value),
|
||||||
|
""), /* lang */
|
||||||
|
G_DBUS_CALL_FLAGS_NONE,
|
||||||
|
- -1, NULL, error);
|
||||||
|
+ DBUS_TIMEOUT,
|
||||||
|
+ NULL, error);
|
||||||
|
return res != NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -305,7 +310,8 @@ main (int argc, char *argv[])
|
||||||
|
subman_conopts,
|
||||||
|
userlang),
|
||||||
|
G_DBUS_CALL_FLAGS_NO_AUTO_START,
|
||||||
|
- -1, NULL, &error_local);
|
||||||
|
+ DBUS_TIMEOUT,
|
||||||
|
+ NULL, &error_local);
|
||||||
|
if (res == NULL) {
|
||||||
|
g_dbus_error_strip_remote_error (error_local);
|
||||||
|
_helper_convert_error (error_local->message, &error);
|
||||||
|
@@ -339,7 +345,8 @@ main (int argc, char *argv[])
|
||||||
|
subman_conopts,
|
||||||
|
userlang),
|
||||||
|
G_DBUS_CALL_FLAGS_NO_AUTO_START,
|
||||||
|
- -1, NULL, &error_local);
|
||||||
|
+ DBUS_TIMEOUT,
|
||||||
|
+ NULL, &error_local);
|
||||||
|
if (res == NULL) {
|
||||||
|
g_dbus_error_strip_remote_error (error_local);
|
||||||
|
_helper_convert_error (error_local->message, &error);
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -0,0 +1,25 @@
|
|||||||
|
From 6e790966c2b6e1db8dd2c145119d3fdd19e0c18f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Matthias Clasen <mclasen@redhat.com>
|
||||||
|
Date: Wed, 22 May 2019 16:04:42 -0400
|
||||||
|
Subject: [PATCH] xsettings: Add an entry for the overlay scrolling setting
|
||||||
|
|
||||||
|
This will be used by GTK.
|
||||||
|
---
|
||||||
|
plugins/xsettings/gsd-xsettings-manager.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/plugins/xsettings/gsd-xsettings-manager.c b/plugins/xsettings/gsd-xsettings-manager.c
|
||||||
|
index c3ac7892..4164de40 100644
|
||||||
|
--- a/plugins/xsettings/gsd-xsettings-manager.c
|
||||||
|
+++ b/plugins/xsettings/gsd-xsettings-manager.c
|
||||||
|
@@ -478,6 +478,7 @@ static TranslationEntry translations [] = {
|
||||||
|
{ "org.gnome.desktop.interface", "icon-theme", "Net/IconThemeName", translate_string_string },
|
||||||
|
{ "org.gnome.desktop.interface", "cursor-theme", "Gtk/CursorThemeName", translate_string_string },
|
||||||
|
{ "org.gnome.desktop.interface", "gtk-enable-primary-paste", "Gtk/EnablePrimaryPaste", translate_bool_int },
|
||||||
|
+ { "org.gnome.desktop.interface", "overlay-scrolling", "Gtk/OverlayScrolling", translate_bool_int },
|
||||||
|
/* cursor-size is handled via the Xft side as it needs the scaling factor */
|
||||||
|
|
||||||
|
{ "org.gnome.desktop.sound", "theme-name", "Net/SoundThemeName", translate_string_string },
|
||||||
|
--
|
||||||
|
2.23.0
|
||||||
|
|
@ -1,14 +1,14 @@
|
|||||||
%global glib2_version 2.56
|
%global glib2_version 2.56
|
||||||
%global geocode_glib_version 3.10.0
|
%global geocode_glib_version 3.10.0
|
||||||
%global gnome_desktop_version 3.27.90
|
%global gnome_desktop_version 3.27.90
|
||||||
%global gsettings_desktop_schemas_version 3.27.90
|
%global gsettings_desktop_schemas_version 3.32.0-4
|
||||||
%global gtk3_version 3.15.3
|
%global gtk3_version 3.15.3
|
||||||
%global libgweather_version 3.9.5
|
%global libgweather_version 3.9.5
|
||||||
%global geoclue_version 2.3.1
|
%global geoclue_version 2.3.1
|
||||||
|
|
||||||
Name: gnome-settings-daemon
|
Name: gnome-settings-daemon
|
||||||
Version: 3.32.0
|
Version: 3.32.0
|
||||||
Release: 3%{?dist}
|
Release: 9%{?dist}
|
||||||
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
Summary: The daemon sharing settings from GNOME to GTK+/KDE applications
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -80,10 +80,15 @@ Patch00001: 0001-account-first-cut-at-account-plugin.patch
|
|||||||
Patch00002: 0002-account-reshow-the-notification-when-screen-unlocks.patch
|
Patch00002: 0002-account-reshow-the-notification-when-screen-unlocks.patch
|
||||||
Patch00003: 0003-account-display-nag-screen-periodically.patch
|
Patch00003: 0003-account-display-nag-screen-periodically.patch
|
||||||
Patch00004: 0004-account-don-t-poll-more-frequently-than-notification.patch
|
Patch00004: 0004-account-don-t-poll-more-frequently-than-notification.patch
|
||||||
|
Patch00005: 0001-smartcard-Cancel-cancellable-when-stopping.patch
|
||||||
|
Patch00006: 0001-xsettings-Add-an-entry-for-the-overlay-scrolling-set.patch
|
||||||
|
|
||||||
Patch10001: 0001-housekeeping-Add-a-GPU-memory-usage-notification.patch
|
Patch10001: 0001-housekeeping-Add-a-GPU-memory-usage-notification.patch
|
||||||
|
|
||||||
|
# Subscription manager integration
|
||||||
Patch10002: 0001-subman-Add-a-new-plugin-to-provide-system-subscripti.patch
|
Patch10002: 0001-subman-Add-a-new-plugin-to-provide-system-subscripti.patch
|
||||||
|
Patch10003: 0001-subman-Add-InstalledProducts-dbus-property-for-g-c-c.patch
|
||||||
|
Patch10004: 0001-subman-Increase-RHSM-dbus-call-timeouts.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
A daemon to share settings from GNOME to other applications. It also
|
A daemon to share settings from GNOME to other applications. It also
|
||||||
@ -215,6 +220,32 @@ mkdir $RPM_BUILD_ROOT%{_libdir}/gnome-settings-daemon-3.0/gtk-modules
|
|||||||
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
%{_libdir}/pkgconfig/gnome-settings-daemon.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Nov 22 2019 Benjamin Otte <otte@redhat.com> - 3.32.0-9
|
||||||
|
- Update gsettings-deskto-schemas dependency for new setting
|
||||||
|
Resolves: #1775683, #1723462
|
||||||
|
|
||||||
|
* Thu Nov 21 2019 Benjamin Otte <otte@redhat.com> - 3.32.0-8
|
||||||
|
- Add upstream setting for overlay scrolling
|
||||||
|
Resolves: #1723462
|
||||||
|
|
||||||
|
* Mon Nov 18 2019 Kalev Lember <klember@redhat.com> - 3.32.0-7
|
||||||
|
- Add a new plugin to provide system subscription information
|
||||||
|
- Resolves: #1720249
|
||||||
|
|
||||||
|
* Mon Nov 04 2019 Marek Kasik <mkasik@redhat.com> - 3.32.0-6
|
||||||
|
- Initialize a variable from previous commit.
|
||||||
|
- Previous commit made it possible to use uninitialized variable.
|
||||||
|
- Detected by Coverity.
|
||||||
|
- Related: #1742710
|
||||||
|
|
||||||
|
* Mon Nov 04 2019 Marek Kasik <mkasik@redhat.com> - 3.32.0-5
|
||||||
|
- Cancel cancellable when stopping smartcard plugin to avoid crash
|
||||||
|
- Resolves: #1742710
|
||||||
|
|
||||||
|
* Tue Jul 09 2019 Richard Hughes <rhughes@redhat.com> - 3.32.0-4
|
||||||
|
- Remove the subman plugin -- move to a 8.2 feature instead.
|
||||||
|
- Resolves: #1720249
|
||||||
|
|
||||||
* Mon Jun 17 2019 Richard Hughes <rhughes@redhat.com> - 3.32.0-3
|
* Mon Jun 17 2019 Richard Hughes <rhughes@redhat.com> - 3.32.0-3
|
||||||
- Add a new plugin to provide system subscription information
|
- Add a new plugin to provide system subscription information
|
||||||
- Resolves: #1720249
|
- Resolves: #1720249
|
||||||
|
Loading…
Reference in New Issue
Block a user