summaryrefslogtreecommitdiff
path: root/net-wireless/bluez
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-09-25 01:25:44 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-09-25 01:25:44 +0100
commitc25088d4fc442a7d6dc3a8d0498b43024888318d (patch)
treefdb19b6a9b3a20669ecb49f0ba8d9f435fbb4b1a /net-wireless/bluez
parentd80b870c42fbe218389ffaf86f0f2a39404deca1 (diff)
gentoo auto-resync : 25:09:2024 - 01:25:44
Diffstat (limited to 'net-wireless/bluez')
-rw-r--r--net-wireless/bluez/Manifest3
-rw-r--r--net-wireless/bluez/bluez-5.78.ebuild3
-rw-r--r--net-wireless/bluez/files/bluez-5.78-musl-1.2.5.patch312
3 files changed, 317 insertions, 1 deletions
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index d1c8d82bb350..75d3402b4115 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,9 +1,10 @@
AUX 0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch 698 BLAKE2B 41f16a7227518616160aecd016f462f2e636166ddc546aa4fe099e3c6146648b2e0985b97b97eeb3941ebb8666a9ba83803dc773e3d752adc1177c50e7073390 SHA512 144cfa6b1608c59cd49f23871d3fb63fd4b4d08bd0a5fe51ce775218d8d46ef22bd11e2ae3b571d42b7571bbbfe1d5b5e7e49864f1e147242ecddb1c3976b611
AUX bluetooth-conf.d 21 BLAKE2B 7c94e499438f441fc18f0b50178e707982ac91871a74b2e7a35c9930d32441a89f742993e993e3003f9bcb5e3ee9adde2ab1cbe33b27245b1b1e91e7c3dc1a0b SHA512 45befd3fb42ea3462fa6e1ee9f3ee9591e197d4925a4c9df6733bacfe44cf44f54ed3aad6fd7a6a2953da54b93460a1cf0ea1cadf0d7e47f811e4c3182af74d5
AUX bluetooth-init.d-r5 313 BLAKE2B 6bad1b9a75de5927ab22a229d6ce18247b32a79b994078338eff33df7f74a7dc4a5266212f6d0150101600e3a864a9b64ce6a576208218750bfbe88bc5911baa SHA512 95aff192be6207047fc01b42754bcd34d5cd7f82c16486fdd81bb1d14be040e4f3e9bafd8dc2f4e8b87bf1eb50f6634f526feaf2b38c0c6807f40784d84dac96
+AUX bluez-5.78-musl-1.2.5.patch 8604 BLAKE2B 03d961af3e05de95a7c14aa8bbbb70baebd521a433ff7cbcede2532d2db10792718f4d0df024a39cbb23a53a2a1b1a42b23dac2a9ec1069d6c0292bce34ccd03 SHA512 29fe6de760478943622700217a0648738cd5b42e354fcf6866ada2cbe24de5212ff0489c3f349ca25ea7538f4efbbebeb453f7d789c41e10b982ee968638e1c8
AUX bluez-udevadm-path-r1.patch 564 BLAKE2B 0b4dc12f55ab60d254aa3365baf35186a5913026dbfcbc3da41c113b3c423c81189b87016dabcb2c505b684cad376d10d10df9aa17558b8fd022928995931e0e SHA512 d9b0dd452258e425802cf5ad4980a77796be79e94bf6ce641927c5ab7ea1117ce6589063f3a0b96bf25e81303234279a09d58484fec49cfc6aa1db46f245f9c6
DIST bluez-5.77.tar.xz 2432176 BLAKE2B 9c1a8c78ad11a79080af12333338a6b75189ac51f8c49545de9eede8544fea531a7d8f50676f6e26c84289828fe8327bbc3e5b50ad4d9c08822cf0353a82ecaf SHA512 cf0faba4ddbfe6cc3c2d86cbd809483ed82327cbd7e4970ef53cf19053de7b355a505cab88844aebe7a6aa1947ec7a366250d3cbf48cf309db413d287289ff99
DIST bluez-5.78.tar.xz 2441672 BLAKE2B 7fe65e926b2a692fcf96bb9c694c42ad8c0bd2d19bf534427128bfbd1eb4d9e3e63f2bdc4659ee8654967a0ac7866a561bc4bd4656d19e0dcb7cc5ce976eb6b2 SHA512 0c591a42742c167ff51e088d898b751f11cb4808ec2f17d9a85bc247a32d4fe18fa17503d188ffad6d9393ad590574518055abe5beeb788aca07d5ba957e4e4d
EBUILD bluez-5.77.ebuild 8589 BLAKE2B 5fe0431297fd7a7ff8439d8097346917c9af21a59b0b133c8be168e15dd0eb74aed6979b7db2ee7b25aa4cd0734f38428d4cd6a2f76213c2391b5d7eed15d3f3 SHA512 209d2fdac38bbee4b055987b591edae4d5f85ba3835b82914ccecde17a1ffb1f1321f1159acc36b39cf341c3c450b716a388c56744ec750c08e1e818cb17a0a1
-EBUILD bluez-5.78.ebuild 8596 BLAKE2B 272764009bae68483b5c59b3869652a7fab94e9c9246c31f302c2b4b210d61fdd3c360eb74a062725852a65a901e8ff975dd572057b1212b462d2dfa51865b0b SHA512 87e2e0ed575b821a029adf41fb57df28a3e55620ad75e91c6868905263598bcc65a146e872ce005f2625d56104d014f8cacff1684f8022389191d01da54900de
+EBUILD bluez-5.78.ebuild 8699 BLAKE2B 3852a32b85e18d27a157e930e0a29f10b2f67fbb8128a1a4e52433b69d6e02b55a3ea75474bbc74f1c7e98f3633f37e9bbd7889523bfdc8c145b9c4755cf30f2 SHA512 4bd853f77466ddf5503d617fb31fb52b52e0c589506ea45af47d1bae25b98435436a1cf2bfdbfa910dfb4edc707ccc16465747ac3f4d8ca74d90adc16d080995
MISC metadata.xml 1150 BLAKE2B 830a8e0c89fcc18af92e063ceb3632c97eed9f7424ac5214dd4c853b142d03bba6d629b86fc41ecc28a450a9b7989a21faaae1b95654cb8f16ce2ceb3a97e025 SHA512 44e4489f48634d1b1ff300ccba0f7caa74b76ac7325d38d395ee53763906743f7b622b028a01d32e963952a23da560c16b8cd6771a9001ba90845b59293a6101
diff --git a/net-wireless/bluez/bluez-5.78.ebuild b/net-wireless/bluez/bluez-5.78.ebuild
index 9caf41f57bcf..fd91fb2295c3 100644
--- a/net-wireless/bluez/bluez-5.78.ebuild
+++ b/net-wireless/bluez/bluez-5.78.ebuild
@@ -66,6 +66,9 @@ PATCHES=(
# https://bugs.gentoo.org/539844
# https://github.com/bluez/bluez/issues/268
"${FILESDIR}"/${PN}-udevadm-path-r1.patch
+ # bug #926344
+ # https://github.com/bluez/bluez/issues/843
+ "${FILESDIR}"/${PN}-5.78-musl-1.2.5.patch
)
pkg_setup() {
diff --git a/net-wireless/bluez/files/bluez-5.78-musl-1.2.5.patch b/net-wireless/bluez/files/bluez-5.78-musl-1.2.5.patch
new file mode 100644
index 000000000000..0ee929faa3e4
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.78-musl-1.2.5.patch
@@ -0,0 +1,312 @@
+https://bugs.gentoo.org/926344
+
+hex2hcd: https://github.com/bluez/bluez/pull/897 (https://lore.kernel.org/linux-bluetooth/20240710123002.5639-1-rahul@sandhuservices.dev/)
+rpl:
+ 1) https://github.com/bluez/bluez/commit/690eccbe8562cc33f33503af67beb313ca737817
+ 2) https://github.com/bluez/bluez/issues/843#issuecomment-2354143400
+
+From e2f12111385dc4c21e2ef435025e1ddf8c386fa2 Mon Sep 17 00:00:00 2001
+From: Rahul Sandhu <rahul@sandhuservices.dev>
+Date: Wed, 10 Jul 2024 11:12:30 +0100
+Subject: [PATCH] tools/hex2hcd: fix musl compatibility
+
+The call to basename() relies on a GNU extension
+to take a const char * vs a char *. Let's define
+a trivial helper function to ensure compatibility
+with musl.
+
+Downstream gentoo bug: https://bugs.gentoo.org/926344
+Fixes: #843
+Signed-off-by: Rahul Sandhu <rahul@sandhuservices.dev>
+---
+ tools/hex2hcd.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tools/hex2hcd.c b/tools/hex2hcd.c
+index e6dca5a810..42c95b759b 100644
+--- a/tools/hex2hcd.c
++++ b/tools/hex2hcd.c
+@@ -285,6 +285,11 @@ static void ver_parse_file(const char *pathname)
+ prev->next = ver;
+ }
+
++static const char *helper_basename(const char *path) {
++ const char *base = strrchr(path, '/');
++ return base ? base + 1 : path;
++}
++
+ static void ver_parse_entry(const char *pathname)
+ {
+ struct stat st;
+@@ -302,7 +307,7 @@ static void ver_parse_entry(const char *pathname)
+ }
+
+ if (S_ISREG(st.st_mode)) {
+- ver_parse_file(basename(pathname));
++ ver_parse_file(helper_basename(pathname));
+ goto done;
+ }
+
+From 690eccbe8562cc33f33503af67beb313ca737817 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 27 Aug 2024 23:09:26 -0700
+Subject: [PATCH] mesh: Provide GNU basename compatible implementation
+
+Call to basename() relies on a GNU extension
+to take a const char * vs a char *. Let's define
+a trivial helper function to ensure compatibility
+with musl.
+
+Fixes: https://github.com/bluez/bluez/issues/843
+---
+ configure.ac | 11 ++++++++++-
+ mesh/mesh-config-json.c | 4 +++-
+ mesh/missing.h | 21 +++++++++++++++++++++
+ mesh/rpl.c | 1 +
+ tools/hex2hcd.c | 1 +
+ tools/missing.h | 21 +++++++++++++++++++++
+ 6 files changed, 57 insertions(+), 2 deletions(-)
+ create mode 100644 mesh/missing.h
+ create mode 100644 tools/missing.h
+
+diff --git a/configure.ac b/configure.ac
+index 790a19560d..7093e41ff7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,7 +70,16 @@ AC_CHECK_LIB(pthread, pthread_create, dummy=yes,
+ AC_CHECK_LIB(dl, dlopen, dummy=yes,
+ AC_MSG_ERROR(dynamic linking loader is required))
+
+-AC_CHECK_HEADERS(linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h)
++AC_CHECK_HEADERS(string.h linux/types.h linux/if_alg.h linux/uinput.h linux/uhid.h sys/random.h)
++
++# basename may be only available in libgen.h with the POSIX behavior,
++# not desired here
++AC_CHECK_DECLS([basename], [],
++ AC_MSG_WARN([GNU basename extension not found]),
++ [#define _GNU_SOURCE 1
++ #include <string.h>
++ ])
++
+
+ PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28)
+
+diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c
+index c198627c6f..a17a48b6d1 100644
+--- a/mesh/mesh-config-json.c
++++ b/mesh/mesh-config-json.c
+@@ -28,6 +28,7 @@
+ #include <ell/ell.h>
+ #include <json-c/json.h>
+
++#include "mesh/missing.h"
+ #include "mesh/mesh-defs.h"
+ #include "mesh/util.h"
+ #include "mesh/mesh-config.h"
+@@ -2694,7 +2695,8 @@ bool mesh_config_load_nodes(const char *cfgdir_name, mesh_config_node_func_t cb,
+
+ void mesh_config_destroy_nvm(struct mesh_config *cfg)
+ {
+- char *node_dir, *node_name;
++ char *node_dir;
++ const char *node_name;
+ char uuid[33];
+
+ if (!cfg)
+diff --git a/mesh/missing.h b/mesh/missing.h
+new file mode 100644
+index 0000000000..464df9b1c3
+--- /dev/null
++++ b/mesh/missing.h
+@@ -0,0 +1,21 @@
++// SPDX-License-Identifier: LGPL-2.1-or-later
++/*
++ *
++ * BlueZ - Bluetooth protocol stack for Linux
++ *
++ * Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
++ *
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#if !HAVE_DECL_BASENAME
++#include <string.h>
++static inline const char *basename(const char *path)
++{
++ const char *base = strrchr(path, '/');
++
++ return base ? base + 1 : path;
++}
++#endif
+diff --git a/mesh/rpl.c b/mesh/rpl.c
+index fb225dddd6..2fa17d72f6 100644
+--- a/mesh/rpl.c
++++ b/mesh/rpl.c
+@@ -24,6 +24,7 @@
+
+ #include <ell/ell.h>
+
++#include "mesh/missing.h"
+ #include "mesh/mesh-defs.h"
+
+ #include "mesh/node.h"
+diff --git a/tools/hex2hcd.c b/tools/hex2hcd.c
+index e6dca5a810..452ab2beb5 100644
+--- a/tools/hex2hcd.c
++++ b/tools/hex2hcd.c
+@@ -24,6 +24,7 @@
+ #include <stdlib.h>
+ #include <stdbool.h>
+ #include <sys/stat.h>
++#include "tools/missing.h"
+
+ static ssize_t process_record(int fd, const char *line, uint16_t *upper_addr)
+ {
+diff --git a/tools/missing.h b/tools/missing.h
+new file mode 100644
+index 0000000000..464df9b1c3
+--- /dev/null
++++ b/tools/missing.h
+@@ -0,0 +1,21 @@
++// SPDX-License-Identifier: LGPL-2.1-or-later
++/*
++ *
++ * BlueZ - Bluetooth protocol stack for Linux
++ *
++ * Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
++ *
++ */
++
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++#if !HAVE_DECL_BASENAME
++#include <string.h>
++static inline const char *basename(const char *path)
++{
++ const char *base = strrchr(path, '/');
++
++ return base ? base + 1 : path;
++}
++#endif
+
+From e882342db836d267a9ca4d0886e6828a2aba67b4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Sep 2024 15:11:01 -0700
+Subject: [PATCH] mesh: Move local basename into utility file
+
+Defining an override via a missing.h can prove difficult when a file
+needs to use basename and dirname both the APIs and needs to include
+libgen.h for them, in such situations there will be signature clash
+for basename function.
+---
+ mesh/mesh-config-json.c | 3 +--
+ mesh/missing.h | 21 ---------------------
+ mesh/rpl.c | 3 +--
+ mesh/util.c | 10 ++++++++++
+ mesh/util.h | 5 +++++
+ 5 files changed, 17 insertions(+), 25 deletions(-)
+ delete mode 100644 mesh/missing.h
+
+diff --git a/mesh/mesh-config-json.c b/mesh/mesh-config-json.c
+index a17a48b6d..5372130d7 100644
+--- a/mesh/mesh-config-json.c
++++ b/mesh/mesh-config-json.c
+@@ -28,7 +28,6 @@
+ #include <ell/ell.h>
+ #include <json-c/json.h>
+
+-#include "mesh/missing.h"
+ #include "mesh/mesh-defs.h"
+ #include "mesh/util.h"
+ #include "mesh/mesh-config.h"
+@@ -2708,7 +2707,7 @@ void mesh_config_destroy_nvm(struct mesh_config *cfg)
+ if (!hex2str(cfg->uuid, 16, uuid, sizeof(uuid)))
+ return;
+
+- node_name = basename(node_dir);
++ node_name = mesh_basename(node_dir);
+
+ /* Make sure path name of node follows expected guidelines */
+ if (strcmp(node_name, uuid))
+diff --git a/mesh/missing.h b/mesh/missing.h
+deleted file mode 100644
+index 464df9b1c..000000000
+--- a/mesh/missing.h
++++ /dev/null
+@@ -1,21 +0,0 @@
+-// SPDX-License-Identifier: LGPL-2.1-or-later
+-/*
+- *
+- * BlueZ - Bluetooth protocol stack for Linux
+- *
+- * Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
+- *
+- */
+-
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
+-#if !HAVE_DECL_BASENAME
+-#include <string.h>
+-static inline const char *basename(const char *path)
+-{
+- const char *base = strrchr(path, '/');
+-
+- return base ? base + 1 : path;
+-}
+-#endif
+diff --git a/mesh/rpl.c b/mesh/rpl.c
+index 2fa17d72f..69533bf43 100644
+--- a/mesh/rpl.c
++++ b/mesh/rpl.c
+@@ -24,7 +24,6 @@
+
+ #include <ell/ell.h>
+
+-#include "mesh/missing.h"
+ #include "mesh/mesh-defs.h"
+
+ #include "mesh/node.h"
+@@ -147,7 +146,7 @@ static void get_entries(const char *iv_path, struct l_queue *rpl_list)
+ if (!dir)
+ return;
+
+- iv_txt = basename(iv_path);
++ iv_txt = mesh_basename(iv_path);
+ if (sscanf(iv_txt, "%08x", &iv_index) != 1) {
+ closedir(dir);
+ return;
+diff --git a/mesh/util.c b/mesh/util.c
+index 82b57f642..73f13aab7 100644
+--- a/mesh/util.c
++++ b/mesh/util.c
+@@ -161,3 +161,13 @@ void enable_debug(void)
+ debug_enabled = true;
+ l_debug_enable("*");
+ }
++
++#if !HAVE_DECL_BASENAME
++#include <string.h>
++const char *mesh_basename(const char *path)
++{
++ const char *base = strrchr(path, '/');
++
++ return base ? base + 1 : path;
++}
++#endif
+diff --git a/mesh/util.h b/mesh/util.h
+index 085ec3330..bb417dc40 100644
+--- a/mesh/util.h
++++ b/mesh/util.h
+@@ -16,3 +16,8 @@ void print_packet(const char *label, const void *data, uint16_t size);
+ int create_dir(const char *dir_name);
+ void del_path(const char *path);
+ void enable_debug(void);
++#if !HAVE_DECL_BASENAME
++const char *mesh_basename(const char *path);
++#else
++#define mesh_basename basename
++#endif