2b2827d98e
... in order to get gnome-shell building again. Looks like it might take a while before bluez 5 makes its way to rawhide, but in the mean time we need to be able to rebuild gnome-shell. (The immediate issue is that evolution-data-server just had a soname bump and need to rebuild gnome-shell for that.)
130 lines
5.2 KiB
Diff
130 lines
5.2 KiB
Diff
From dd74ea99a70fb0c4615b448670a4a1d0b843eab4 Mon Sep 17 00:00:00 2001
|
|
From: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
|
|
Date: Wed, 22 May 2013 16:27:02 +0200
|
|
Subject: [PATCH 1/2] bluetooth: Port to BlueZ 5
|
|
|
|
In BlueZ 4, Authorize() was used to authorize both service
|
|
and JustWorks authorization requests. In BlueZ 5 these two
|
|
have been split into AuthorizeService() for services and
|
|
RequestAuthorization for JustWorks devices. Adapt the
|
|
Bluetooth code accordingly.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=700891
|
|
---
|
|
js/ui/status/bluetooth.js | 44 +++++++++++++++++++++++++++++++++++++++-----
|
|
1 file changed, 39 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/js/ui/status/bluetooth.js b/js/ui/status/bluetooth.js
|
|
index f4610c7..bcc853b 100644
|
|
--- a/js/ui/status/bluetooth.js
|
|
+++ b/js/ui/status/bluetooth.js
|
|
@@ -86,6 +86,7 @@ const Indicator = new Lang.Class({
|
|
this._applet.connect('pincode-request', Lang.bind(this, this._pinRequest));
|
|
this._applet.connect('confirm-request', Lang.bind(this, this._confirmRequest));
|
|
this._applet.connect('auth-request', Lang.bind(this, this._authRequest));
|
|
+ this._applet.connect('auth-service-request', Lang.bind(this, this._authServiceRequest));
|
|
this._applet.connect('cancel-request', Lang.bind(this, this._cancelRequest));
|
|
},
|
|
|
|
@@ -292,9 +293,14 @@ const Indicator = new Lang.Class({
|
|
}
|
|
},
|
|
|
|
- _authRequest: function(applet, device_path, name, long_name, uuid) {
|
|
+ _authRequest: function(applet, device_path, name, long_name) {
|
|
this._ensureSource();
|
|
- this._source.notify(new AuthNotification(this._source, this._applet, device_path, name, long_name, uuid));
|
|
+ this._source.notify(new AuthNotification(this._source, this._applet, device_path, name, long_name));
|
|
+ },
|
|
+
|
|
+ _authServiceRequest: function(applet, device_path, name, long_name, uuid) {
|
|
+ this._ensureSource();
|
|
+ this._source.notify(new AuthServiceNotification(this._source, this._applet, device_path, name, long_name, uuid));
|
|
},
|
|
|
|
_confirmRequest: function(applet, device_path, name, long_name, pin) {
|
|
@@ -316,6 +322,34 @@ const AuthNotification = new Lang.Class({
|
|
Name: 'AuthNotification',
|
|
Extends: MessageTray.Notification,
|
|
|
|
+ _init: function(source, applet, device_path, name, long_name) {
|
|
+ this.parent(source,
|
|
+ _("Bluetooth"),
|
|
+ _("Authorization request from %s").format(name),
|
|
+ { customContent: true });
|
|
+ this.setResident(true);
|
|
+
|
|
+ this._applet = applet;
|
|
+ this._devicePath = device_path;
|
|
+ this.addBody(_("Device %s wants to pair with this computer").format(long_name));
|
|
+
|
|
+ this.addButton('allow', _("Allow"));
|
|
+ this.addButton('deny', _("Deny"));
|
|
+
|
|
+ this.connect('action-invoked', Lang.bind(this, function(self, action) {
|
|
+ if (action == 'allow')
|
|
+ this._applet.agent_reply_confirm(this._devicePath, true);
|
|
+ else
|
|
+ this._applet.agent_reply_confirm(this._devicePath, false);
|
|
+ this.destroy();
|
|
+ }));
|
|
+ }
|
|
+});
|
|
+
|
|
+const AuthServiceNotification = new Lang.Class({
|
|
+ Name: 'AuthServiceNotification',
|
|
+ Extends: MessageTray.Notification,
|
|
+
|
|
_init: function(source, applet, device_path, name, long_name, uuid) {
|
|
this.parent(source,
|
|
_("Bluetooth"),
|
|
@@ -334,14 +368,14 @@ const AuthNotification = new Lang.Class({
|
|
this.connect('action-invoked', Lang.bind(this, function(self, action) {
|
|
switch (action) {
|
|
case 'always-grant':
|
|
- this._applet.agent_reply_auth(this._devicePath, true, true);
|
|
+ this._applet.agent_reply_auth_service(this._devicePath, true, true);
|
|
break;
|
|
case 'grant':
|
|
- this._applet.agent_reply_auth(this._devicePath, true, false);
|
|
+ this._applet.agent_reply_auth_service(this._devicePath, true, false);
|
|
break;
|
|
case 'reject':
|
|
default:
|
|
- this._applet.agent_reply_auth(this._devicePath, false, false);
|
|
+ this._applet.agent_reply_auth_service(this._devicePath, false, false);
|
|
}
|
|
this.destroy();
|
|
}));
|
|
--
|
|
1.8.3.1
|
|
|
|
From c7fb65c78e48ed6f687008684a25cceefafb3992 Mon Sep 17 00:00:00 2001
|
|
From: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
|
|
Date: Mon, 3 Jun 2013 15:38:31 +0200
|
|
Subject: [PATCH 2/2] configure: Bump gnome-bluetooth requirement
|
|
|
|
Needed for the changes in the agent.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=700891
|
|
---
|
|
configure.ac | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 184f911..8e9e0ea 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -109,7 +109,7 @@ PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.7.4)
|
|
PKG_CHECK_MODULES(CARIBOU, caribou-1.0 >= 0.4.8)
|
|
|
|
AC_MSG_CHECKING([for bluetooth support])
|
|
-PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.1.0],
|
|
+PKG_CHECK_EXISTS([gnome-bluetooth-1.0 >= 3.9.0],
|
|
[BLUETOOTH_DIR=`$PKG_CONFIG --variable=applet_libdir gnome-bluetooth-1.0`
|
|
BLUETOOTH_LIBS=`$PKG_CONFIG --variable=applet_libs gnome-bluetooth-1.0`
|
|
AC_SUBST([BLUETOOTH_LIBS],["$BLUETOOTH_LIBS"])
|
|
--
|
|
1.8.3.1
|
|
|