[arch-commits] Commit in bluez/trunk (PKGBUILD fixes_order_InterfaceAdded.diff)

Andreas Radke andyrtr at archlinux.org
Sun Feb 11 09:14:34 UTC 2018


    Date: Sunday, February 11, 2018 @ 09:14:34
  Author: andyrtr
Revision: 316602

upgpkg: bluez 5.48-2

apply upstream fix to allow headset use after suspend/resume - FS#57464

Added:
  bluez/trunk/fixes_order_InterfaceAdded.diff
Modified:
  bluez/trunk/PKGBUILD

---------------------------------+
 PKGBUILD                        |    9 ++++
 fixes_order_InterfaceAdded.diff |   72 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 1 deletion(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-02-11 09:11:48 UTC (rev 316601)
+++ PKGBUILD	2018-02-11 09:14:34 UTC (rev 316602)
@@ -6,19 +6,26 @@
 pkgbase=bluez
 pkgname=('bluez' 'bluez-utils' 'bluez-libs' 'bluez-cups' 'bluez-hid2hci' 'bluez-plugins')
 pkgver=5.48
-pkgrel=1
+pkgrel=2
 url="http://www.bluez.org/"
 arch=('x86_64')
 license=('GPL2')
 makedepends=('dbus' 'libical' 'systemd' 'alsa-lib')
 source=(https://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.{xz,sign}
+        fixes_order_InterfaceAdded.diff
         bluetooth.modprobe)
 # see https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc
 sha256sums=('b9a8723072ef66bae7ec301c774902ebcb444c9c5b149b5a199e60a1ba970e90'
             'SKIP'
+            '56e4bf467b285e4c6bc50eafc88f471e3683f3c3c76afe0ffe2bd6f0d17a1eae'
             '46c021be659c9a1c4e55afd04df0c059af1f3d98a96338236412e449bf7477b4')
 validpgpkeys=('E932D120BC2AEC444E558F0106CA9F5D1DCF2659') # Marcel Holtmann <marcel at holtmann.org>
 
+prepare() {
+  cd $pkgname-$pkgver
+  patch -Np1 -i $srcdir/fixes_order_InterfaceAdded.diff
+}
+
 build() {
   cd ${pkgname}-${pkgver}
   ./configure \

Added: fixes_order_InterfaceAdded.diff
===================================================================
--- fixes_order_InterfaceAdded.diff	                        (rev 0)
+++ fixes_order_InterfaceAdded.diff	2018-02-11 09:14:34 UTC (rev 316602)
@@ -0,0 +1,72 @@
+From 1873096352f518d3247f8efb3c2e0aa8804e50ac Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz at intel.com>
+Date: Wed, 7 Feb 2018 09:35:07 -0200
+Subject: core: Fixes order InterfaceAdded
+
+Registering on the callback of MGMT_OP_READ_ADV_FEATURES causes
+InterfacesAdded to be reschedule after the device objects which causes
+tools such as PulseAudio to consider it invalid.
+
+Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1534857
+---
+ src/advertising.c | 28 +++++++++++++++-------------
+ 1 file changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/src/advertising.c b/src/advertising.c
+index 94a8c40..970c3d8 100644
+--- a/src/advertising.c
++++ b/src/advertising.c
+@@ -1032,14 +1032,6 @@ static void read_adv_features_callback(uint8_t status, uint16_t length,
+ 	if (manager->max_ads == 0)
+ 		return;
+ 
+-	if (!g_dbus_register_interface(btd_get_dbus_connection(),
+-					adapter_get_path(manager->adapter),
+-					LE_ADVERTISING_MGR_IFACE, methods,
+-					NULL, properties, manager, NULL)) {
+-		error("Failed to register " LE_ADVERTISING_MGR_IFACE);
+-		return;
+-	}
+-
+ 	/* Reset existing instances */
+ 	if (feat->num_instances)
+ 		remove_advertising(manager, 0);
+@@ -1061,19 +1053,29 @@ static struct btd_adv_manager *manager_create(struct btd_adapter *adapter)
+ 	}
+ 
+ 	manager->mgmt_index = btd_adapter_get_index(adapter);
++	manager->clients = queue_new();
++	manager->supported_flags = MGMT_ADV_FLAG_LOCAL_NAME;
++
++	if (!g_dbus_register_interface(btd_get_dbus_connection(),
++					adapter_get_path(manager->adapter),
++					LE_ADVERTISING_MGR_IFACE, methods,
++					NULL, properties, manager, NULL)) {
++		error("Failed to register " LE_ADVERTISING_MGR_IFACE);
++		goto fail;
++	}
+ 
+ 	if (!mgmt_send(manager->mgmt, MGMT_OP_READ_ADV_FEATURES,
+ 				manager->mgmt_index, 0, NULL,
+ 				read_adv_features_callback, manager, NULL)) {
+ 		error("Failed to read advertising features");
+-		manager_destroy(manager);
+-		return NULL;
++		goto fail;
+ 	}
+ 
+-	manager->clients = queue_new();
+-	manager->supported_flags = MGMT_ADV_FLAG_LOCAL_NAME;
+-
+ 	return manager;
++
++fail:
++	manager_destroy(manager);
++	return NULL;
+ }
+ 
+ struct btd_adv_manager *btd_adv_manager_new(struct btd_adapter *adapter)
+-- 
+cgit v1.1
+
+



More information about the arch-commits mailing list