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 
<mar...@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.de...@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
+
+

Reply via email to