From aac2bae2ea3836507310fc2e64b24029a4a487d1 Mon Sep 17 00:00:00 2001 From: Evan Gates Date: Mon, 12 Jul 2021 16:38:56 -0700 Subject: [PATCH] bluez: update to 5.60 In some circumstances, the user must delete /var/lib/bluetooth if 5.59 created cache files affected by bluez issue #157 [1]. We chose not to automate this procedure, since it would also delete user configurations. Instead, we will keep an INSTALL.msg until the next version bump. [1] https://github.com/bluez/bluez/issues/157 --- srcpkgs/bluez/INSTALL.msg | 5 ++ ...fkill-Fix-reading-from-rfkill-socket.patch | 83 ------------------- srcpkgs/bluez/template | 4 +- 3 files changed, 7 insertions(+), 85 deletions(-) create mode 100644 srcpkgs/bluez/INSTALL.msg delete mode 100644 srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch diff --git a/srcpkgs/bluez/INSTALL.msg b/srcpkgs/bluez/INSTALL.msg new file mode 100644 index 000000000000..349f14710bec --- /dev/null +++ b/srcpkgs/bluez/INSTALL.msg @@ -0,0 +1,5 @@ +WARNING: if bluez 5.59 had audio issues for you, removing the +/var/lib/bluetooth directory might be necessary to completely restore +functionality. + +For more information, see https://github.com/bluez/bluez/issues/157 diff --git a/srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch b/srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch deleted file mode 100644 index 1bcb6524f5bd..000000000000 --- a/srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 382646b490c1c336dd32f9186293616ceb4d808b Mon Sep 17 00:00:00 2001 -From: Benjamin Berg -Date: Mon, 3 May 2021 14:45:00 +0200 -Subject: [PATCH 1/2] rfkill: Fix reading from rfkill socket - -The kernel will always send exactly one event, but the size of the -passed struct will depend on the length of the submitted read() and the -kernel version. i.e. the interface can be extended and we need to expect -for a read to be longer than expected if we ask for it. - -Fix this by only requesting the needed length and explicitly check the -length against the V1 version of the structure to make the code a bit -more future proof in case the internal copy of the struct is updated to -contain new fields. ---- - src/rfkill.c | 24 +++++++++++------------- - 1 file changed, 11 insertions(+), 13 deletions(-) - -diff --git a/src/rfkill.c b/src/rfkill.c -index ec9fcdfdd..2099c5ac5 100644 ---- a/src/rfkill.c -+++ b/src/rfkill.c -@@ -53,12 +53,12 @@ struct rfkill_event { - uint8_t soft; - uint8_t hard; - }; -+#define RFKILL_EVENT_SIZE_V1 8 - - static gboolean rfkill_event(GIOChannel *chan, - GIOCondition cond, gpointer data) - { -- unsigned char buf[32]; -- struct rfkill_event *event = (void *) buf; -+ struct rfkill_event event = { 0 }; - struct btd_adapter *adapter; - char sysname[PATH_MAX]; - ssize_t len; -@@ -69,34 +69,32 @@ static gboolean rfkill_event(GIOChannel *chan, - - fd = g_io_channel_unix_get_fd(chan); - -- memset(buf, 0, sizeof(buf)); -- -- len = read(fd, buf, sizeof(buf)); -+ len = read(fd, &event, sizeof(event)); - if (len < 0) { - if (errno == EAGAIN) - return TRUE; - return FALSE; - } - -- if (len != sizeof(struct rfkill_event)) -+ if (len < RFKILL_EVENT_SIZE_V1) - return TRUE; - - DBG("RFKILL event idx %u type %u op %u soft %u hard %u", -- event->idx, event->type, event->op, -- event->soft, event->hard); -+ event.idx, event.type, event.op, -+ event.soft, event.hard); - -- if (event->soft || event->hard) -+ if (event.soft || event.hard) - return TRUE; - -- if (event->op != RFKILL_OP_CHANGE) -+ if (event.op != RFKILL_OP_CHANGE) - return TRUE; - -- if (event->type != RFKILL_TYPE_BLUETOOTH && -- event->type != RFKILL_TYPE_ALL) -+ if (event.type != RFKILL_TYPE_BLUETOOTH && -+ event.type != RFKILL_TYPE_ALL) - return TRUE; - - snprintf(sysname, sizeof(sysname) - 1, -- "/sys/class/rfkill/rfkill%u/name", event->idx); -+ "/sys/class/rfkill/rfkill%u/name", event.idx); - - fd = open(sysname, O_RDONLY); - if (fd < 0) --- -2.31.1 diff --git a/srcpkgs/bluez/template b/srcpkgs/bluez/template index 09bac4ff5eca..470a7beaef0b 100644 --- a/srcpkgs/bluez/template +++ b/srcpkgs/bluez/template @@ -1,6 +1,6 @@ # Template file for 'bluez' pkgname=bluez -version=5.59 +version=5.60 revision=1 build_style=gnu-configure configure_args="--with-udevdir=/usr/lib/udev --disable-systemd @@ -15,7 +15,7 @@ maintainer="Érico Nogueira " license="GPL-2.0-or-later, LGPL-2.1-or-later" homepage="http://www.bluez.org/" distfiles="${KERNEL_SITE}/bluetooth/$pkgname-$version.tar.xz" -checksum=046b95b386d0bfb2a16311fe799d517ee7735045512d89902c4ed701db477316 +checksum=710999580d01ee59ec585e5e7c07fd94eddedc001aa26fe7464c546f9d945304 conf_files="/etc/bluetooth/main.conf" system_groups="bluetooth"