Date: Wednesday, January 27, 2016 @ 20:46:32 Author: heftig Revision: 258653
FS#47833 Added: gnome-shell/trunk/libsecret-crash.patch gnome-shell/trunk/vpn-secrets.patch Modified: gnome-shell/trunk/PKGBUILD -----------------------+ PKGBUILD | 8 +++++- libsecret-crash.patch | 32 ++++++++++++++++++++++++ vpn-secrets.patch | 63 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-01-27 19:46:03 UTC (rev 258652) +++ PKGBUILD 2016-01-27 19:46:32 UTC (rev 258653) @@ -4,7 +4,7 @@ pkgname=gnome-shell pkgver=3.18.3 -pkgrel=2 +pkgrel=3 pkgdesc="The next generation GNOME Shell" arch=(i686 x86_64) url="http://live.gnome.org/GnomeShell" @@ -19,13 +19,19 @@ install=gnome-shell.install groups=(gnome) source=(http://ftp.gnome.org/pub/GNOME/sources/$pkgname/${pkgver:0:4}/$pkgname-$pkgver.tar.xz + libsecret-crash.patch vpn-secrets.patch nm-libexecdir.patch) sha256sums=('8517baf8606f970ebf38222411eb7563cab2ae5efbfb088954ce23705b67519b' + '3c668de4c091dccf3d269b3d549c93f2a9b64e569c87ff3c3466624b5fc735bd' + '156d62bcb1281527820c9fd4760354478d7d7f0d424ba291bab6cfa498a54ef6' 'e5bb10ad2e5c3e0fde3d05babd1bfdda701e553e02d493f7e54cb7832ce7e607') prepare() { cd $pkgname-$pkgver + patch -Np1 -i ../libsecret-crash.patch + patch -Np1 -i ../vpn-secrets.patch + # FS#30747 FS#32730 Problems due to libexecdir different from NM patch -Np1 -i ../nm-libexecdir.patch } Added: libsecret-crash.patch =================================================================== --- libsecret-crash.patch (rev 0) +++ libsecret-crash.patch 2016-01-27 19:46:32 UTC (rev 258653) @@ -0,0 +1,32 @@ +From 021cecbce289f1d9c68a156d5b8dd204a73bc715 Mon Sep 17 00:00:00 2001 +From: Christophe Fergeau <[email protected]> +Date: Sun, 20 Dec 2015 20:51:52 +0100 +Subject: NetworkAgent: Fix double-unref in get_secrets_keyring_cb() + +In get_secrets_keyring_cb, we own a ref on the 'attributes' hash table +from secret_item_get_attributes), and a ref on the 'secret' object (from +secret_item_get_secret(), but in the SHELL_KEYRING_SK_TAG case, we unref +these once before breaking out of the loop, and the second time after +breaking out of the loop. + +https://bugzilla.gnome.org/show_bug.cgi?id=759708 +--- + src/shell-network-agent.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/src/shell-network-agent.c b/src/shell-network-agent.c +index 5d99167..da0f7e5 100644 +--- a/src/shell-network-agent.c ++++ b/src/shell-network-agent.c +@@ -314,8 +314,6 @@ get_secrets_keyring_cb (GObject *source, + + secrets_found = TRUE; + +- g_hash_table_unref (attributes); +- secret_value_unref (secret); + break; + } + } +-- +cgit v0.11.2 + Added: vpn-secrets.patch =================================================================== --- vpn-secrets.patch (rev 0) +++ vpn-secrets.patch 2016-01-27 19:46:32 UTC (rev 258653) @@ -0,0 +1,63 @@ +From 4562a431ad976a3e0df38889d48bb7898f91c672 Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel <[email protected]> +Date: Tue, 26 Jan 2016 17:31:34 +0100 +Subject: NetworkAgent: correctly identify the VPN secret requests + +The non-interactive requests for 'vpn' settings are forwarded to the UI because +it is able to talk to the auth helpers. However, the VPN requests are identified +by the connection type instead of setting type. That is incorrect and the UI +is not prepared to handle such requests; tries to construct a dialog and fails +miserably: + + Gjs-Message: JS LOG: Invalid connection type: vpn + + (gnome-shell:13133): Gjs-WARNING **: JS ERROR: Error: No property 'text' in property list (or its value was undefined) + NetworkSecretDialog<._init@resource:///org/gnome/shell/ui/components/networkAgent.js:60 + wrapper@resource:///org/gnome/gjs/modules/lang.js:169 + _Base.prototype._construct@resource:///org/gnome/gjs/modules/lang.js:110 + Class.prototype._construct/newClass@resource:///org/gnome/gjs/modules/lang.js:204 + NetworkAgent<._handleRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:724 + wrapper@resource:///org/gnome/gjs/modules/lang.js:169 + NetworkAgent<._newRequest@resource:///org/gnome/shell/ui/components/networkAgent.js:715 + wrapper@resource:///org/gnome/gjs/modules/lang.js:169 + +https://bugzilla.gnome.org/show_bug.cgi?id=760999 +--- + src/shell-network-agent.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/src/shell-network-agent.c b/src/shell-network-agent.c +index c6f4b79..8e8c548 100644 +--- a/src/shell-network-agent.c ++++ b/src/shell-network-agent.c +@@ -366,8 +366,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, + { + ShellNetworkAgent *self = SHELL_NETWORK_AGENT (agent); + ShellAgentRequest *request; +- NMSettingConnection *setting_connection; +- const char *connection_type; + GHashTable *attributes; + char *request_id; + +@@ -381,9 +379,6 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, + shell_agent_request_cancel (request); + } + +- setting_connection = nm_connection_get_setting_connection (connection); +- connection_type = nm_setting_connection_get_connection_type (setting_connection); +- + request = g_slice_new (ShellAgentRequest); + request->self = g_object_ref (self); + request->cancellable = g_cancellable_new (); +@@ -393,7 +388,7 @@ shell_network_agent_get_secrets (NMSecretAgent *agent, + request->flags = flags; + request->callback = callback; + request->callback_data = callback_data; +- request->is_vpn = !strcmp(connection_type, NM_SETTING_VPN_SETTING_NAME); ++ request->is_vpn = !strcmp(setting_name, NM_SETTING_VPN_SETTING_NAME); + request->entries = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, gvalue_destroy_notify); + + if (request->is_vpn) +-- +cgit v0.11.2 +
