diff options
Diffstat (limited to 'main/bluez')
-rw-r--r-- | main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch | 23 | ||||
-rw-r--r-- | main/bluez/005-hostname-Use-phone-class-for-handhelds.patch | 51 | ||||
-rw-r--r-- | main/bluez/APKBUILD | 153 | ||||
-rw-r--r-- | main/bluez/bluetooth.initd | 7 | ||||
-rw-r--r-- | main/bluez/fix-endianness.patch | 16 | ||||
-rw-r--r-- | main/bluez/mpris-proxy.desktop | 8 | ||||
-rw-r--r-- | main/bluez/musl.patch | 13 | ||||
-rw-r--r-- | main/bluez/org.bluez.obex.service | 3 | ||||
-rw-r--r-- | main/bluez/test-mesh-crypto.patch | 61 |
9 files changed, 239 insertions, 96 deletions
diff --git a/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch b/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch index 80b052d5b72..67410c76f61 100644 --- a/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch +++ b/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch @@ -1,20 +1,13 @@ -From 76681284b0ea49852041fdb97a35175089a08781 Mon Sep 17 00:00:00 2001 -From: Phil Elwell <phil@raspberrypi.org> -Date: Tue, 23 Feb 2016 17:52:29 +0000 -Subject: [PATCH 4/4] Move the 43xx firmware into /lib/firmware - ---- - tools/hciattach_bcm43xx.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/tools/hciattach_bcm43xx.c -+++ b/tools/hciattach_bcm43xx.c -@@ -43,7 +43,7 @@ - #include "hciattach.h" +diff --git a/tools/hciattach.h b/tools/hciattach.h +index dfa4c1e..c21dbda 100644 +--- a/tools/hciattach.h ++++ b/tools/hciattach.h +@@ -41,7 +41,7 @@ + #define HCI_UART_VND_DETECT 5 #ifndef FIRMWARE_DIR -#define FIRMWARE_DIR "/etc/firmware" -+#define FIRMWARE_DIR "/lib/firmware/brcm" ++#define FIRMWARE_DIR "/lib/firmware" #endif - #define FW_EXT ".hcd" + int read_hci_event(int fd, unsigned char *buf, int size); diff --git a/main/bluez/005-hostname-Use-phone-class-for-handhelds.patch b/main/bluez/005-hostname-Use-phone-class-for-handhelds.patch new file mode 100644 index 00000000000..c5ad4bfbcb7 --- /dev/null +++ b/main/bluez/005-hostname-Use-phone-class-for-handhelds.patch @@ -0,0 +1,51 @@ +From 7960816020bbd94b1c2f0ff75f73b25927717875 Mon Sep 17 00:00:00 2001 +From: Dylan Van Assche <me@dylanvanassche.be> +Date: Fri, 11 Jun 2021 20:18:44 +0200 +Subject: [PATCH] hostname: Use phone class for handhelds + +Advertise devices with chassis type 'handheld' +as phone instead of computer. +--- + plugins/hostname.c | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/plugins/hostname.c b/plugins/hostname.c +index 1a9513adb..85c342d36 100644 +--- a/plugins/hostname.c ++++ b/plugins/hostname.c +@@ -31,6 +31,7 @@ + + #define MAJOR_CLASS_MISCELLANEOUS 0x00 + #define MAJOR_CLASS_COMPUTER 0x01 ++#define MAJOR_CLASS_PHONE 0x02 + + #define MINOR_CLASS_UNCATEGORIZED 0x00 + #define MINOR_CLASS_DESKTOP 0x01 +@@ -40,6 +41,7 @@ + #define MINOR_CLASS_PALM_SIZED 0x05 + #define MINOR_CLASS_WEARABLE 0x06 + #define MINOR_CLASS_TABLET 0x07 ++#define MINOR_CLASS_SMARTPHONE 0x03 + + static uint8_t major_class = MAJOR_CLASS_MISCELLANEOUS; + static uint8_t minor_class = MINOR_CLASS_UNCATEGORIZED; +@@ -106,11 +108,11 @@ static const struct { + uint8_t major_class; + uint8_t minor_class; + } chassis_table[] = { +- { "desktop", MAJOR_CLASS_COMPUTER, MINOR_CLASS_DESKTOP }, +- { "server", MAJOR_CLASS_COMPUTER, MINOR_CLASS_SERVER }, +- { "laptop", MAJOR_CLASS_COMPUTER, MINOR_CLASS_LAPTOP }, +- { "handset", MAJOR_CLASS_COMPUTER, MINOR_CLASS_HANDHELD }, +- { "tablet", MAJOR_CLASS_COMPUTER, MINOR_CLASS_TABLET }, ++ { "desktop", MAJOR_CLASS_COMPUTER, MINOR_CLASS_DESKTOP }, ++ { "server", MAJOR_CLASS_COMPUTER, MINOR_CLASS_SERVER }, ++ { "laptop", MAJOR_CLASS_COMPUTER, MINOR_CLASS_LAPTOP }, ++ { "handset", MAJOR_CLASS_PHONE, MINOR_CLASS_SMARTPHONE }, ++ { "tablet", MAJOR_CLASS_COMPUTER, MINOR_CLASS_TABLET }, + { } + }; + +-- +2.31.1 + diff --git a/main/bluez/APKBUILD b/main/bluez/APKBUILD index c0e8e61a719..456ebb1b5eb 100644 --- a/main/bluez/APKBUILD +++ b/main/bluez/APKBUILD @@ -1,54 +1,66 @@ # Contributor: Leo <thinkabit.ukim@gmail.com> # Maintainer: Natanael Copa <ncopa@alpinelinux.org> pkgname=bluez -pkgver=5.54 -pkgrel=5 +# Make sure to also update the obexd-enhanced package if updating bluez +pkgver=5.73 +pkgrel=0 pkgdesc="Tools for the Bluetooth protocol stack" -url="http://www.bluez.org/" +url="https://www.bluez.org/" arch="all" -license="GPL-2.0-or-later" +license="GPL-2.0-or-later AND BSD-2-Clause AND MIT" depends="dbus" replaces="udev" -makedepends="dbus-dev libusb-compat-dev eudev-dev json-c-dev - libical-dev readline-dev glib-dev linux-headers - autoconf automake libtool ell-dev" +makedepends=" + dbus-dev + ell-dev + eudev-dev + glib-dev + json-c-dev + libical-dev + libtool + linux-headers + py3-docutils + py3-pygments + readline-dev + " subpackages=" + $pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs - $pkgname-bccmd + $pkgname-openrc $pkgname-btmgmt $pkgname-btmon $pkgname-cups $pkgname-deprecated + $pkgname-deprecated-openrc $pkgname-hid2hci $pkgname-meshctl $pkgname-obexd - $pkgname-zsh-completion:zshcomp:noarch + $pkgname-zsh-completion " source="https://www.kernel.org/pub/linux/bluetooth/bluez-$pkgver.tar.xz bluetooth.initd rfcomm.initd rfcomm.confd + org.bluez.obex.service + mpris-proxy.desktop 001-bcm43xx-Add-bcm43xx-3wire-variant.patch 002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch 003-Increase-firmware-load-timeout-to-30s.patch 004-Move-the-43xx-firmware-into-lib-firmware.patch + 005-hostname-Use-phone-class-for-handhelds.patch disable-lock-test.patch fix-endianness.patch - musl.patch + test-mesh-crypto.patch " -case "$CARCH" in -# crypto tests assume little-endian -mips*) options="!check";; -esac - # secfixes: # 5.54-r0: # - CVE-2020-0556 build() { + CFLAGS="$CFLAGS -flto=auto" \ ./configure \ --build=$CBUILD \ --host=$CHOST \ @@ -60,99 +72,126 @@ build() { --disable-systemd \ --enable-library \ --enable-deprecated \ - --enable-mesh + --enable-hid2hci \ + --enable-mesh \ + --enable-sixaxis \ + --with-dbusconfdir=/usr/share make } check() { - make check + make check || { + cat test-suite.log + return 1 + } } package() { - make install DESTDIR="$pkgdir" + make DESTDIR="$pkgdir" install install-pluginLTLIBRARIES + install -D -m644 src/main.conf "$pkgdir"/etc/bluetooth/main.conf install -Dm755 "$srcdir"/bluetooth.initd "$pkgdir"/etc/init.d/bluetooth install -Dm755 "$srcdir"/rfcomm.initd "$pkgdir"/etc/init.d/rfcomm install -Dm644 "$srcdir"/rfcomm.confd "$pkgdir"/etc/conf.d/rfcomm - # Fix shebang for the installed binary - sed 's|^#!/usr/bin/python$|#!/usr/bin/env python3|g' -i test/simple-agent install -Dm755 test/simple-agent "$pkgdir"/usr/bin/bluez-simple-agent -} + install -Dm755 tools/btmgmt -t "$pkgdir"/usr/bin/ + install -Dm755 attrib/gatttool -t "$pkgdir"/usr/bin/ + + install -Dm644 "$srcdir"/org.bluez.obex.service \ + "$pkgdir"/usr/share/dbus-1/services/org.bluez.obex.service -bccmd() { - pkgdesc="Bluez utility for the CSR BCCMD interface" - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/bccmd "$subpkgdir"/usr/bin/ + # Autostart mpris-proxy to pass through MPRIS control over BlueZ + install -Dm644 "$srcdir"/mpris-proxy.desktop -t "$pkgdir"/etc/xdg/autostart/ } btmgmt() { pkgdesc="Bluez tool for the Bluetooth Management API" - install -Dm755 "$builddir"/tools/btmgmt "$subpkgdir"/usr/bin/btmgmt + amove usr/bin/btmgmt } btmon() { pkgdesc="Bluez bluetooth monitor" - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/btmon "$subpkgdir"/usr/bin/ + amove usr/bin/btmon } cups() { pkgdesc="Bluez backend for CUPS" - mkdir -p "$subpkgdir"/usr/lib/ - mv "$pkgdir"/usr/lib/cups "$subpkgdir"/usr/lib/ + amove usr/lib/cups } hid2hci() { pkgdesc="Put HID proxying bluetooth HCI's into HCI mode" replaces="bluez" - mkdir -p "$subpkgdir" - mv "$pkgdir"/lib "$subpkgdir"/ + amove /lib } deprecated() { pkgdesc="Deprecated bluetooth tools" - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/ciptool \ - "$builddir"/attrib/gatttool \ - "$pkgdir"/usr/bin/hciattach \ - "$pkgdir"/usr/bin/hciconfig \ - "$pkgdir"/usr/bin/hcidump \ - "$pkgdir"/usr/bin/hcitool \ - "$pkgdir"/usr/bin/rfcomm \ - "$pkgdir"/usr/bin/sdptool \ - "$subpkgdir"/usr/bin/ + amove \ + usr/bin/ciptool \ + usr/bin/gatttool \ + usr/bin/hciattach \ + usr/bin/hciconfig \ + usr/bin/hcidump \ + usr/bin/hcitool \ + usr/bin/rfcomm \ + usr/bin/sdptool } meshctl() { pkgdesc="Bluez tool for interacting with bluetooth mesh networks" - mkdir -p "$subpkgdir"/usr/bin - mv "$pkgdir"/usr/bin/meshctl "$subpkgdir"/usr/bin/ + amove usr/bin/meshctl } obexd() { pkgdesc="Bluez OBEX daemon" - mkdir -p "$subpkgdir"/usr/lib/bluetooth - mv "$pkgdir"/usr/lib/bluetooth/obexd "$subpkgdir"/usr/lib/bluetooth + provides="obexd" + provider_priority=100 + amove \ + usr/lib/bluetooth/obexd \ + usr/share/dbus-1/services/org.bluez.obex.service } -zshcomp() { - depends="" - pkgdesc="Zsh compltions for $pkgname" - install_if="$pkgname=$pkgver-r$pkgrel zsh" - - amove usr/share/zsh/site-functions +openrc() { + case "$subpkgname" in + "$pkgname"-deprecated-openrc) + # Make this the same as deprecated() + # the default_openrc function will add + # the correct (OpenRC init scripts) suffix + pkgdesc="Deprecated bluez tools" + ;; + esac + + default_openrc + + case "$subpkgname" in + "$pkgname"-openrc) + # Move the rfcomm .initd and .confd back to the + # mainpkg so the -deprecated-openrc subpackage + # can move them later + mkdir -p "$pkgdir"/etc/init.d "$pkgdir"/etc/conf.d + mv "$subpkgdir"/etc/init.d/rfcomm "$pkgdir"/etc/init.d + mv "$subpkgdir"/etc/conf.d/rfcomm "$pkgdir"/etc/conf.d + rmdir "$subpkgdir"/etc/conf.d # Only rfcomm was here + ;; + esac } -sha512sums="e19d15d3a478a7af47c1921c8827843492e38787b1182152155bd3d8ad9e1d8ee25c5fda1f24e38c54ebbf946b09fe75007dca9a24d1c35f73303558e558dcbe bluez-5.54.tar.xz -fc43c78ed248ea412529eed5ae8bb47bacca9bf5b3b10de121ddd4e792c85893561a88be4aa2c6318106e5d2146a721445152d44fa60ca257ca0b4eb87318c1e bluetooth.initd +sha512sums=" +20090da036d3d614706b14a757b02acf138859d8f0476aa7f68d57635dfb3632ce7d8bb3456320904d72333d1314a5fe14dcb8ece307e6d31ce6d2d516de25e8 bluez-5.73.tar.xz +5442f4f489718e51c50611c143803f2cc99e540b55a72af20ea2921b256774a6c7c5e273f2bedb745753d8c67d3fb7c938750fb48feac7460b32bd1cca029a28 bluetooth.initd 8d7b7c8938a2316ce0a855e9bdf1ef8fcdf33d23f4011df828270a088b88b140a19c432e83fef15355d0829e3c86be05b63e7718fef88563254ea239b8dc12ac rfcomm.initd a70aa0dbbabe7e29ee81540a6f98bf191a850da55a28f678975635caf34b363cf4d461a801b3484120ee28fdd21240bd456a4f5d706262700924bd2e9a0972fb rfcomm.confd +d6766a4992ed4141569d6d82a802a771a5cb4c08873bfb0fdbedeea4d738bf9b56d9e0452ec19b7635418b1af4ab9b1735692043d629cbed3ce0eda6f51e1c6f org.bluez.obex.service +72f9bc6cafe910ed7d105d4f3a537b16cd897622b2391ea545e6a302fcce2ed79e490e2841c6290aa1290489870a67638d71b0de5bc57f9d650e2248d9e4f0a4 mpris-proxy.desktop 73202915fda01d420b2864da77b1c25af5a55c815e9be6546400a0940bfb6097d83322790bc22a80ec0fcd557144fdd1877e243a79285a7f040ff96ba3600b94 001-bcm43xx-Add-bcm43xx-3wire-variant.patch d5fd1c962bd846eaa6fff879bab85f753eb367d514f82d133b5d3242e1da989af5eddd942c60a87d5b67783e060f91bfa0f74fb1e8e6699cdee6e5bbe6a431ea 002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch 784e9644c8de4e2693e2eeed988a245608b8cb14e1fc0dff8795c60c527b2e8d0c87862cfbfd6b850b47ae80cdf993a5ed3f477078ea1068fd7374899c7a1a77 003-Increase-firmware-load-timeout-to-30s.patch -42ac04044a8c66e07487598b3a75ef52efc32999ebce4e7c63f6198e2f603f4a1442e74600e43a0938cb4f52d4db0298aa99050b18144b84990cda71748e9de5 004-Move-the-43xx-firmware-into-lib-firmware.patch +6d864d893aaf08d7a04f5cb27a6b2767c361cd41e479f27ed84d9fbbd2677298c15e31161a614af098df8faf3da54b71cf315fe8e9a9a2f671e4720c7b8b457b 004-Move-the-43xx-firmware-into-lib-firmware.patch +ac635f9bca0e983835940572eb1b96ad70cf60fb84d5b0fde38c76ea6d1b13ef7d9adf81468b9fed779c890ab69dd5dfabf21970bff018466115c424668b82fb 005-hostname-Use-phone-class-for-handhelds.patch 04c4889372c8e790bb338dde7ffa76dc32fcf7370025c71b9184fcf17fd01ade4a6613d84d648303af3bbc54043ad489f29fc0cd4679ec8c9029dcb846d7e026 disable-lock-test.patch -118d55183860f395fc4bdc93efffb13902ebf7388cad722b9061cd2860d404333e500af521741c3d92c0f8a161f6810348fbeb6682e49c372383f417aed8c76a fix-endianness.patch -641e425333d269833eed624edec0e29cba04bb0ff6570f6afda178a164fc2bb77456fa88957fe49f36000d3601ac00bb7ba089400977c1577e9c226e74baa3d6 musl.patch" +2f54da5e77893d1d8b7164ddac5561a9e536c2b93b1d33dcbd97e74c0fd45588f1f50dc1d9d8519297871e3a376948082a2e45e27d823ec81cdedecd8dba3f0c fix-endianness.patch +b5d6f7d2df755a9b8cffaeef13d232ba1bab27544bc59e2299bbd6a8017768cf7781f3ca65e430a149a26f0b30ae74b8510529ce161705bb6f41ae512cc2dbac test-mesh-crypto.patch +" diff --git a/main/bluez/bluetooth.initd b/main/bluez/bluetooth.initd index ee40153ec88..4fb1c0bfbb7 100644 --- a/main/bluez/bluetooth.initd +++ b/main/bluez/bluetooth.initd @@ -2,12 +2,11 @@ name="Bluetooth" command="/usr/lib/bluetooth/bluetoothd" -pidfile="/var/run/bluetoothd.pid" -start_stop_daemon_args="--background --make-pidfile" - +pidfile="/run/bluetoothd.pid" +command_background=true depend() { - after coldplug + after coldplug udev-postmount need dbus localmount hostname } diff --git a/main/bluez/fix-endianness.patch b/main/bluez/fix-endianness.patch index ee0e0d1e3eb..44bbf44ddc5 100644 --- a/main/bluez/fix-endianness.patch +++ b/main/bluez/fix-endianness.patch @@ -1,10 +1,12 @@ ---- bluez-5.47/src/shared/util.h.old 2016-09-26 07:29:00.000000000 -0500 -+++ bluez-5.47/src/shared/util.h 2017-12-27 22:49:50.538716424 -0600 -@@ -26,6 +26,7 @@ - #include <alloca.h> - #include <byteswap.h> +diff --git a/src/shared/util.h b/src/shared/util.h +index ce57b53..da99a4c 100644 +--- a/src/shared/util.h ++++ b/src/shared/util.h +@@ -17,6 +17,7 @@ #include <string.h> + #include <sys/types.h> + #include <sys/uio.h> +#include <endian.h> - #if __BYTE_ORDER == __LITTLE_ENDIAN - #define le16_to_cpu(val) (val) + #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) + #define BIT(n) (1 << (n)) diff --git a/main/bluez/mpris-proxy.desktop b/main/bluez/mpris-proxy.desktop new file mode 100644 index 00000000000..4995eaa4318 --- /dev/null +++ b/main/bluez/mpris-proxy.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=mpris-proxy +Comment=Start mpris-proxy in daemon mode +Exec=/usr/bin/mpris-proxy +TryExec=/usr/bin/mpris-proxy +Terminal=false +X-KDE-autostart-phase=2 diff --git a/main/bluez/musl.patch b/main/bluez/musl.patch deleted file mode 100644 index cd8f08568f4..00000000000 --- a/main/bluez/musl.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/mesh/net.h b/mesh/net.h -index 150240f..a3dec2b 100644 ---- a/mesh/net.h -+++ b/mesh/net.h -@@ -21,6 +21,8 @@ - #define __packed __attribute__((packed)) - #endif - -+#include <sys/time.h> /* for timeval */ -+ - struct mesh_io; - struct mesh_node; - diff --git a/main/bluez/org.bluez.obex.service b/main/bluez/org.bluez.obex.service new file mode 100644 index 00000000000..d1afc39d475 --- /dev/null +++ b/main/bluez/org.bluez.obex.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.bluez.obex +Exec=/usr/lib/bluetooth/obexd -n diff --git a/main/bluez/test-mesh-crypto.patch b/main/bluez/test-mesh-crypto.patch new file mode 100644 index 00000000000..ccaf8001e64 --- /dev/null +++ b/main/bluez/test-mesh-crypto.patch @@ -0,0 +1,61 @@ +Requires kernel option that might not be enabled on the builder +https://bugzilla.kernel.org/show_bug.cgi?id=206815 +diff --git a/unit/test-mesh-crypto.c b/unit/test-mesh-crypto.c +--- a/unit/test-mesh-crypto.c ++++ b/unit/test-mesh-crypto.c +@@ -2137,55 +2137,5 @@ + { + l_log_set_stderr(); + +- /* Section 8.1 Sample Data Tests */ +- check_s1(&s8_1_1); +- check_k1(&s8_1_2); +- check_k2(&s8_1_3); +- check_k2(&s8_1_4); +- check_k3(&s8_1_5); +- check_k4(&s8_1_6); +- +- /* Section 8.2 Sample Data Tests */ +- check_k4(&s8_2_1); +- check_k2(&s8_2_2); +- check_k2(&s8_2_3); +- check_k3(&s8_2_4); +- check_k128(&s8_2_5); +- check_k128(&s8_2_6); +- +- /* Section 8.3 Sample Data Tests */ +- check_encrypt(&s8_3_1); +- check_decrypt(&s8_3_1); +- check_encrypt(&s8_3_2); +- check_decrypt(&s8_3_2); +- check_encrypt(&s8_3_3); +- check_decrypt(&s8_3_3); +- check_encrypt(&s8_3_4); +- check_decrypt(&s8_3_4); +- check_encrypt(&s8_3_5); +- check_decrypt(&s8_3_5); +- check_encrypt(&s8_3_6); +- check_decrypt(&s8_3_6); +- check_encrypt(&s8_3_7); +- check_decrypt(&s8_3_7); +- check_encrypt(&s8_3_8); /* Single segment tester unavailable */ +- check_decrypt(&s8_3_8); /* Single segment tester unavailable */ +- check_encrypt(&s8_3_9); +- check_decrypt(&s8_3_9); +- check_encrypt(&s8_3_10); +- check_decrypt(&s8_3_10); +- check_encrypt(&s8_3_11); /* Single segment tester unavailable */ +- check_decrypt(&s8_3_11); /* Single segment tester unavailable */ +- check_encrypt(&s8_3_22); +- check_decrypt(&s8_3_22); +- +- /* Section 8.4 Beacon Sample Data */ +- check_beacon(&s8_4_3); +- check_beacon(&s8_4_6_1); +- check_beacon(&s8_4_6_2); +- +- /* Section 8.6 Mesh Proxy Service sample data */ +- check_id_beacon(&s8_6_2); +- + return 0; + } |