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 + +