diff --git a/gnome-bluetooth-fix-pairing.patch b/gnome-bluetooth-fix-pairing.patch new file mode 100644 index 0000000..6f21b49 --- /dev/null +++ b/gnome-bluetooth-fix-pairing.patch @@ -0,0 +1,31 @@ +From 46212ad97de694db45af525cd200c52e6eafb93b Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +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 + + diff --git a/gnome-bluetooth-fix-stuck-finish-page.patch b/gnome-bluetooth-fix-stuck-finish-page.patch new file mode 100644 index 0000000..3e26aa4 --- /dev/null +++ b/gnome-bluetooth-fix-stuck-finish-page.patch @@ -0,0 +1,49 @@ +From f0a95b5d28ff55e9ed4b148d9872645ae3d8e049 Mon Sep 17 00:00:00 2001 +From: Sjoerd Simons +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 diff --git a/gnome-bluetooth.changes b/gnome-bluetooth.changes index 72dfca9..02f86af 100644 --- a/gnome-bluetooth.changes +++ b/gnome-bluetooth.changes @@ -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 diff --git a/gnome-bluetooth.spec b/gnome-bluetooth.spec index 3dc387f..fcc69be 100644 --- a/gnome-bluetooth.spec +++ b/gnome-bluetooth.spec @@ -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