From 14b9a4d66442966c0b3d171079882f1703359f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Sat, 15 Jun 2024 13:34:09 +0700 Subject: [PATCH] bluez: update to 5.76. --- srcpkgs/bluez-mesh | 1 + srcpkgs/bluez-obex | 1 + .../0001-enable-dbus-without-systemd.patch | 22 ++----- ...02-allow-obexd-on-non-systemd-system.patch | 60 +++++-------------- ...003-allow-mesh-on-non-systemd-system.patch | 18 +----- srcpkgs/bluez/patches/0004-permission.patch | 35 +++++++++++ ...-grant-permission-to-bluetooth-group.patch | 27 --------- srcpkgs/bluez/patches/CVE-2023-45866.patch | 52 ---------------- srcpkgs/bluez/patches/basename.patch | 58 ++++++++++++++++++ srcpkgs/bluez/template | 45 +++++++++----- 10 files changed, 146 insertions(+), 173 deletions(-) create mode 120000 srcpkgs/bluez-mesh create mode 120000 srcpkgs/bluez-obex create mode 100644 srcpkgs/bluez/patches/0004-permission.patch delete mode 100644 srcpkgs/bluez/patches/0008-grant-permission-to-bluetooth-group.patch delete mode 100644 srcpkgs/bluez/patches/CVE-2023-45866.patch create mode 100644 srcpkgs/bluez/patches/basename.patch diff --git a/srcpkgs/bluez-mesh b/srcpkgs/bluez-mesh new file mode 120000 index 00000000000..db15886a96e --- /dev/null +++ b/srcpkgs/bluez-mesh @@ -0,0 +1 @@ +bluez \ No newline at end of file diff --git a/srcpkgs/bluez-obex b/srcpkgs/bluez-obex new file mode 120000 index 00000000000..db15886a96e --- /dev/null +++ b/srcpkgs/bluez-obex @@ -0,0 +1 @@ +bluez \ No newline at end of file diff --git a/srcpkgs/bluez/patches/0001-enable-dbus-without-systemd.patch b/srcpkgs/bluez/patches/0001-enable-dbus-without-systemd.patch index 5b9c7dc708c..a7d5eb46ac1 100644 --- a/srcpkgs/bluez/patches/0001-enable-dbus-without-systemd.patch +++ b/srcpkgs/bluez/patches/0001-enable-dbus-without-systemd.patch @@ -1,19 +1,8 @@ -From 2625ab38ae27754205d060f09e3a18f7648d5167 Mon Sep 17 00:00:00 2001 -From: Doan Tran Cong Danh -Date: Thu, 3 Oct 2019 12:57:09 +0700 -Subject: [PATCH 1/9] enable dbus without systemd - ---- - Makefile.am | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 404e6a460..0884156fa 100644 --- a/Makefile.am +++ b/Makefile.am -@@ -40,14 +40,14 @@ conf_DATA = - - statedir = $(localstatedir)/lib/bluetooth +@@ -43,14 +43,14 @@ conf_DATA = src/main.conf + conf_DATA += profiles/input/input.conf + conf_DATA += profiles/network/network.conf state_DATA = + +dbussystembusdir = $(DBUS_SYSTEMBUSDIR) @@ -28,7 +17,4 @@ index 404e6a460..0884156fa 100644 -dbussystembus_DATA = src/org.bluez.service endif - EXTRA_DIST += src/bluetooth.service.in src/org.bluez.service --- -2.23.0 - + EXTRA_DIST += src/org.bluez.service diff --git a/srcpkgs/bluez/patches/0002-allow-obexd-on-non-systemd-system.patch b/srcpkgs/bluez/patches/0002-allow-obexd-on-non-systemd-system.patch index c011d23073b..8dab1698b6c 100644 --- a/srcpkgs/bluez/patches/0002-allow-obexd-on-non-systemd-system.patch +++ b/srcpkgs/bluez/patches/0002-allow-obexd-on-non-systemd-system.patch @@ -1,54 +1,22 @@ -From 5f27d3887b60c95cbcdefaeae5dea38f020c390e Mon Sep 17 00:00:00 2001 -From: Doan Tran Cong Danh -Date: Thu, 3 Oct 2019 12:57:55 +0700 -Subject: [PATCH 2/8] allow obexd on non-systemd system - ---- - Makefile.obexd | 6 +++--- - .../{org.bluez.obex.service => org.bluez.obex.service.in} | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - rename obexd/src/{org.bluez.obex.service => org.bluez.obex.service.in} (74%) - -diff --git a/Makefile.obexd b/Makefile.obexd -index de59d297b..cb04bb1e2 100644 --- a/Makefile.obexd +++ b/Makefile.obexd -@@ -1,12 +1,12 @@ - if SYSTEMD +@@ -5,9 +5,6 @@ if SYSTEMD systemduserunitdir = $(SYSTEMD_USERUNITDIR) systemduserunit_DATA = obexd/src/obex.service -+endif - dbussessionbusdir = $(DBUS_SESSIONBUSDIR) - dbussessionbus_DATA = obexd/src/org.bluez.obex.service --endif +-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 --EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service -+EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in +@@ -18,6 +15,9 @@ obexd-add-service-symlink: + obexd-remove-service-symlink: + endif - if OBEX ++dbussessionbusdir = $(DBUS_SESSIONBUSDIR) ++dbussessionbus_DATA = obexd/src/org.bluez.obex.service ++ + obex_plugindir = $(libdir)/obex/plugins -@@ -107,6 +107,6 @@ obexd/src/builtin.h: obexd/src/genbuiltin $(obexd_builtin_sources) - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_GEN)$(srcdir)/obexd/src/genbuiltin $(obexd_builtin_modules) > $@ - --CLEANFILES += obexd/src/builtin.h $(builtin_files) obexd/src/obex.service -+CLEANFILES += obexd/src/builtin.h $(builtin_files) obexd/src/obex.service obexd/src/org.bluez.obex.service - - EXTRA_DIST += obexd/src/genbuiltin -diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service.in -similarity index 74% -rename from obexd/src/org.bluez.obex.service -rename to obexd/src/org.bluez.obex.service.in -index a53808884..543d7bc07 100644 ---- a/obexd/src/org.bluez.obex.service -+++ b/obexd/src/org.bluez.obex.service.in -@@ -1,4 +1,4 @@ - [D-BUS Service] - Name=org.bluez.obex --Exec=/bin/false -+Exec=@pkglibexecdir@/obexd - SystemdService=dbus-org.bluez.obex.service --- -2.23.0 - + obexd_builtin_modules = diff --git a/srcpkgs/bluez/patches/0003-allow-mesh-on-non-systemd-system.patch b/srcpkgs/bluez/patches/0003-allow-mesh-on-non-systemd-system.patch index 2cf6f73442d..9f982f76130 100644 --- a/srcpkgs/bluez/patches/0003-allow-mesh-on-non-systemd-system.patch +++ b/srcpkgs/bluez/patches/0003-allow-mesh-on-non-systemd-system.patch @@ -1,20 +1,9 @@ -From 32a425c3f9b42a55824c044a6b486c9c12e65a65 Mon Sep 17 00:00:00 2001 -From: Doan Tran Cong Danh -Date: Thu, 3 Oct 2019 12:58:18 +0700 -Subject: [PATCH 3/9] allow mesh on non-systemd system - ---- - Makefile.mesh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Makefile.mesh b/Makefile.mesh -index 90979cbc0..9e6e2c2ca 100644 --- a/Makefile.mesh +++ b/Makefile.mesh -@@ -2,11 +2,11 @@ if MESH - +@@ -4,11 +4,11 @@ if MESH if DATAFILES dbus_DATA += mesh/bluetooth-mesh.conf + conf_DATA += mesh/mesh-main.conf +dbussystembus_DATA += mesh/org.bluez.mesh.service endif @@ -24,6 +13,3 @@ index 90979cbc0..9e6e2c2ca 100644 endif mesh_sources = mesh/mesh.h mesh/mesh.c \ --- -2.23.0 - diff --git a/srcpkgs/bluez/patches/0004-permission.patch b/srcpkgs/bluez/patches/0004-permission.patch new file mode 100644 index 00000000000..4ec3ec9206a --- /dev/null +++ b/srcpkgs/bluez/patches/0004-permission.patch @@ -0,0 +1,35 @@ +--- a/src/bluetooth.conf ++++ b/src/bluetooth.conf +@@ -23,6 +23,10 @@ + + + ++ ++ ++ ++ + + + +--- 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 +--- a/Makefile.in ++++ b/Makefile.in +@@ -13737,7 +13737,7 @@ uninstall-man: uninstall-man1 uninstall- + + + bluetoothd-fix-permissions: +- install -dm555 $(DESTDIR)$(confdir) ++ install -dm755 $(DESTDIR)$(confdir) + install -dm700 $(DESTDIR)$(statedir) + @BTPCLIENT_TRUE@tools/btpclient.$(OBJEXT): src/libshared-ell.la ell/internal + diff --git a/srcpkgs/bluez/patches/0008-grant-permission-to-bluetooth-group.patch b/srcpkgs/bluez/patches/0008-grant-permission-to-bluetooth-group.patch deleted file mode 100644 index ec8a1f554af..00000000000 --- a/srcpkgs/bluez/patches/0008-grant-permission-to-bluetooth-group.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 05853e46e66868228468fc73d86f221b12edaef1 Mon Sep 17 00:00:00 2001 -From: Doan Tran Cong Danh -Date: Fri, 4 Oct 2019 11:36:47 +0700 -Subject: [PATCH 8/9] grant permission to bluetooth group - ---- - src/bluetooth.conf | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/bluetooth.conf b/src/bluetooth.conf -index 8a1e25801..75dd7d670 100644 ---- a/src/bluetooth.conf -+++ b/src/bluetooth.conf -@@ -22,6 +22,10 @@ - - - -+ -+ -+ -+ - - - --- -2.23.0 - diff --git a/srcpkgs/bluez/patches/CVE-2023-45866.patch b/srcpkgs/bluez/patches/CVE-2023-45866.patch deleted file mode 100644 index 7d3be48eeb6..00000000000 --- a/srcpkgs/bluez/patches/CVE-2023-45866.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 25a471a83e02e1effb15d5a488b3f0085eaeb675 Mon Sep 17 00:00:00 2001 -From: Luiz Augusto von Dentz -Date: Tue, 10 Oct 2023 13:03:12 -0700 -Subject: input.conf: Change default of ClassicBondedOnly - -This changes the default of ClassicBondedOnly since defaulting to false -is not inline with HID specification which mandates the of Security Mode -4: - -BLUETOOTH SPECIFICATION Page 84 of 123 -Human Interface Device (HID) Profile: - - 5.4.3.4.2 Security Modes - Bluetooth HID Hosts shall use Security Mode 4 when interoperating with - Bluetooth HID devices that are compliant to the Bluetooth Core - Specification v2.1+EDR[6]. ---- - profiles/input/device.c | 2 +- - profiles/input/input.conf | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -(limited to 'profiles/input') - -diff --git a/profiles/input/device.c b/profiles/input/device.c -index 4a50ea9921..4310dd192e 100644 ---- a/profiles/input/device.c -+++ b/profiles/input/device.c -@@ -81,7 +81,7 @@ struct input_device { - - static int idle_timeout = 0; - static bool uhid_enabled = false; --static bool classic_bonded_only = false; -+static bool classic_bonded_only = true; - - void input_set_idle_timeout(int timeout) - { -diff --git a/profiles/input/input.conf b/profiles/input/input.conf -index 4c70bc561f..d8645f3dd6 100644 ---- a/profiles/input/input.conf -+++ b/profiles/input/input.conf -@@ -17,7 +17,7 @@ - # platforms may want to make sure that input connections only come from bonded - # device connections. Several older mice have been known for not supporting - # pairing/encryption. --# Defaults to false to maximize device compatibility. -+# Defaults to true for security. - #ClassicBondedOnly=true - - # LE upgrade security --- -cgit 1.2.3-korg - diff --git a/srcpkgs/bluez/patches/basename.patch b/srcpkgs/bluez/patches/basename.patch new file mode 100644 index 00000000000..07139a94272 --- /dev/null +++ b/srcpkgs/bluez/patches/basename.patch @@ -0,0 +1,58 @@ +--- a/mesh/rpl.c ++++ b/mesh/rpl.c +@@ -33,6 +33,17 @@ + + static const char *rpl_dir = "/rpl"; + ++char * ++xbasename(const char *filename) ++{ ++#ifdef __GLIBC__ ++ return basename(filename); ++#else ++ char *p = strrchr (filename, '/'); ++ return p ? p + 1 : (char *) filename; ++#endif ++} ++ + bool rpl_put_entry(struct mesh_node *node, uint16_t src, uint32_t iv_index, + uint32_t seq) + { +@@ -146,7 +157,7 @@ static void get_entries(const char *iv_p + if (!dir) + return; + +- iv_txt = basename(iv_path); ++ iv_txt = xbasename(iv_path); + if (sscanf(iv_txt, "%08x", &iv_index) != 1) { + closedir(dir); + return; +--- a/tools/hex2hcd.c ++++ b/tools/hex2hcd.c +@@ -25,6 +25,17 @@ + #include + #include + ++char * ++xbasename(const char *filename) ++{ ++#ifdef __GLIBC__ ++ return basename(filename); ++#else ++ char *p = strrchr (filename, '/'); ++ return p ? p + 1 : (char *) filename; ++#endif ++} ++ + static ssize_t process_record(int fd, const char *line, uint16_t *upper_addr) + { + const char *ptr = line + 1; +@@ -302,7 +313,7 @@ static void ver_parse_entry(const char * + } + + if (S_ISREG(st.st_mode)) { +- ver_parse_file(basename(pathname)); ++ ver_parse_file(xbasename(pathname)); + goto done; + } + diff --git a/srcpkgs/bluez/template b/srcpkgs/bluez/template index 41ab3df051b..2f701242ee6 100644 --- a/srcpkgs/bluez/template +++ b/srcpkgs/bluez/template @@ -1,28 +1,25 @@ # Template file for 'bluez' pkgname=bluez -version=5.70 -revision=4 +version=5.76 +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) --enable-hid2hci" + --enable-external-ell --enable-mesh --enable-nfc --enable-experimental + --enable-hid2hci" 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)" + readline-devel ell-devel json-c-devel" short_desc="Bluetooth tools and daemons" maintainer="Érico Nogueira " license="GPL-2.0-or-later, LGPL-2.1-or-later" homepage="http://www.bluez.org/" changelog="https://git.kernel.org/pub/scm/bluetooth/bluez.git/plain/ChangeLog" distfiles="${KERNEL_SITE}/bluetooth/bluez-${version}.tar.xz" -checksum=37e372e916955e144cb882f888e4be40898f10ae3b7c213ddcdd55ee9c009278 +checksum=55e2c645909ad82d833c42ce85ec20434e0ef0070941b1eab73facdd240bbd63 conf_files="/etc/bluetooth/main.conf" system_groups="bluetooth" -build_options="mesh nfc experimental" -build_options_default="mesh nfc" - if [ "$XBPS_TARGET_LIBC" = musl ]; then makedepends+=" musl-legacy-compat" fi @@ -45,11 +42,6 @@ post_install() { vbin tools/btgatt-server vbin tools/btmgmt vsv bluetoothd - if [ "$build_option_mesh" ]; then - vsv bluetooth-meshd - vinstall mesh/bluetooth-mesh.conf 644 etc/bluetooth - vinstall mesh/mesh-main.conf 644 etc/bluetooth - fi vdoc ${FILESDIR}/README.voidlinux } @@ -77,6 +69,7 @@ bluez-cups_package() { vmove usr/lib/cups/backend/bluetooth } } + bluez-deprecated_package() { short_desc+=" - deprecated tools" pkg_install() { @@ -99,8 +92,32 @@ bluez-deprecated_package() { } bluez-hid2hci_package() { + short_desc+=" - hid2hci" pkg_install() { vmove usr/lib/udev vmove usr/share/man/man1/hid2hci.1 } } + +bluez-obex_package() { + short_desc+=" - obex OBject EXchange" + pkg_install() { + vmove usr/libexec/bluetooth/obexd + vmove usr/share/dbus-1/services/org.bluez.obex.service + vmove "usr/share/man/man5/org.bluez.obex.*" + } +} + +bluez-mesh_package() { + short_desc+=" - mesh" + pkg_install() { + vmove "usr/bin/mesh*" + vmove usr/libexec/bluetooth/bluetooth-meshd + vmove usr/share/man/man8/bluetooth-meshd.8 + vmove usr/share/dbus-1/system-services/org.bluez.mesh.service + vmove usr/share/dbus-1/system.d/bluetooth-mesh.conf + vsv bluetooth-meshd + vinstall mesh/bluetooth-mesh.conf 644 etc/bluetooth + vinstall mesh/mesh-main.conf 644 etc/bluetooth + } +}