From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <gentoo-commits+bounces-1673352-garchives=archives.gentoo.org@lists.gentoo.org> Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id E0EF2158083 for <garchives@archives.gentoo.org>; Tue, 24 Sep 2024 06:12:37 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 13A18E2B3D; Tue, 24 Sep 2024 06:12:37 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E9CACE2B3D for <gentoo-commits@lists.gentoo.org>; Tue, 24 Sep 2024 06:12:36 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 28911343474 for <gentoo-commits@lists.gentoo.org>; Tue, 24 Sep 2024 06:12:36 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 8ABEB1F2E for <gentoo-commits@lists.gentoo.org>; Tue, 24 Sep 2024 06:12:34 +0000 (UTC) From: "Sam James" <sam@gentoo.org> To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" <sam@gentoo.org> Message-ID: <1727158277.c5d8c3399a48d1eadc97063b7c538c06aa065a01.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/, net-wireless/bluez/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: net-wireless/bluez/bluez-5.78.ebuild net-wireless/bluez/files/bluez-5.78-musl-1.2.5.patch X-VCS-Directories: net-wireless/bluez/files/ net-wireless/bluez/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: c5d8c3399a48d1eadc97063b7c538c06aa065a01 X-VCS-Branch: master Date: Tue, 24 Sep 2024 06:12:34 +0000 (UTC) Precedence: bulk List-Post: <mailto:gentoo-commits@lists.gentoo.org> List-Help: <mailto:gentoo-commits+help@lists.gentoo.org> List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org> List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org> List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org> X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e6fa899a-83bb-485d-8495-322a3bf1dfff X-Archives-Hash: 8c4f874686a5b072e1161577b55d89d3 commit: c5d8c3399a48d1eadc97063b7c538c06aa065a01 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Sep 24 06:11:17 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Sep 24 06:11:17 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c5d8c339 net-wireless/bluez: fix musl build Closes: https://bugs.gentoo.org/926344 Signed-off-by: Sam James <sam <AT> gentoo.org> net-wireless/bluez/bluez-5.78.ebuild | 3 + .../bluez/files/bluez-5.78-musl-1.2.5.patch | 312 +++++++++++++++++++++ 2 files changed, 315 insertions(+) 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