1
0

Accepting request 126764 from GNOME:Factory

* Added gnome-bluetooth-fix-pairing.patch and
  gnome-bluetooth-fix-stuck-finish-page.patch to enable pairing of
  devices again (bnc#769536, bgo#679190, rh#819203).

Should be copied to 12.2 if possible (it actually makes the bt stack work) (forwarded request 126762 from dimstar)

OBS-URL: https://build.opensuse.org/request/show/126764
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gnome-bluetooth?expand=0&rev=60
This commit is contained in:
Stephan Kulow 2012-07-02 08:48:47 +00:00 committed by Git OBS Bridge
commit 4f7ef9f88b
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 (bnc#769536, 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 bnc#769536 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 bnc#769536 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