1
0

Accepting request 126743 from home:badshah400:branches:GNOME:Factory

Add patches from upstream bugzilla to make pairing with devices work again.

OBS-URL: https://build.opensuse.org/request/show/126743
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-bluetooth?expand=0&rev=101
This commit is contained in:
Bjørn Lie 2012-07-01 05:41:14 +00:00 committed by Git OBS Bridge
parent a7084af2fe
commit 318d314b72
4 changed files with 93 additions and 0 deletions

View File

@ -0,0 +1,31 @@
From 46212ad97de694db45af525cd200c52e6eafb93b Mon Sep 17 00:00:00 2001
From: Sjoerd Simons <sjoerd@luon.net>
Date: Sat, 30 Jun 2012 10:45:45 +0200
Subject: [PATCH 1/2] Fix return of RequestConfirmation call
The bluez RequestConfirmation call expect either an empty message (on
success) or an error (on failure) as return. For some reason the code
tries to return a string on success though, contrary to even what the
internal introspection data says causing gdbus to just throw a warning
and bluez never getting a response... Causing pairing to fail.
---
wizard/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wizard/main.c b/wizard/main.c
index 417c84c..e7cc9cc 100644
--- a/wizard/main.c
+++ b/wizard/main.c
@@ -261,7 +261,7 @@ matches_cb (GtkButton *button,
invocation = g_object_get_data (G_OBJECT (button), "invocation");
gtk_widget_set_sensitive (does_not_match_button, FALSE);
gtk_widget_set_sensitive (matches_button, FALSE);
- g_dbus_method_invocation_return_value (invocation, g_variant_new ("(s)", ""));
+ g_dbus_method_invocation_return_value (invocation, NULL);
g_object_set_data (G_OBJECT(does_not_match_button), "invocation", NULL);
g_object_set_data (G_OBJECT(matches_button), "invocation", NULL);
--
1.7.10

View File

@ -0,0 +1,49 @@
From f0a95b5d28ff55e9ed4b148d9872645ae3d8e049 Mon Sep 17 00:00:00 2001
From: Sjoerd Simons <sjoerd@luon.net>
Date: Sat, 30 Jun 2012 14:27:47 +0200
Subject: [PATCH 2/2] When bailing from a connect attempt use
_complete_in_idle
Currently bluetooth_client_connect_service complets it async operation
directly when bailing (e.g. we don't have connectable service on the
remote device). This causes the bluetooth wizard to get stuck in the
Finishing page as it happens to go to this page *after* calling
bluetooth_client_connect_service.
Simply make the async operation complete asynchronously (like it should)
and everything is happy again :)
---
lib/bluetooth-client.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index 21bcd38..114f9ad 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -547,12 +547,15 @@ add_device (Adapter *adapter,
v = g_variant_lookup_value (ret, "Alias", G_VARIANT_TYPE_STRING);
alias = v ? g_variant_get_string (v, NULL) : NULL;
+ printf ("Alias: %s\n", alias);
v = g_variant_lookup_value (ret, "Name", G_VARIANT_TYPE_STRING);
name = v ? g_variant_get_string (v, NULL) : NULL;
+ printf ("Name: %s\n", name);
v = g_variant_lookup_value (ret, "Class", G_VARIANT_TYPE_UINT32);
type = v ? bluetooth_class_to_type (g_variant_get_uint32 (v)) : BLUETOOTH_TYPE_ANY;
+ printf ("Class: %x\n", g_variant_get_uint32 (v));
v = g_variant_lookup_value (ret, "Icon", G_VARIANT_TYPE_STRING);
icon = v ? g_variant_get_string (v, NULL) : "bluetooth";
@@ -1870,7 +1873,7 @@ bluetooth_client_connect_service (BluetoothClient *client,
bail:
g_simple_async_result_set_op_res_gboolean (simple, res);
- g_simple_async_result_complete (simple);
+ g_simple_async_result_complete_in_idle (simple);
g_object_unref (simple);
}
--
1.7.10

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Sat Jun 30 06:33:37 UTC 2012 - badshah400@gmail.com
- Added gnome-bluetooth-fix-pairing.patch and
gnome-bluetooth-fix-stuck-finish-page.patch to enable pairing of
devices again (bgo#679190, rh#819203).
-------------------------------------------------------------------
Mon Jun 18 13:07:52 UTC 2012 - dimstar@opensuse.org

View File

@ -27,6 +27,10 @@ Source: http://download.gnome.org/sources/gnome-bluetooth/3.4/%{name}-%{
Source1: 61-gnome-bluetooth-rfkill.rules
# PATCH-MISSING-TAG -- See http://en.opensuse.org/Packaging/Patches
Patch0: lxde-support.patch
# PATCH-FIX-UPSTREAM gnome-bluetooth-fix-pairing.patch bgo#679190 rh#819203 badshah400@gmail.com -- This fixes gnome-bluetooth to finally pair with devices again, patch came from upstream bugzilla.
Patch1: gnome-bluetooth-fix-pairing.patch
# PATCH-FIX-UPSTREAM gnome-bluetooth-fix-stuck-finish-page.patch bgo#679190 rh#819203 badshah400@gmail.com -- This fixes gnome-bluetooth from getting stuck in the finishing page.
Patch2: gnome-bluetooth-fix-stuck-finish-page.patch
BuildRequires: fdupes
BuildRequires: gnome-doc-utils-devel
BuildRequires: gobject-introspection-devel
@ -115,6 +119,8 @@ send files over bluetooth.
%setup -q
translation-update-upstream
%patch0 -p1
%patch1 -p1
%patch2 -p1
%if 0%{?BUILD_FROM_VCS}
[ -x ./autogen.sh ] && NOCONFIGURE=1 ./autogen.sh