[arch-commits] Commit in bluez/repos (4 files)

Andreas Radke andyrtr at archlinux.org
Mon Jun 14 17:25:49 UTC 2021


    Date: Monday, June 14, 2021 @ 17:25:49
  Author: andyrtr
Revision: 418226

archrelease: copy trunk to testing-x86_64

Added:
  bluez/repos/testing-x86_64/
  bluez/repos/testing-x86_64/0001-rfkill-Fix-reading-from-rfkill-socket.patch
    (from rev 418225, bluez/trunk/0001-rfkill-Fix-reading-from-rfkill-socket.patch)
  bluez/repos/testing-x86_64/PKGBUILD
    (from rev 418225, bluez/trunk/PKGBUILD)
  bluez/repos/testing-x86_64/bluetooth.modprobe
    (from rev 418225, bluez/trunk/bluetooth.modprobe)

--------------------------------------------------+
 0001-rfkill-Fix-reading-from-rfkill-socket.patch |   83 ++++++++++
 PKGBUILD                                         |  162 +++++++++++++++++++++
 bluetooth.modprobe                               |    3 
 3 files changed, 248 insertions(+)

Copied: bluez/repos/testing-x86_64/0001-rfkill-Fix-reading-from-rfkill-socket.patch (from rev 418225, bluez/trunk/0001-rfkill-Fix-reading-from-rfkill-socket.patch)
===================================================================
--- testing-x86_64/0001-rfkill-Fix-reading-from-rfkill-socket.patch	                        (rev 0)
+++ testing-x86_64/0001-rfkill-Fix-reading-from-rfkill-socket.patch	2021-06-14 17:25:49 UTC (rev 418226)
@@ -0,0 +1,83 @@
+From 382646b490c1c336dd32f9186293616ceb4d808b Mon Sep 17 00:00:00 2001
+From: Benjamin Berg <bberg at redhat.com>
+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

Copied: bluez/repos/testing-x86_64/PKGBUILD (from rev 418225, bluez/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD	                        (rev 0)
+++ testing-x86_64/PKGBUILD	2021-06-14 17:25:49 UTC (rev 418226)
@@ -0,0 +1,162 @@
+# Maintainer: Andreas Radke <andyrtr at archlinux.org>
+# Contributor: Tom Gundersen <teg at jklm.no>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy at archlinux.org>
+
+pkgbase=bluez
+pkgname=('bluez' 'bluez-utils' 'bluez-libs' 'bluez-cups' 'bluez-hid2hci' 'bluez-plugins')
+pkgver=5.59
+pkgrel=2
+url="http://www.bluez.org/"
+arch=('x86_64')
+license=('GPL2')
+makedepends=('dbus' 'libical' 'systemd' 'alsa-lib' 'json-c' 'ell' 'python-docutils')
+source=(https://www.kernel.org/pub/linux/bluetooth/${pkgname}-${pkgver}.tar.{xz,sign}
+        bluetooth.modprobe
+        0001-rfkill-Fix-reading-from-rfkill-socket.patch
+)
+# see https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc
+sha256sums=('046b95b386d0bfb2a16311fe799d517ee7735045512d89902c4ed701db477316'
+            'SKIP'
+            '46c021be659c9a1c4e55afd04df0c059af1f3d98a96338236412e449bf7477b4'
+            'befc9c56fa15fe276916d299e70901d09aedc25d5a29ee444e78fa76f297e72f')
+validpgpkeys=('E932D120BC2AEC444E558F0106CA9F5D1DCF2659') # Marcel Holtmann <marcel at holtmann.org>
+
+prepare() {
+  cd "${pkgname}"-${pkgver}
+  # https://bugs.archlinux.org/task/71243
+  patch -Np1 -i ../0001-rfkill-Fix-reading-from-rfkill-socket.patch
+}
+
+build() {
+  cd "${pkgname}"-${pkgver}
+  ./configure \
+          --prefix=/usr \
+          --mandir=/usr/share/man \
+          --sysconfdir=/etc \
+          --localstatedir=/var \
+          --libexecdir=/usr/lib \
+          --with-dbusconfdir=/usr/share \
+          --enable-btpclient \
+          --enable-midi \
+          --enable-sixaxis \
+          --enable-mesh \
+          --enable-hid2hci \
+          --enable-experimental \
+          --enable-library # this is deprecated
+  make
+}
+
+check() {
+  cd "$pkgname"-$pkgver
+  # tests segfault and hang
+#  make check || /bin/true # https://bugzilla.kernel.org/show_bug.cgi?id=196621
+}
+
+
+package_bluez() {
+  pkgdesc="Daemons for the bluetooth protocol stack"
+  depends=('libical' 'dbus' 'glib2' 'alsa-lib' 'json-c')
+  backup=('etc/bluetooth/main.conf')
+  conflicts=('obexd-client' 'obexd-server')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR=${pkgdir} \
+       install-pkglibexecPROGRAMS \
+       install-dbussessionbusDATA \
+       install-systemdsystemunitDATA \
+       install-systemduserunitDATA \
+       install-dbussystembusDATA \
+       install-dbusDATA \
+       install-man8
+
+  # ship upstream main config file
+  install -dm755 "${pkgdir}"/etc/bluetooth
+  install -Dm644 "${srcdir}"/"${pkgbase}"-${pkgver}/src/main.conf "${pkgdir}"/etc/bluetooth/main.conf
+
+  # add basic documention
+  install -dm755 "${pkgdir}"/usr/share/doc/"${pkgbase}"/dbus-apis
+  cp -a doc/*.txt "${pkgdir}"/usr/share/doc/"${pkgbase}"/dbus-apis/
+  # fix module loading errors
+  install -dm755 "${pkgdir}"/usr/lib/modprobe.d
+  install -Dm644 "${srcdir}"/bluetooth.modprobe "${pkgdir}"/usr/lib/modprobe.d/bluetooth-usb.conf
+  # load module at system start required by some functions
+  # https://bugzilla.kernel.org/show_bug.cgi?id=196621
+  install -dm755 "$pkgdir"/usr/lib/modules-load.d
+  echo "crypto_user" > "$pkgdir"/usr/lib/modules-load.d/bluez.conf
+  
+  # fix obex file transfer - https://bugs.archlinux.org/task/45816
+  ln -fs /usr/lib/systemd/user/obex.service "${pkgdir}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+}
+
+package_bluez-utils() {
+  pkgdesc="Development and debugging utilities for the bluetooth protocol stack"
+  depends=('dbus' 'systemd' 'glib2')
+  optdepends=('ell: for btpclient')
+  conflicts=('bluez-hcidump')
+  provides=('bluez-hcidump')
+  replaces=('bluez-hcidump' 'bluez<=4.101')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR="${pkgdir}" \
+       install-binPROGRAMS \
+       install-dist_zshcompletionDATA \
+       install-man1
+
+  # add missing tools FS#41132, FS#41687, FS#42716
+  for files in `find tools/ -type f -perm -755`; do
+    filename=$(basename $files)
+    install -Dm755 "${srcdir}"/"${pkgbase}"-${pkgver}/tools/$filename "${pkgdir}"/usr/bin/$filename
+  done
+  
+  # libbluetooth.so* are part of libLTLIBRARIES and binPROGRAMS targets
+  #make DESTDIR=${pkgdir} uninstall-libLTLIBRARIES
+  #rmdir ${pkgdir}/usr/lib
+  rm -rf "${pkgdir}"/usr/lib
+  
+  # move the hid2hci man page out
+  mv "${pkgdir}"/usr/share/man/man1/hid2hci.1 "${srcdir}"/
+}
+
+package_bluez-libs() {
+  pkgdesc="Deprecated libraries for the bluetooth protocol stack"
+  depends=('glibc')
+  provides=('libbluetooth.so')
+  license=('LGPL2.1')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR="${pkgdir}" \
+       install-pkgincludeHEADERS \
+       install-libLTLIBRARIES \
+       install-pkgconfigDATA
+}
+
+package_bluez-cups() {
+  pkgdesc="CUPS printer backend for Bluetooth printers"
+  depends=('cups')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR="${pkgdir}" install-cupsPROGRAMS
+}
+
+package_bluez-hid2hci() {
+  pkgdesc="Put HID proxying bluetooth HCI's into HCI mode"
+  depends=('systemd')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR=${pkgdir} \
+       install-udevPROGRAMS \
+       install-rulesDATA
+  
+  install -dm755 "${pkgdir}"/usr/share/man/man1
+  mv "${srcdir}"/hid2hci.1 "${pkgdir}"/usr/share/man/man1/hid2hci.1
+}
+
+package_bluez-plugins() {
+  pkgdesc="bluez plugins (PS3 Sixaxis controller)"
+  depends=('systemd')
+
+  cd "${pkgbase}"-${pkgver}
+  make DESTDIR="${pkgdir}" \
+       install-pluginLTLIBRARIES
+}

Copied: bluez/repos/testing-x86_64/bluetooth.modprobe (from rev 418225, bluez/trunk/bluetooth.modprobe)
===================================================================
--- testing-x86_64/bluetooth.modprobe	                        (rev 0)
+++ testing-x86_64/bluetooth.modprobe	2021-06-14 17:25:49 UTC (rev 418226)
@@ -0,0 +1,3 @@
+# use "reset=1" as default, since it should be safe for recent devices and
+# solves all kind of problems.
+options btusb reset=1



More information about the arch-commits mailing list