net-wireless/bluez: drop 5.78

Signed-off-by: Pacho Ramos <pacho@gentoo.org>
This commit is contained in:
Pacho Ramos
2025-04-12 19:16:13 +02:00
parent dbda2b70cf
commit cd49d053d8
4 changed files with 0 additions and 612 deletions

View File

@@ -1,3 +1,2 @@
DIST bluez-5.78.tar.xz 2441672 BLAKE2B 7fe65e926b2a692fcf96bb9c694c42ad8c0bd2d19bf534427128bfbd1eb4d9e3e63f2bdc4659ee8654967a0ac7866a561bc4bd4656d19e0dcb7cc5ce976eb6b2 SHA512 0c591a42742c167ff51e088d898b751f11cb4808ec2f17d9a85bc247a32d4fe18fa17503d188ffad6d9393ad590574518055abe5beeb788aca07d5ba957e4e4d
DIST bluez-5.79.tar.xz 2457612 BLAKE2B e908bc000b45832845a09ea7e906d39e107e4934fef4efc9a78b278b7f8ae914ed3a573ef53512de7076a3b1ca8115634fb502cb8d1d0c8516febe05f9e059f8 SHA512 74d47b1eb9b9904798f5c8093674743a14a509d22c33003cf253a1ab0c11a564e6a10a808e087e3fb7f3589d3cba1868ec9bf2923703cdc36a293c95af1d0d76
DIST bluez-5.82.tar.xz 2471984 BLAKE2B caf040e478c7548e1d7c87283a8bc3c34d4005112cb02faf1ddda835d2db8497227d2fb1367bdc3d6cfc844cc0d94dcdc712ea11df21298ee6da32ad6264591e SHA512 8efbef24849f122cfe1b1b0dcedbc5369f97741603497099a673ff7be87af7935b8e0c8c58e10f6969372c8af932165d38a0c39e518501ba0d7e0c2fffb70bad

View File

@@ -1,279 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit autotools flag-o-matic linux-info python-single-r1 systemd udev multilib-minimal #readme.gentoo-r1
DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
HOMEPAGE="http://www.bluez.org https://github.com/bluez/bluez"
SRC_URI="https://www.kernel.org/pub/linux/bluetooth/${P}.tar.xz"
LICENSE="GPL-2+ LGPL-2.1+"
SLOT="0/3"
KEYWORDS="amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv x86"
IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev"
# Since this release all remaining extra-tools need readline support, but this could
# change in the future, hence, this REQUIRED_USE constraint could be dropped
# again in the future.
# btpclient needs mesh, bug #790587
REQUIRED_USE="
btpclient? ( mesh )
extra-tools? ( deprecated readline )
test? ( ${PYTHON_REQUIRED_USE} )
test-programs? ( ${PYTHON_REQUIRED_USE} )
"
TEST_DEPS="${PYTHON_DEPS}
$(python_gen_cond_dep '
>=dev-python/dbus-python-1[${PYTHON_USEDEP}]
dev-python/pygobject:3[${PYTHON_USEDEP}]
')
"
BDEPEND="
dev-python/docutils
virtual/pkgconfig
test? ( ${TEST_DEPS} )
"
DEPEND="
>=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
btpclient? ( >=dev-libs/ell-0.39 )
cups? ( net-print/cups:= )
mesh? (
>=dev-libs/ell-0.39
>=dev-libs/json-c-0.13:=
sys-libs/readline:0=
)
midi? ( media-libs/alsa-lib )
obex? ( dev-libs/libical:= )
readline? ( sys-libs/readline:0= )
systemd? ( sys-apps/systemd )
>=sys-apps/dbus-1.6:=
udev? ( >=virtual/udev-196 )
"
RDEPEND="${DEPEND}
selinux? ( sec-policy/selinux-bluetooth )
test-programs? ( ${TEST_DEPS} )
"
RESTRICT="!test? ( test )"
PATCHES=(
# Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
# http://www.spinics.net/lists/linux-bluetooth/msg58739.html
# 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() {
# From http://www.linuxfromscratch.org/blfs/view/svn/general/bluez.html
# to prevent bugs like:
# https://bugzilla.kernel.org/show_bug.cgi?id=196621
CONFIG_CHECK="~NET ~BT ~BT_RFCOMM ~BT_RFCOMM_TTY ~BT_BNEP ~BT_BNEP_MC_FILTER
~BT_BNEP_PROTO_FILTER ~BT_HIDP ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER
~UHID ~RFKILL"
# https://bugzilla.kernel.org/show_bug.cgi?id=196621
# https://bugzilla.kernel.org/show_bug.cgi?id=206815
if use mesh || use test; then
CONFIG_CHECK="${CONFIG_CHECK} ~CRYPTO_USER
~CRYPTO_USER_API ~CRYPTO_USER_API_AEAD ~CRYPTO_AES ~CRYPTO_CCM ~CRYPTO_AEAD ~CRYPTO_CMAC
~CRYPTO_MD5 ~CRYPTO_SHA1 ~KEY_DH_OPERATIONS"
fi
linux-info_pkg_setup
if use test || use test-programs; then
python-single-r1_pkg_setup
fi
if ! use udev; then
ewarn
ewarn "You are installing ${PN} with USE=-udev. This means various bluetooth"
ewarn "devices and adapters from Apple, Dell, Logitech etc. will not work,"
ewarn "and hid2hci will not be available."
ewarn
fi
}
src_prepare() {
default
# https://github.com/bluez/bluez/issues/806
eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch
eautoreconf
multilib_copy_sources
}
multilib_src_configure() {
# unit/test-vcp test fails with LTO (bug #925745)
filter-lto
local myconf=(
# readline is automagic when client is enabled
# --enable-client always needs readline, bug #504038
# --enable-mesh is handled in the same way
ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
ac_cv_header_readline_readline_h=$(multilib_native_usex mesh)
)
if ! multilib_is_native_abi; then
myconf+=(
# deps not used for the library
{DBUS,GLIB}_{CFLAGS,LIBS}=' '
)
fi
econf \
--localstatedir=/var \
--disable-android \
--enable-datafiles \
--enable-optimization \
$(use_enable debug) \
--enable-pie \
--enable-threads \
--enable-library \
--enable-tools \
--enable-manpages \
--enable-monitor \
--with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
--with-systemduserunitdir="$(systemd_get_userunitdir)" \
$(multilib_native_use_enable btpclient) \
$(multilib_native_use_enable btpclient external-ell) \
$(multilib_native_use_enable cups) \
$(multilib_native_use_enable deprecated) \
$(multilib_native_use_enable experimental) \
$(multilib_native_use_enable mesh) \
$(multilib_native_use_enable mesh external-ell) \
$(multilib_native_use_enable midi) \
$(multilib_native_use_enable obex) \
$(multilib_native_use_enable readline client) \
$(multilib_native_use_enable systemd) \
$(multilib_native_use_enable test-programs test) \
$(multilib_native_use_enable udev) \
$(multilib_native_use_enable udev hid2hci) \
$(multilib_native_use_enable udev sixaxis)
}
multilib_src_compile() {
if multilib_is_native_abi; then
default
else
emake -f Makefile -f - libs \
<<<'libs: $(lib_LTLIBRARIES)'
fi
}
multilib_src_test() {
multilib_is_native_abi && default
}
multilib_src_install() {
if multilib_is_native_abi; then
emake DESTDIR="${D}" install
# Only install extra-tools when relevant USE flag is enabled
if use extra-tools; then
ewarn "Upstream doesn't support using this tools and their bugs are"
ewarn "likely to be ignored forever, also they can break without"
ewarn "previous announcement."
ewarn "Upstream also states all this tools are not really needed,"
ewarn "then, if you still need to rely on them, you must ask them"
ewarn "to either install that tool by default or add the needed"
ewarn "functionality to the existing 'official' tools."
ewarn "Please report this issues to:"
ewarn "http://www.bluez.org/development/lists/"
# Upstream doesn't install this, bug #524640
# http://permalink.gmane.org/gmane.linux.bluez.kernel/53115
# http://comments.gmane.org/gmane.linux.bluez.kernel/54564
dobin tools/btmgmt
# gatttool is only built with readline, bug #530776
# https://bugzilla.redhat.com/show_bug.cgi?id=1141909
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=720486
# https://bugs.archlinux.org/task/37686
dobin attrib/gatttool
# https://bugzilla.redhat.com/show_bug.cgi?id=1699680
dobin tools/avinfo
fi
# Not installed by default after being built, bug #666756
use btpclient && dobin tools/btpclient
# Unittests are not that useful once installed, so make them optional
if use test-programs; then
# Drop python2 only test tools
# https://bugzilla.kernel.org/show_bug.cgi?id=206819
rm "${ED}"/usr/$(get_libdir)/bluez/test/simple-player || die
# https://bugzilla.kernel.org/show_bug.cgi?id=206821
rm "${ED}"/usr/$(get_libdir)/bluez/test/test-hfp || die
# https://bugzilla.kernel.org/show_bug.cgi?id=206823
rm "${ED}"/usr/$(get_libdir)/bluez/test/test-sap-server || die
python_fix_shebang "${ED}"/usr/$(get_libdir)/bluez/test
for i in $(find "${ED}"/usr/$(get_libdir)/bluez/test -maxdepth 1 -type f ! -name "*.*"); do
dosym "${i}" /usr/bin/bluez-"${i##*/}"
done
fi
else
emake DESTDIR="${D}" \
install-pkgincludeHEADERS \
install-libLTLIBRARIES \
install-pkgconfigDATA
fi
}
multilib_src_install_all() {
# We need to ensure obexd can be spawned automatically by systemd
# when user-session is enabled:
# http://marc.info/?l=linux-bluetooth&m=148096094716386&w=2
# https://bugs.gentoo.org/show_bug.cgi?id=577842
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804908
# https://bugs.archlinux.org/task/45816
# https://bugzilla.redhat.com/show_bug.cgi?id=1318441
# https://bugzilla.redhat.com/show_bug.cgi?id=1389347
if use systemd; then
dosym obex.service /usr/lib/systemd/user/dbus-org.bluez.obex.service
fi
find "${D}" -name '*.la' -type f -delete || die
# Setup auto enable as Fedora does for allowing to use
# keyboards/mouse as soon as possible
insinto /etc/bluetooth
doins src/main.conf
newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
einstalldocs
use doc && dodoc doc/*.txt
# https://bugs.gentoo.org/929017
# https://github.com/bluez/bluez/issues/329#issuecomment-1102459104
fperms 0555 /etc/bluetooth
# https://bugs.gentoo.org/932172
if ! use systemd; then
keepdir /var/lib/bluetooth
fperms 0700 /var/lib/bluetooth
fi
}
pkg_postinst() {
use udev && udev_reload
systemd_reenable bluetooth.service
has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp"
}
pkg_postrm() {
use udev && udev_reload
}

View File

@@ -1,20 +0,0 @@
https://github.com/bluez/bluez/issues/806
https://bugs.gentoo.org/928417
--- bluez-5.73.orig/Makefile.obexd 2024-04-02 10:38:48.743419656 +0200
+++ bluez-5.73/Makefile.obexd 2024-04-02 10:40:53.300086281 +0200
@@ -1,13 +1,13 @@
# SPDX-License-Identifier: GPL-2.0
if OBEX
+dbussessionbusdir = $(DBUS_SESSIONBUSDIR)
+dbussessionbus_DATA = obexd/src/org.bluez.obex.service
+
if SYSTEMD
systemduserunitdir = $(SYSTEMD_USERUNITDIR)
systemduserunit_DATA = obexd/src/obex.service
-dbussessionbusdir = $(DBUS_SESSIONBUSDIR)
-dbussessionbus_DATA = obexd/src/org.bluez.obex.service
-
obexd-add-service-symlink:
$(LN_S) -f obex.service $(DESTDIR)$(SYSTEMD_USERUNITDIR)/dbus-org.bluez.obex.service

View File

@@ -1,312 +0,0 @@
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