From 04365eaf13bacfaf6889c2e9dfbe7f42f2c24a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Tue, 15 Jun 2021 15:06:26 -0300 Subject: [PATCH 1/2] ell: update to 0.41. --- common/shlibs | 2 +- srcpkgs/ell/template | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/shlibs b/common/shlibs index 179fe27443be..7b007a129e17 100644 --- a/common/shlibs +++ b/common/shlibs @@ -977,7 +977,7 @@ libgsm.so.1 libgsm-1.0.13_13 libcgroup.so.1 libcgroup-0.37.1_1 libxdg-basedir.so.1 libxdg-basedir-1.1.1_1 libev.so.4 libev-4.04_1 -libell.so.0 ell-0.39_1 +libell.so.0 ell-0.41_1 libgvnc-1.0.so.0 gtk-vnc-0.4.4_1 libgtk-vnc-2.0.so.0 gtk-vnc-0.4.4_1 libyaml-0.so.2 libyaml-0.1.4_1 diff --git a/srcpkgs/ell/template b/srcpkgs/ell/template index 9c798a84e8ae..6e0171160911 100644 --- a/srcpkgs/ell/template +++ b/srcpkgs/ell/template @@ -1,7 +1,7 @@ # Template file for 'ell' # ell ABI isn't stable! Always test dependants after updates and update common/shlibs pkgname=ell -version=0.39 +version=0.41 revision=1 build_style=gnu-configure configure_args="--enable-glib" @@ -13,7 +13,7 @@ maintainer="Érico Nogueira " license="GPL-2.0-only" homepage="https://01.org/ell" distfiles="${KERNEL_SITE}/libs/${pkgname}/${pkgname}-${version}.tar.xz" -checksum=653e2e139e23ed31e03c56c05f15321a9e818e2dca00a315c18d2c7b72f15d08 +checksum=4e8dba6c53cf152dbd0fd1dc3d4c7b04abf79e20a948895f85943e586870505c # tests depend on kernel features make_check=extended From 75dcc7164f53f7c28e260cc6bb7456ef6582c733 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Tue, 15 Jun 2021 15:07:56 -0300 Subject: [PATCH 2/2] bluez: update to 5.59. Patch came from Arch and can also be found in [1]. [1] https://www.spinics.net/lists/linux-bluetooth/msg91322.html --- ...fkill-Fix-reading-from-rfkill-socket.patch | 83 +++++++++++++++++++ srcpkgs/bluez/template | 8 +- 2 files changed, 87 insertions(+), 4 deletions(-) create mode 100644 srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch 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 new file mode 100644 index 000000000000..1bcb6524f5bd --- /dev/null +++ b/srcpkgs/bluez/patches/0001-rfkill-Fix-reading-from-rfkill-socket.patch @@ -0,0 +1,83 @@ +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 723a14183336..e6ef1b9b6b0e 100644 --- a/srcpkgs/bluez/template +++ b/srcpkgs/bluez/template @@ -1,13 +1,13 @@ # Template file for 'bluez' pkgname=bluez -version=5.58 -revision=2 +version=5.59 +revision=1 build_style=gnu-configure configure_args="--with-udevdir=/usr/lib/udev --disable-systemd --enable-sixaxis --enable-threads --enable-library --enable-deprecated --enable-external-ell $(vopt_enable mesh) $(vopt_enable nfc) $(vopt_enable experimental)" -hostmakedepends="automake flex libtool pkg-config" +hostmakedepends="automake flex libtool pkg-config python3-docutils" makedepends="cups-devel eudev-libudev-devel libglib-devel libical-devel readline-devel ell-devel $(vopt_if mesh json-c-devel)" short_desc="Bluetooth tools and daemons" @@ -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=c8065e75a5eb67236849ef68a354b1700540305a8c88ef0a0fd6288f19daf1f1 +checksum=046b95b386d0bfb2a16311fe799d517ee7735045512d89902c4ed701db477316 conf_files="/etc/bluetooth/main.conf" system_groups="bluetooth" patch_args="-Np1"