package/bluez5_utils{, -headers}: bump to version 5.86

- plugins sap and health have been removed
- headers moved to bluetooth subfolder
- drop upstreamed patches

Changelog:
https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/ChangeLog?h=5.86

Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
This commit is contained in:
Michael Nosthoff
2026-06-15 12:06:16 +02:00
committed by Fiona Klute
parent 9f3c9b43b0
commit 003b062974
9 changed files with 16 additions and 356 deletions

View File

@@ -146,6 +146,18 @@ endif
comment "Legacy options removed in 2026.08"
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP
bool "bluez sap plugin removed"
select BR2_LEGACY
help
Build plugin for SAP profile.
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH
bool "bluez health plugin removed"
select BR2_LEGACY
help
Build plugin for health profiles.
config BR2_GCC_VERSION_13_X
bool "gcc 13.x support removed"
select BR2_LEGACY

View File

@@ -5,7 +5,7 @@
################################################################################
# Keep the version and patches in sync with bluez5_utils
BLUEZ5_UTILS_HEADERS_VERSION = 5.79
BLUEZ5_UTILS_HEADERS_VERSION = 5.86
BLUEZ5_UTILS_HEADERS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz
BLUEZ5_UTILS_HEADERS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth
BLUEZ5_UTILS_HEADERS_DL_SUBDIR = bluez5_utils
@@ -19,7 +19,7 @@ BLUEZ5_UTILS_HEADERS_INSTALL_TARGET = NO
define BLUEZ5_UTILS_HEADERS_INSTALL_STAGING_CMDS
$(INSTALL) -d $(STAGING_DIR)/usr/include/bluetooth/
$(INSTALL) -m 644 $(@D)/lib/*.h $(STAGING_DIR)/usr/include/bluetooth/
$(INSTALL) -m 644 $(@D)/lib/bluetooth/*.h $(STAGING_DIR)/usr/include/bluetooth/
endef
$(eval $(generic-package))

View File

@@ -1,33 +0,0 @@
From 9d69dba21f1e46b34cdd8ae27fec11d0803907ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= <gudni.m.g@gmail.com>
Date: Sat, 2 Nov 2024 16:10:18 +0000
Subject: [PATCH] gdbus: define MAX_INPUT for musl
This is the same solution as was done in src/shared/util.c
Upstream: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=9d69dba21f1e46b34cdd8ae27fec11d0803907ee
Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
---
gdbus/object.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gdbus/object.c b/gdbus/object.c
index 84f116bf1..7b0476f1a 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -20,6 +20,12 @@
#include <dbus/dbus.h>
#include "gdbus.h"
+
+/* define MAX_INPUT for musl */
+#ifndef MAX_INPUT
+#define MAX_INPUT _POSIX_MAX_INPUT
+#endif
+
#include "src/shared/util.h"
#define info(fmt...)
--
2.45.2

View File

@@ -1,35 +0,0 @@
From b1fd409960001a77cda2a09ecc00147ebd9c3667 Mon Sep 17 00:00:00 2001
From: Fiona Klute <fiona.klute@gmx.de>
Date: Mon, 9 Dec 2024 16:40:43 +0100
Subject: [PATCH BlueZ] build: Leave config files writable for owner
This is needed for builds running as non-root users, so the build
process and any distribution tools can create/move/delete files in the
config directory without adjusting permissions separately. Limiting
writes from the running service needs to be done in the systemd unit
(already the case) or init script.
See also: https://lore.kernel.org/linux-bluetooth/4d1206df-598b-4a68-8655-74981b62ecca@gmx.de/T/
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Upstream: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=b1fd409960001a77cda2a09ecc00147ebd9c3667
Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 297d0774c..29018a91c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,7 +32,7 @@ confdir = $(sysconfdir)/bluetooth
statedir = $(localstatedir)/lib/bluetooth
bluetoothd-fix-permissions:
- install -dm555 $(DESTDIR)$(confdir)
+ install -dm755 $(DESTDIR)$(confdir)
install -dm700 $(DESTDIR)$(statedir)
if DATAFILES
--
2.45.2

View File

@@ -1,140 +0,0 @@
From b111b5e15eb74e08b74cb3c7e91bcb21f54be4c7 Mon Sep 17 00:00:00 2001
From: Thomas Perale <thomas.perale@mind.be>
Date: Thu, 1 May 2025 18:35:35 +0200
Subject: input: fix HID compilation w/o HoG
Commit [1] introduced a dependency with the HID plugin in the HoG code
As a result, building with --enable-hid --disable-hog caused linker
errors due to undefined references to HoG-related functions:
```
> ./configure --enable-hid --disable-hog
...
> make
...
CCLD src/bluetoothd
/usr/bin/ld: profiles/input/bluetoothd-manager.o: in function `input_init':
/home/../bluez/profiles/input/manager.c:122:(.text.input_init+0x1c8): undefined reference to `input_set_auto_sec'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6376: src/bluetoothd] Error 1
```
This patch moves the reading of the HOG specific configuration of the
'input.conf' file: LEAutoSecurity, to the HoG plugin file.
[1] f2778f587 input: Add LEAutoSecurity setting to input.conf
Upstream: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=b111b5e15eb74e08b74cb3c7e91bcb21f54be4c7
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
profiles/input/device.h | 1 -
profiles/input/hog.c | 40 +++++++++++++++++++++++++++++++++++-----
profiles/input/manager.c | 11 +----------
3 files changed, 36 insertions(+), 16 deletions(-)
diff --git a/profiles/input/device.h b/profiles/input/device.h
index 7b87ce5903..036a88980e 100644
--- a/profiles/input/device.h
+++ b/profiles/input/device.h
@@ -25,7 +25,6 @@ void input_set_userspace_hid(char *state);
uint8_t input_get_userspace_hid(void);
void input_set_classic_bonded_only(bool state);
bool input_get_classic_bonded_only(void);
-void input_set_auto_sec(bool state);
int input_device_register(struct btd_service *service);
void input_device_unregister(struct btd_service *service);
diff --git a/profiles/input/hog.c b/profiles/input/hog.c
index 017e320f07..f82648fec8 100644
--- a/profiles/input/hog.c
+++ b/profiles/input/hog.c
@@ -57,11 +57,6 @@ static gboolean suspend_supported = FALSE;
static bool auto_sec = true;
static struct queue *devices = NULL;
-void input_set_auto_sec(bool state)
-{
- auto_sec = state;
-}
-
static void hog_device_accept(struct hog_device *dev, struct gatt_db *db)
{
char name[248];
@@ -228,10 +223,45 @@ static struct btd_profile hog_profile = {
.auto_connect = true,
};
+static void hog_read_config(void)
+{
+ const char filename[] = CONFIGDIR "/input.conf";
+ GKeyFile *config;
+ GError *err = NULL;
+ bool config_auto_sec;
+
+ config = g_key_file_new();
+ if (!config) {
+ error("Failed to allocate memory for config");
+ return;
+ }
+
+ if (!g_key_file_load_from_file(config, filename, 0, &err)) {
+ if (!g_error_matches(err, G_FILE_ERROR, G_FILE_ERROR_NOENT))
+ error("Parsing %s failed: %s", filename, err->message);
+ g_error_free(err);
+ g_key_file_free(config);
+ return;
+ }
+
+ config_auto_sec = g_key_file_get_boolean(config, "General",
+ "LEAutoSecurity", &err);
+ if (!err) {
+ DBG("input.conf: LEAutoSecurity=%s",
+ config_auto_sec ? "true" : "false");
+ auto_sec = config_auto_sec;
+ } else
+ g_clear_error(&err);
+
+ g_key_file_free(config);
+}
+
static int hog_init(void)
{
int err;
+ hog_read_config();
+
err = suspend_init(suspend_callback, resume_callback);
if (err < 0)
error("Loading suspend plugin failed: %s (%d)", strerror(-err),
diff --git a/profiles/input/manager.c b/profiles/input/manager.c
index 95ca0a7ee5..1c0b6122a1 100644
--- a/profiles/input/manager.c
+++ b/profiles/input/manager.c
@@ -85,7 +85,7 @@ static int input_init(void)
config = load_config_file(CONFIGDIR "/input.conf");
if (config) {
int idle_timeout;
- gboolean classic_bonded_only, auto_sec;
+ gboolean classic_bonded_only;
char *uhid_enabled;
idle_timeout = g_key_file_get_integer(config, "General",
@@ -115,15 +115,6 @@ static int input_init(void)
} else
g_clear_error(&err);
- auto_sec = g_key_file_get_boolean(config, "General",
- "LEAutoSecurity", &err);
- if (!err) {
- DBG("input.conf: LEAutoSecurity=%s",
- auto_sec ? "true" : "false");
- input_set_auto_sec(auto_sec);
- } else
- g_clear_error(&err);
-
}
btd_profile_register(&input_profile);
--
cgit 1.2.3-korg

View File

@@ -1,120 +0,0 @@
From 9c52188d753002a6afd6ae145f921a2ff52c1c81 Mon Sep 17 00:00:00 2001
From: Thomas Perale <thomas.perale@mind.be>
Date: Thu, 1 May 2025 18:35:36 +0200
Subject: input: fix HoG compilation w/o HID
Commit [1] introduced a dependency with the HID plugin in the HoG code
As a result, building with --disable-hid --enable-hog caused linker
errors due to undefined references to HID-related functions:
```
> ./configure --disable-hid --enable-hog
> make
/usr/bin/ld: profiles/input/bluetoothd-hog.o: in function `hog_accept':
/home/../bluez/profiles/input/hog.c:184:(.text.hog_accept+0xbb): undefined reference to `input_get_auto_sec'
/usr/bin/ld: profiles/input/bluetoothd-hog.o: in function `hog_disconnect':
/home/../bluez/profiles/input/hog.c:205:(.text.hog_disconnect+0x12): undefined reference to `input_get_userspace_hid'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:6344: src/bluetoothd] Error 1
make: *** [Makefile:4695: all] Error 2
```
This patch duplicate the read of the 'UserspaceHID=persist' config entry
in the HoG plugin file to remove the dependency on the HID plugin files.
[1] 1782bfd79 input: Add support for UserspaceHID=persist
Fixes: https://github.com/bluez/bluez/issues/1228
Upstream: https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=9c52188d753002a6afd6ae145f921a2ff52c1c81
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
---
profiles/input/device.c | 5 -----
profiles/input/device.h | 1 -
profiles/input/hog.c | 14 ++++++++++++--
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/profiles/input/device.c b/profiles/input/device.c
index a7bc4d44fa..3642cc3267 100644
--- a/profiles/input/device.c
+++ b/profiles/input/device.c
@@ -112,11 +112,6 @@ void input_set_userspace_hid(char *state)
error("Unknown value '%s'", state);
}
-uint8_t input_get_userspace_hid(void)
-{
- return uhid_state;
-}
-
void input_set_classic_bonded_only(bool state)
{
classic_bonded_only = state;
diff --git a/profiles/input/device.h b/profiles/input/device.h
index 036a88980e..9056695026 100644
--- a/profiles/input/device.h
+++ b/profiles/input/device.h
@@ -22,7 +22,6 @@ struct input_conn;
void input_set_idle_timeout(int timeout);
void input_set_userspace_hid(char *state);
-uint8_t input_get_userspace_hid(void);
void input_set_classic_bonded_only(bool state);
bool input_get_classic_bonded_only(void);
diff --git a/profiles/input/hog.c b/profiles/input/hog.c
index f82648fec8..a3c876cf9f 100644
--- a/profiles/input/hog.c
+++ b/profiles/input/hog.c
@@ -40,7 +40,6 @@
#include "src/shared/gatt-client.h"
#include "src/plugin.h"
-#include "device.h"
#include "suspend.h"
#include "attrib/att.h"
#include "attrib/gattrib.h"
@@ -55,6 +54,7 @@ struct hog_device {
static gboolean suspend_supported = FALSE;
static bool auto_sec = true;
+static bool uhid_state_persist = false;
static struct queue *devices = NULL;
static void hog_device_accept(struct hog_device *dev, struct gatt_db *db)
@@ -203,7 +203,7 @@ static int hog_disconnect(struct btd_service *service)
{
struct hog_device *dev = btd_service_get_user_data(service);
- if (input_get_userspace_hid() == UHID_PERSIST)
+ if (uhid_state_persist)
bt_hog_detach(dev->hog, false);
else
bt_hog_detach(dev->hog, true);
@@ -229,6 +229,7 @@ static void hog_read_config(void)
GKeyFile *config;
GError *err = NULL;
bool config_auto_sec;
+ char *uhid_enabled;
config = g_key_file_new();
if (!config) {
@@ -253,6 +254,15 @@ static void hog_read_config(void)
} else
g_clear_error(&err);
+ uhid_enabled = g_key_file_get_string(config, "General",
+ "UserspaceHID", &err);
+ if (!err) {
+ DBG("input.conf: UserspaceHID=%s", uhid_enabled);
+ uhid_state_persist = strcasecmp(uhid_enabled, "persist") == 0;
+ free(uhid_enabled);
+ } else
+ g_clear_error(&err);
+
g_key_file_free(config);
}
--
cgit 1.2.3-korg

View File

@@ -72,11 +72,6 @@ config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_AUDIO
help
Build plugins for audio profiles (for A2DP and AVRCP).
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH
bool "build health plugin"
help
Build plugin for health profiles.
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID
bool "build hid plugin"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18
@@ -126,11 +121,6 @@ config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_NFC
help
Build plugin for NFC pairing.
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP
bool "build sap plugin"
help
Build plugin for SAP profile.
config BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS
bool "build sixaxis plugin"
depends on BR2_PACKAGE_HAS_UDEV

View File

@@ -1,5 +1,5 @@
# From https://www.kernel.org/pub/linux/bluetooth/sha256sums.asc:
sha256 4164a5303a9f71c70f48c03ff60be34231b568d93a9ad5e79928d34e6aa0ea8a bluez-5.79.tar.xz
sha256 99f144540c6070591e4c53bcb977eb42664c62b7b36cb35a29cf72ded339621d bluez-5.86.tar.xz
# Locally computed
sha256 b499eddebda05a8859e32b820a64577d91f1de2b52efa2a1575a2cb4000bc259 COPYING
sha256 ec60b993835e2c6b79e6d9226345f4e614e686eb57dc13b6420c15a33a8996e5 COPYING.LIB

View File

@@ -5,7 +5,7 @@
################################################################################
# Keep the version and patches in sync with bluez5_utils-headers
BLUEZ5_UTILS_VERSION = 5.79
BLUEZ5_UTILS_VERSION = 5.86
BLUEZ5_UTILS_SOURCE = bluez-$(BLUEZ5_UTILS_VERSION).tar.xz
BLUEZ5_UTILS_SITE = $(BR2_KERNEL_MIRROR)/linux/bluetooth
BLUEZ5_UTILS_INSTALL_STAGING = YES
@@ -86,13 +86,6 @@ BLUEZ5_UTILS_CONF_OPTS += \
--disable-vcp
endif
# enable health plugin
ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HEALTH),y)
BLUEZ5_UTILS_CONF_OPTS += --enable-health
else
BLUEZ5_UTILS_CONF_OPTS += --disable-health
endif
# enable hid plugin
ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_HID),y)
BLUEZ5_UTILS_CONF_OPTS += --enable-hid
@@ -137,13 +130,6 @@ else
BLUEZ5_UTILS_CONF_OPTS += --disable-nfc
endif
# enable sap plugin
ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SAP),y)
BLUEZ5_UTILS_CONF_OPTS += --enable-sap
else
BLUEZ5_UTILS_CONF_OPTS += --disable-sap
endif
# enable sixaxis plugin
ifeq ($(BR2_PACKAGE_BLUEZ5_UTILS_PLUGINS_SIXAXIS),y)
BLUEZ5_UTILS_CONF_OPTS += --enable-sixaxis