* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2016-02-12 8:50 Jeroen Roovers
0 siblings, 0 replies; 22+ messages in thread
From: Jeroen Roovers @ 2016-02-12 8:50 UTC (permalink / raw
To: gentoo-commits
commit: 30bdbd6c5ddc734020e35260ac1fb0848d769488
Author: Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 12 08:49:55 2016 +0000
Commit: Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Fri Feb 12 08:50:17 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30bdbd6c
net-wireless/bluez: Fix endian compile error (bug #574092).
Package-Manager: portage-2.2.27
net-wireless/bluez/bluez-5.37.ebuild | 3 ++
net-wireless/bluez/files/bluez-5.37-endian.patch | 51 ++++++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.37.ebuild b/net-wireless/bluez/bluez-5.37.ebuild
index fd9b88a..e3704f8 100644
--- a/net-wireless/bluez/bluez-5.37.ebuild
+++ b/net-wireless/bluez/bluez-5.37.ebuild
@@ -92,6 +92,9 @@ src_prepare() {
# ???
epatch "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+ # bug 574092
+ epatch "${FILESDIR}"/${PN}-5.37-endian.patch
+
if use cups; then
sed -i \
-e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
diff --git a/net-wireless/bluez/files/bluez-5.37-endian.patch b/net-wireless/bluez/files/bluez-5.37-endian.patch
new file mode 100644
index 0000000..1ffa350
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.37-endian.patch
@@ -0,0 +1,51 @@
+--- a/profiles/audio/a2dp-codecs.h
++++ b/profiles/audio/a2dp-codecs.h
+@@ -149,6 +149,17 @@
+ uint16_t codec_id;
+ } __attribute__ ((packed)) a2dp_vendor_codec_t;
+
++typedef struct {
++ a2dp_vendor_codec_t info;
++ uint8_t channel_mode:4;
++ uint8_t frequency:4;
++} __attribute__ ((packed)) a2dp_aptx_t;
++
++typedef struct {
++ a2dp_vendor_codec_t info;
++ uint8_t unknown[2];
++} __attribute__ ((packed)) a2dp_ldac_t;
++
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+
+ typedef struct {
+@@ -183,17 +194,6 @@
+ uint8_t bitrate3;
+ } __attribute__ ((packed)) a2dp_aac_t;
+
+-typedef struct {
+- a2dp_vendor_codec_t info;
+- uint8_t channel_mode:4;
+- uint8_t frequency:4;
+-} __attribute__ ((packed)) a2dp_aptx_t;
+-
+-typedef struct {
+- a2dp_vendor_codec_t info;
+- uint8_t unknown[2];
+-} __attribute__ ((packed)) a2dp_ldac_t;
+-
+ #elif __BYTE_ORDER == __BIG_ENDIAN
+
+ typedef struct {
+@@ -228,12 +228,6 @@
+ uint8_t bitrate3;
+ } __attribute__ ((packed)) a2dp_aac_t;
+
+-typedef struct {
+- a2dp_vendor_codec_t info;
+- uint8_t frequency:4;
+- uint8_t channel_mode:4;
+-} __attribute__ ((packed)) a2dp_aptx_t;
+-
+ #else
+ #error "Unknown byte order"
+ #endif
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2017-02-04 15:20 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2017-02-04 15:20 UTC (permalink / raw
To: gentoo-commits
commit: b4723357d9721f055a054bb0bfd1596cbfea96b1
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 4 15:19:44 2017 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Feb 4 15:20:18 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b4723357
net-wireless/bluez: Drop old
Package-Manager: Portage-2.3.3, Repoman-2.3.1
net-wireless/bluez/Manifest | 3 -
net-wireless/bluez/bluez-4.101-r9.ebuild | 204 ----------------------
net-wireless/bluez/bluez-5.39.ebuild | 235 --------------------------
net-wireless/bluez/bluez-5.43.ebuild | 244 ---------------------------
net-wireless/bluez/files/bluetooth-init.d-r2 | 21 ---
net-wireless/bluez/files/rfcomm-conf.d | 5 -
net-wireless/bluez/files/rfcomm-init.d | 27 ---
7 files changed, 739 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index e479f0d..ae52d98 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,4 +1 @@
-DIST bluez-4.101-patches.tar.xz 12380 SHA256 ea4b837245080ebe904fe4f338cd3c8c1370e197cdfbcd42bd55430c940b5e13 SHA512 0ef3219ed923a0880b2fe7008c36c185ff631a8fe1b357cc3612888817d9a7eaa6624bd31ed00a8bbbb6739528cb777a0b9900a7db4930482d1cbc38417b89aa WHIRLPOOL b89729b2cb1ecd6c816210682605b275af396af056e85d9a8671192ede0470002c1f61931781f27ad988ce8bc137f69a6725008a5ea9fe743ae41bc2f5edc7e8
-DIST bluez-4.101.tar.xz 887236 SHA256 41f9578bef39b8c94a2d6ddeaa556afd22d136936d0f03100e422fe970a45a7d SHA512 c8a88fa6948e43c81687047856806c9dc576d3223371947b496f228dec2b2614d1c5a8ff587e9f26eec44843a50503c55861f9fa736fdba43b2364f663f0cb0d WHIRLPOOL 0c4f163e4f4d0ba8f7928f5330ac3fd5f204c299346c59e73b64ebb331b0887a2b01e8ed6f4e6ae91f826a0431df4f97fe3a0900fa6013ae66fd755aaa136196
-DIST bluez-5.39.tar.xz 1659576 SHA256 21d1bc9150d3576296595217efb98a746b592389d25d5637e8bee5da7272593b SHA512 a0c43d0de4dcbfa20bbfe34e805a60703f4b94d0aa6c1d128a0917dfaa490593b26eb555b0a343ff44d1f94349b61776189438039e489ddcf8fe107354740230 WHIRLPOOL da299f8556418cf38d5a05b91079fdb6ff85761127d4708783bcd97fa4502e208187c013b1d8622688b438308506fbb06732426c35f6fedc2fe25cfd68a93486
DIST bluez-5.43.tar.xz 1658348 SHA256 16c9c05d2a1da644ce3570d975ada3643d2e60c007a955bac09c0a0efeb58d15 SHA512 a48ac3d196a16fdfe7ef9bdc9a4ed8c9d40054e4f801a27a45150ce46e655ceff6264d230721065081d865c8b1f754ea0c407acc84fd299529aba048ce31889c WHIRLPOOL b63fcb8f9784122168f89902a74d811cc6236999de5dfe62b425032ac4d51923742f77d6d9957b3811c9584d194065bba184daf47882b1f09f760184a18838e9
diff --git a/net-wireless/bluez/bluez-4.101-r9.ebuild b/net-wireless/bluez/bluez-4.101-r9.ebuild
deleted file mode 100644
index 7e638fc..00000000
--- a/net-wireless/bluez/bluez-4.101-r9.ebuild
+++ /dev/null
@@ -1,204 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-inherit autotools eutils multilib python-single-r1 readme.gentoo \
- systemd user multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org/"
-SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz
- https://dev.gentoo.org/~pacho/bluez/${P}-patches.tar.xz"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 arm hppa ppc ppc64 x86"
-IUSE="alsa cups debug gstreamer hid2hci pcmcia readline selinux test-programs usb"
-
-REQUIRED_USE="test-programs? ( ${PYTHON_REQUIRED_USE} )"
-
-# TODO: revisit USE=gstreamer once gstreamer is ported to multilib
-
-CDEPEND="
- >=dev-libs/glib-2.28:2
- >=sys-apps/dbus-1.6:=
- >=sys-apps/hwids-20121202.2
- >=virtual/udev-171
- alsa? (
- >=media-libs/alsa-lib-1.0.27.2:=[${MULTILIB_USEDEP},alsa_pcm_plugins_extplug(+),alsa_pcm_plugins_ioplug(+)]
- media-libs/libsndfile:=
- )
- cups? ( net-print/cups:= )
- gstreamer? (
- >=media-libs/gstreamer-0.10:0.10
- >=media-libs/gst-plugins-base-0.10:0.10
- )
- readline? ( sys-libs/readline:= )
- selinux? ( sec-policy/selinux-bluetooth )
- usb? ( virtual/libusb:0 )
-"
-DEPEND="${CDEPEND}
- sys-devel/flex
- >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
- test-programs? ( >=dev-libs/check-0.9.6 )
-"
-RDEPEND="${CDEPEND}
- test-programs? (
- >=dev-python/dbus-python-1
- dev-python/pygobject:2
- dev-python/pygobject:3
- ${PYTHON_DEPS}
- )
- abi_x86_32? (
- !<app-emulation/emul-linux-x86-soundlibs-20140406-r1
- !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32]
- )
-"
-
-DOCS=( AUTHORS ChangeLog README )
-
-DOC_CONTENTS="
- If you want to use rfcomm as a normal user, you need to add the user
- to the uucp group.
-"
-
-pkg_setup() {
- enewgroup plugdev
- use test-programs && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- # Fedora patches
- epatch "${WORKDIR}/${P}-patches"/*.patch
-
- # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
- epatch "${FILESDIR}"/bluez-plugdev.patch
-
- sed -e "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/" -i configure.ac || die
-
- eautoreconf
-
- if use cups; then
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = `cups-config --serverbin`:" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
- )
-
- if ! multilib_is_native_abi; then
- myconf+=(
- # deps not used for the library
- {DBUS,GLIB}_{CFLAGS,LIBS}=' '
- )
- fi
-
- # Missing flags: --enable-{sap,hidd,pand,dund,dbusoob,gatt}
- # Keep this in ./configure --help order!
- econf \
- --localstatedir=/var \
- --enable-network \
- --enable-serial \
- --enable-input \
- --enable-audio \
- --enable-service \
- --enable-health \
- --enable-pnat \
- $(multilib_native_use_enable gstreamer) \
- $(use_enable alsa) \
- $(multilib_native_use_enable usb) \
- $(multilib_native_use_enable usb cable) \
- --enable-tools \
- --enable-bccmd \
- $(use_enable pcmcia) \
- $(multilib_native_use_enable hid2hci) \
- --enable-dfutool \
- $(multilib_native_use_enable cups) \
- $(multilib_native_use_enable test-programs test) \
- --enable-datafiles \
- $(use_enable debug) \
- --enable-maemo6 \
- --enable-wiimote \
- --disable-hal \
- --with-ouifile=/usr/share/misc/oui.txt \
- --with-systemdunitdir="$(systemd_get_unitdir)"
-}
-
-multilib_src_compile() {
- if multilib_is_native_abi; then
- default
- else
- emake -f Makefile -f - libs \
- <<<'libs: $(lib_LTLIBRARIES) $(alsa_LTLIBRARIES)'
- fi
-}
-
-multilib_src_test() {
- multilib_is_native_abi && default
-}
-
-multilib_src_install() {
- if multilib_is_native_abi; then
- emake DESTDIR="${D}" install
- else
- emake DESTDIR="${D}" \
- install-includeHEADERS \
- install-libLTLIBRARIES \
- install-alsaLTLIBRARIES \
- install-pkgconfigDATA
- fi
-
- if multilib_is_native_abi && use test-programs; then
- pushd test >/dev/null
- dobin simple-agent simple-service monitor-bluetooth
- newbin list-devices list-bluetooth-devices
- rm test-textfile.{c,o} || die #356529
- local b
- for b in hsmicro hsplay test-*; do
- newbin "${b}" bluez-"${b}"
- done
- insinto /usr/share/doc/${PF}/test-services
- doins service-*
- python_fix_shebang "${ED}"
- popd >/dev/null
- fi
-}
-
-multilib_src_install_all() {
- insinto /etc/bluetooth
- local d
- for d in input audio network serial; do
- doins ${d}/${d}.conf
- done
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r2 bluetooth
- newinitd "${FILESDIR}"/rfcomm-init.d rfcomm
- newconfd "${FILESDIR}"/rfcomm-conf.d rfcomm
-
- readme.gentoo_create_doc
-
- prune_libtool_files --modules
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-
- udevadm control --reload-rules
-
- has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
-
- if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
- elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will only"
- elog "be able to run bluetooth clients as root. If you want to be able to run bluetooth clientes as"
- elog "a regular user, you need to enable the consolekit use flag for this package or"
- elog "to add the user to the plugdev group."
- fi
-}
diff --git a/net-wireless/bluez/bluez-5.39.ebuild b/net-wireless/bluez/bluez-5.39.ebuild
deleted file mode 100644
index 7931cf8..00000000
--- a/net-wireless/bluez/bluez-5.39.ebuild
+++ /dev/null
@@ -1,235 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-PYTHON_COMPAT=( python3_{4,5} )
-
-inherit autotools eutils multilib python-single-r1 readme.gentoo-r1 systemd udev user multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0/3"
-KEYWORDS="amd64 arm ~arm64 hppa ~mips ppc ppc64 x86"
-
-IUSE="cups doc debug deprecated extra-tools experimental +obex +readline selinux systemd test test-programs +udev"
-REQUIRED_USE="
- test? ( ${PYTHON_REQUIRED_USE} )
- test-programs? ( ${PYTHON_REQUIRED_USE} )
-"
-
-CDEPEND="
- >=dev-libs/glib-2.28:2
- >=sys-apps/dbus-1.6:=
- >=sys-apps/hwids-20121202.2
- cups? ( net-print/cups:= )
- obex? ( dev-libs/libical:= )
- readline? ( sys-libs/readline:= )
- systemd? ( sys-apps/systemd )
- udev? ( >=virtual/udev-172 )
-"
-TEST_DEPS="${PYTHON_DEPS}
- >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-"
-
-DEPEND="${CDEPEND}
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-bluetooth )
- test-programs? ( ${TEST_DEPS} )
-"
-DOC_CONTENTS="
- If you want to use rfcomm as a normal user, you need to add the user
- to the uucp group.
-"
-
-PATCHES=(
- # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
- "${FILESDIR}"/bluez-plugdev.patch
-
- # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
- # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
- "${FILESDIR}"/bluez-udevadm-path.patch
-
- # build: Quote systemd variable names, bug #527432
- "${FILESDIR}"/bluez-5.39-systemd-quote.patch
-
- # http://article.gmane.org/gmane.linux.bluez.kernel/67230
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
-
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
-
- # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
- "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
-
- # ???
- "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
-)
-
-pkg_setup() {
- enewgroup plugdev
-
- 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
-
- if use cups; then
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- eautoreconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- # readline is automagic when client is enabled
- # --enable-client always needs readline, bug #504038
- ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
- )
-
- 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-experimental \
- --enable-optimization \
- $(use_enable debug) \
- --enable-pie \
- --enable-threads \
- --enable-library \
- --enable-tools \
- --enable-manpages \
- --enable-monitor \
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(multilib_native_use_enable cups) \
- $(multilib_native_use_enable deprecated) \
- $(multilib_native_use_enable experimental) \
- $(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 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 that tools can break"
- ewarn "without 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
- # gatttool is only built with readline, bug #530776
- if use readline; then
- dobin attrib/gatttool
- dobin tools/btmgmt
- fi
- dobin tools/hex2hcd
- fi
-
- # Unittests are not that useful once installed, so make them optional
- if use test-programs; then
- 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-includeHEADERS \
- install-libLTLIBRARIES \
- install-pkgconfigDATA
- fi
-}
-
-multilib_src_install_all() {
- prune_libtool_files --modules
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network proximity; do
- doins profiles/${d}/${d}.conf
- done
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
- newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
-
- einstalldocs
- use doc && dodoc doc/*.txt
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-
- use udev && udev_reload
-
- has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
-
- if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
- elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will"
- elog "need to add the user to the plugdev group."
- fi
-}
diff --git a/net-wireless/bluez/bluez-5.43.ebuild b/net-wireless/bluez/bluez-5.43.ebuild
deleted file mode 100644
index f0b2534..00000000
--- a/net-wireless/bluez/bluez-5.43.ebuild
+++ /dev/null
@@ -1,244 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 )
-
-inherit autotools eutils multilib python-single-r1 readme.gentoo-r1 systemd udev user multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0/3"
-KEYWORDS="amd64 arm ~arm64 hppa ~mips ppc ppc64 x86"
-
-IUSE="cups doc debug deprecated extra-tools experimental +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.
-REQUIRED_USE="
- extra-tools? ( readline )
- test? ( ${PYTHON_REQUIRED_USE} )
- test-programs? ( ${PYTHON_REQUIRED_USE} )
-"
-
-CDEPEND="
- >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
- >=sys-apps/dbus-1.6:=
- >=sys-apps/hwids-20121202.2
- cups? ( net-print/cups:= )
- obex? ( dev-libs/libical:= )
- readline? ( sys-libs/readline:= )
- systemd? ( sys-apps/systemd )
- udev? ( >=virtual/udev-172 )
-"
-TEST_DEPS="${PYTHON_DEPS}
- >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-"
-
-DEPEND="${CDEPEND}
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-bluetooth )
- test-programs? ( ${TEST_DEPS} )
-"
-DOC_CONTENTS="
- If you want to use rfcomm as a normal user, you need to add the user
- to the uucp group.
-"
-
-PATCHES=(
- # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
- "${FILESDIR}"/bluez-plugdev.patch
-
- # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
- # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
- "${FILESDIR}"/bluez-udevadm-path.patch
-
- # build: Quote systemd variable names, bug #527432
- "${FILESDIR}"/bluez-5.39-systemd-quote.patch
-
- # http://article.gmane.org/gmane.linux.bluez.kernel/67230
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
-
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
-
- # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
- "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
-
- # ???
- "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
-)
-
-pkg_setup() {
- enewgroup plugdev
-
- 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
-
- if use cups; then
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- eautoreconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- # readline is automagic when client is enabled
- # --enable-client always needs readline, bug #504038
- ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
- )
-
- 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-experimental \
- --enable-optimization \
- $(use_enable debug) \
- --enable-pie \
- --enable-threads \
- --enable-library \
- --enable-tools \
- --enable-manpages \
- --enable-monitor \
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(multilib_native_use_enable cups) \
- $(multilib_native_use_enable deprecated) \
- $(multilib_native_use_enable experimental) \
- $(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 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 that tools can break"
- ewarn "without 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
- # gatttool is only built with readline, bug #530776
- if use readline; then
- dobin attrib/gatttool
- dobin tools/btmgmt
- fi
- fi
-
- # Unittests are not that useful once installed, so make them optional
- if use test-programs; then
- # example-gatt-client is the only one needing
- # python3, the others are python2 only. Remove
- # until we see how to pull in python2 and python3
- # for runtime
- rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
- rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || 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-includeHEADERS \
- install-libLTLIBRARIES \
- install-pkgconfigDATA
- fi
-}
-
-multilib_src_install_all() {
- prune_libtool_files --modules
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network proximity; do
- doins profiles/${d}/${d}.conf
- done
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
- newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
-
- einstalldocs
- use doc && dodoc doc/*.txt
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-
- use udev && udev_reload
-
- has_version net-dialup/ppp || elog "To use dial up networking you must install net-dialup/ppp."
-
- if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
- elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will"
- elog "need to add the user to the plugdev group."
- fi
-}
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r2 b/net-wireless/bluez/files/bluetooth-init.d-r2
deleted file mode 100644
index d16181e..00000000
--- a/net-wireless/bluez/files/bluetooth-init.d-r2
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-depend() {
- after coldplug
- need dbus localmount hostname
-}
-
-start() {
- ebegin "Starting ${SVCNAME}"
- start-stop-daemon --start --exec /usr/sbin/bluetoothd
- eend $?
-}
-
-stop() {
- ebegin "Shutting down ${SVCNAME}"
- start-stop-daemon --stop --quiet --exec /usr/sbin/bluetoothd
- eend $?
-}
diff --git a/net-wireless/bluez/files/rfcomm-conf.d b/net-wireless/bluez/files/rfcomm-conf.d
deleted file mode 100644
index d87acdb..00000000
--- a/net-wireless/bluez/files/rfcomm-conf.d
+++ /dev/null
@@ -1,5 +0,0 @@
-# Bind rfcomm devices (allowed values are "true" and "false")
-RFCOMM_ENABLE=true
-
-# Config file for rfcomm
-RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
diff --git a/net-wireless/bluez/files/rfcomm-init.d b/net-wireless/bluez/files/rfcomm-init.d
deleted file mode 100644
index 84095be..00000000
--- a/net-wireless/bluez/files/rfcomm-init.d
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-depend() {
- after coldplug
- need dbus localmount hostname
-}
-
-start() {
- if [ "${RFCOMM_ENABLE}" = "true" -a -x /usr/bin/rfcomm ]; then
- if [ -f "${RFCOMM_CONFIG}" ]; then
- ebegin "Starting rfcomm"
- /usr/bin/rfcomm -f "${RFCOMM_CONFIG}" bind all
- eend $?
- else
- ewarn "Not enabling rfcomm because RFCOMM_CONFIG does not exists"
- fi
- fi
-}
-
-stop() {
- ebegin "Shutting down rfcomm"
- /usr/bin/rfcomm release all
- eend $?
-}
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2017-09-14 17:23 Patrick McLean
0 siblings, 0 replies; 22+ messages in thread
From: Patrick McLean @ 2017-09-14 17:23 UTC (permalink / raw
To: gentoo-commits
commit: ffd3f508463eb80c860adcae5f966ca2ab92b92b
Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 14 17:22:55 2017 +0000
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Sep 14 17:23:19 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ffd3f508
net-wireless/bluez: Revision bump to 5.47-r1, update OpenRC init script
Gentoo-Bug: 630988
Package-Manager: Portage-2.3.8, Repoman-2.3.3
.../bluez/{bluez-5.47.ebuild => bluez-5.47-r1.ebuild} | 2 +-
net-wireless/bluez/files/bluetooth-init.d-r4 | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/net-wireless/bluez/bluez-5.47.ebuild b/net-wireless/bluez/bluez-5.47-r1.ebuild
similarity index 99%
rename from net-wireless/bluez/bluez-5.47.ebuild
rename to net-wireless/bluez/bluez-5.47-r1.ebuild
index 1549f18010f..e60d2611e3f 100644
--- a/net-wireless/bluez/bluez-5.47.ebuild
+++ b/net-wireless/bluez/bluez-5.47-r1.ebuild
@@ -245,7 +245,7 @@ multilib_src_install_all() {
done
doins src/main.conf
- newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
+ newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
einstalldocs
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r4 b/net-wireless/bluez/files/bluetooth-init.d-r4
new file mode 100755
index 00000000000..97cf500008e
--- /dev/null
+++ b/net-wireless/bluez/files/bluetooth-init.d-r4
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/bluetoothd.pid"
+command="/usr/libexec/bluetooth/bluetoothd"
+command_background=1
+
+depend() {
+ after coldplug
+ need dbus localmount hostname
+}
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2017-09-24 21:26 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2017-09-24 21:26 UTC (permalink / raw
To: gentoo-commits
commit: 19474b4a6cf48f0df05a9d3ad03a6ea470ef44ec
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 24 21:26:35 2017 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Sep 24 21:26:35 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=19474b4a
net-wireless/bluez: Drop old
Package-Manager: Portage-2.3.10, Repoman-2.3.3
net-wireless/bluez/Manifest | 1 -
net-wireless/bluez/bluez-5.43-r1.ebuild | 255 ---------------------------
net-wireless/bluez/files/bluetooth-init.d-r3 | 20 ---
3 files changed, 276 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 98dccd62079..cdd113dc8ac 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,2 +1 @@
-DIST bluez-5.43.tar.xz 1658348 SHA256 16c9c05d2a1da644ce3570d975ada3643d2e60c007a955bac09c0a0efeb58d15 SHA512 a48ac3d196a16fdfe7ef9bdc9a4ed8c9d40054e4f801a27a45150ce46e655ceff6264d230721065081d865c8b1f754ea0c407acc84fd299529aba048ce31889c WHIRLPOOL b63fcb8f9784122168f89902a74d811cc6236999de5dfe62b425032ac4d51923742f77d6d9957b3811c9584d194065bba184daf47882b1f09f760184a18838e9
DIST bluez-5.47.tar.xz 1718920 SHA256 cf75bf7cd5d564f21cc4a2bd01d5c39ce425397335fd47d9bbe43af0a58342c8 SHA512 86fa1baae1593d4824038db8418358b0be624c81fc23ee8f96ec08979d309a2377be3924ab53cc0fcb712aec8e696360e9a9f4de4c12cc31b14de5cf495a11a6 WHIRLPOOL c3b2999ea73804f905b81222db9e5f3df0e9b3b7b4ed888a9b7ce760f831c335080ef35368b62d837f2d2d1695cf18d845a1259bb6d76ee8d6ff17b5197abf01
diff --git a/net-wireless/bluez/bluez-5.43-r1.ebuild b/net-wireless/bluez/bluez-5.43-r1.ebuild
deleted file mode 100644
index e041949288f..00000000000
--- a/net-wireless/bluez/bluez-5.43-r1.ebuild
+++ /dev/null
@@ -1,255 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python2_7 )
-
-inherit autotools eutils multilib python-single-r1 readme.gentoo-r1 systemd udev user multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0/3"
-KEYWORDS="amd64 arm ~arm64 hppa ~mips ppc ppc64 x86"
-
-IUSE="cups doc debug deprecated extra-tools experimental +obex +readline selinux systemd test test-programs +udev user-session"
-# 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.
-REQUIRED_USE="
- extra-tools? ( readline )
- test? ( ${PYTHON_REQUIRED_USE} )
- test-programs? ( ${PYTHON_REQUIRED_USE} )
- user-session? ( systemd )
-"
-
-CDEPEND="
- >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
- >=sys-apps/dbus-1.6:=[user-session=]
- >=sys-apps/hwids-20121202.2
- cups? ( net-print/cups:= )
- obex? ( dev-libs/libical:= )
- readline? ( sys-libs/readline:= )
- systemd? ( sys-apps/systemd )
- udev? ( >=virtual/udev-172 )
-"
-TEST_DEPS="${PYTHON_DEPS}
- >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
- dev-python/pygobject:3[${PYTHON_USEDEP}]
-"
-
-DEPEND="${CDEPEND}
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-bluetooth )
- test-programs? ( ${TEST_DEPS} )
-"
-DOC_CONTENTS="
- If you want to use rfcomm as a normal user, you need to add the user
- to the uucp group.
-"
-
-PATCHES=(
- # Use static group "plugdev" if there is no ConsoleKit (or systemd logind)
- "${FILESDIR}"/bluez-plugdev.patch
-
- # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
- # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
- "${FILESDIR}"/bluez-udevadm-path.patch
-
- # build: Quote systemd variable names, bug #527432
- # http://article.gmane.org/gmane.linux.bluez.kernel/67230
- "${FILESDIR}"/bluez-5.39-systemd-quote.patch
-
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
-
- # http://www.spinics.net/lists/linux-bluetooth/msg41264.html
- "${FILESDIR}"/0002-autopair-Don-t-handle-the-iCade.patch
-
- # ???
- "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
-)
-
-pkg_setup() {
- enewgroup plugdev
-
- 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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- ! use user-session && eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
-
- if use cups; then
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- eautoreconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- local myconf=(
- # readline is automagic when client is enabled
- # --enable-client always needs readline, bug #504038
- ac_cv_header_readline_readline_h=$(multilib_native_usex readline)
- )
-
- 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-experimental \
- --enable-optimization \
- $(use_enable debug) \
- --enable-pie \
- --enable-threads \
- --enable-library \
- --enable-tools \
- --enable-manpages \
- --enable-monitor \
- --with-systemdsystemunitdir="$(systemd_get_systemunitdir)" \
- $(multilib_native_use_enable cups) \
- $(multilib_native_use_enable deprecated) \
- $(multilib_native_use_enable experimental) \
- $(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 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 that tools can break"
- ewarn "without 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
- # gatttool is only built with readline, bug #530776
- if use readline; then
- dobin attrib/gatttool
- dobin tools/btmgmt
- fi
- fi
-
- # Unittests are not that useful once installed, so make them optional
- if use test-programs; then
- # example-gatt-client is the only one needing
- # python3, the others are python2 only. Remove
- # until we see how to pull in python2 and python3
- # for runtime
- rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
- rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || 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-includeHEADERS \
- 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
- use user-session && ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
-
- prune_libtool_files --modules
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network proximity; do
- doins profiles/${d}/${d}.conf
- done
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r3 bluetooth
- newinitd "${FILESDIR}"/rfcomm-init.d-r2 rfcomm
-
- einstalldocs
- use doc && dodoc doc/*.txt
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-
- 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."
-
- if ! has_version sys-auth/consolekit && ! has_version sys-apps/systemd; then
- elog "Since you don't have sys-auth/consolekit neither sys-apps/systemd, you will"
- elog "need to add the user to the plugdev group."
- fi
-}
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r3 b/net-wireless/bluez/files/bluetooth-init.d-r3
deleted file mode 100644
index b54f47d16ff..00000000000
--- a/net-wireless/bluez/files/bluetooth-init.d-r3
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- after coldplug
- need dbus localmount hostname
-}
-
-start() {
- ebegin "Starting ${SVCNAME}"
- start-stop-daemon --start --background --exec /usr/libexec/bluetooth/bluetoothd
- eend $?
-}
-
-stop() {
- ebegin "Shutting down ${SVCNAME}"
- start-stop-daemon --stop --quiet --exec /usr/libexec/bluetooth/bluetoothd
- eend $?
-}
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2018-05-23 18:52 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2018-05-23 18:52 UTC (permalink / raw
To: gentoo-commits
commit: 5f6f22e0b7c30080a493a439178ee2b7a92b4afe
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Wed May 23 18:36:23 2018 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed May 23 18:52:21 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5f6f22e0
net-wireless/bluez: Fix crash with non-LE devices (#655114)
Package-Manager: Portage-2.3.31, Repoman-2.3.9
net-wireless/bluez/bluez-5.49-r1.ebuild | 263 +++++++++++++++++++++
.../bluez/files/bluez-5.49-crash-non-LE.patch | 51 ++++
2 files changed, 314 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.49-r1.ebuild b/net-wireless/bluez/bluez-5.49-r1.ebuild
new file mode 100644
index 00000000000..d5c27acdb57
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.49-r1.ebuild
@@ -0,0 +1,263 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools multilib python-single-r1 readme.gentoo-r1 systemd udev user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~x86"
+IUSE="alsa cups doc debug deprecated extra-tools experimental +mesh +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ extra-tools? ( deprecated readline )
+ test? ( ${PYTHON_REQUIRED_USE} )
+ test-programs? ( ${PYTHON_REQUIRED_USE} )
+ user-session? ( systemd )
+"
+
+CDEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/dbus-1.6:=[user-session=]
+ >=sys-apps/hwids-20121202.2
+ alsa? ( media-libs/alsa-lib )
+ cups? ( net-print/cups:= )
+ mesh? (
+ dev-libs/json-c:=
+ sys-libs/readline:0= )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:0= )
+ systemd? ( sys-apps/systemd )
+ udev? ( >=virtual/udev-172 )
+"
+TEST_DEPS="${PYTHON_DEPS}
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+"
+
+DEPEND="${CDEPEND}
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+RDEPEND="${CDEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+ test-programs? ( ${TEST_DEPS} )
+"
+DOC_CONTENTS="
+ If you want to control your bluetooth devices as a non-root user,
+ please remember to add you to plugdev group.
+"
+
+PATCHES=(
+ # Use static group "plugdev" to not force people to become root for
+ # controlling the devices.
+ "${FILESDIR}"/${PN}-plugdev.patch
+
+ # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
+ # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
+ "${FILESDIR}"/${PN}-udevadm-path.patch
+
+ # build: Quote systemd variable names, bug #527432
+ # http://article.gmane.org/gmane.linux.bluez.kernel/67230
+ "${FILESDIR}"/${PN}-5.39-systemd-quote.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # ???
+ "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+
+ # https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=2c3bba7b38be03834162e34069156f1fd49f0528
+ # Fixed in next version
+ "${FILESDIR}"/${P}-crash-non-LE.patch
+)
+
+pkg_setup() {
+ enewgroup plugdev
+
+ 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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ ! use user-session && eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ # Broken test https://bugzilla.kernel.org/show_bug.cgi?id=196621
+ sed -i -e '/unit_tests += unit\/test-gatt\b/d' Makefile.am || die
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ # btpclient disabled because we don't have ell library in the tree
+ econf \
+ --localstatedir=/var \
+ --disable-android \
+ --disable-btpclient \
+ --enable-datafiles \
+ --enable-experimental \
+ --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 alsa midi) \
+ $(multilib_native_use_enable cups) \
+ $(multilib_native_use_enable deprecated) \
+ $(multilib_native_use_enable experimental) \
+ $(multilib_native_use_enable mesh) \
+ $(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 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 that tools can break"
+ ewarn "without 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
+ # gatttool is only built with readline, bug #530776
+ dobin attrib/gatttool
+ dobin tools/btmgmt
+ fi
+
+ # Unittests are not that useful once installed, so make them optional
+ if use test-programs; then
+ # example-gatt-client is the only one needing
+ # python3, the others are python2 only. Remove
+ # until we see how to pull in python2 and python3
+ # for runtime
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || 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-includeHEADERS \
+ 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
+ use user-session && ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+
+ find "${D}" -name '*.la' -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ ! use systemd && readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ ! use systemd && readme.gentoo_print_elog
+
+ 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."
+}
diff --git a/net-wireless/bluez/files/bluez-5.49-crash-non-LE.patch b/net-wireless/bluez/files/bluez-5.49-crash-non-LE.patch
new file mode 100644
index 00000000000..b66868e7140
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.49-crash-non-LE.patch
@@ -0,0 +1,51 @@
+From 2c3bba7b38be03834162e34069156f1fd49f0528 Mon Sep 17 00:00:00 2001
+From: "antoine.belvire@laposte.net" <antoine.belvire@laposte.net>
+Date: Tue, 27 Mar 2018 20:30:26 +0200
+Subject: adapter: Don't refresh adv_manager for non-LE devices
+
+btd_adv_manager_refresh is called upon MGMT_SETTING_DISCOVERABLE setting change
+but as only LE adapters have an adv_manager, this leads to segmentation fault
+for non-LE devices:
+
+0 btd_adv_manager_refresh (manager=0x0) at src/advertising.c:1176
+1 0x0000556fe45fcb02 in settings_changed (settings=<optimized out>,
+ adapter=0x556fe53f7c70) at src/adapter.c:543
+2 new_settings_callback (index=<optimized out>, length=<optimized out>,
+ param=<optimized out>, user_data=0x556fe53f7c70) at src/adapter.c:573
+3 0x0000556fe462c278 in request_complete (mgmt=mgmt@entry=0x556fe53f20c0,
+ status=<optimized out>, opcode=opcode@entry=7, index=index@entry=0,
+ length=length@entry=4, param=0x556fe53eb5f9) at src/shared/mgmt.c:261
+4 0x0000556fe462cd9d in can_read_data (io=<optimized out>,
+ user_data=0x556fe53f20c0) at src/shared/mgmt.c:353
+5 0x0000556fe46396e3 in watch_callback (channel=<optimized out>,
+ cond=<optimized out>, user_data=<optimized out>)
+ at src/shared/io-glib.c:170
+6 0x00007fe351c980e5 in g_main_context_dispatch ()
+ from /usr/lib64/libglib-2.0.so.0
+7 0x00007fe351c984b0 in ?? () from /usr/lib64/libglib-2.0.so.0
+8 0x00007fe351c987c2 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
+9 0x0000556fe45abc75 in main (argc=<optimized out>, argv=<optimized out>)
+ at src/main.c:770
+
+This commit prevents the call to btd_adv_manager_refresh for non-LE devices.
+---
+ src/adapter.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/adapter.c b/src/adapter.c
+index 6b9222b..daccfdc 100644
+--- a/src/adapter.c
++++ b/src/adapter.c
+@@ -540,7 +540,8 @@ static void settings_changed(struct btd_adapter *adapter, uint32_t settings)
+ g_dbus_emit_property_changed(dbus_conn, adapter->path,
+ ADAPTER_INTERFACE, "Discoverable");
+ store_adapter_info(adapter);
+- btd_adv_manager_refresh(adapter->adv_manager);
++ if (adapter->supported_settings & MGMT_SETTING_LE)
++ btd_adv_manager_refresh(adapter->adv_manager);
+ }
+
+ if (changed_mask & MGMT_SETTING_BONDABLE) {
+--
+cgit v1.1
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2019-01-19 8:56 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2019-01-19 8:56 UTC (permalink / raw
To: gentoo-commits
commit: d24e675eb6f2d5c6db5de9bab734a4340e4dbc01
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 19 08:17:18 2019 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Jan 19 08:56:23 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d24e675e
net-wireless/bluez: Fix missing header build failure
Thanks-to: Dennis Schridde
Thanks-to: W. Duijvenvoorde
Closes: https://bugs.gentoo.org/675362
Package-Manager: Portage-2.3.55, Repoman-2.3.12
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.50-r1.ebuild | 3 +++
| 10 ++++++++++
2 files changed, 13 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.50-r1.ebuild b/net-wireless/bluez/bluez-5.50-r1.ebuild
index 176d40c87d0..677e62aad26 100644
--- a/net-wireless/bluez/bluez-5.50-r1.ebuild
+++ b/net-wireless/bluez/bluez-5.50-r1.ebuild
@@ -60,6 +60,9 @@ DOC_CONTENTS="
"
PATCHES=(
+ # Fix missing header (fixed in 'master')
+ "${FILESDIR}"/${P}-btpclient-header.patch
+
# Use static group "plugdev" to not force people to become root for
# controlling the devices.
"${FILESDIR}"/${PN}-plugdev.patch
--git a/net-wireless/bluez/files/bluez-5.50-btpclient-header.patch b/net-wireless/bluez/files/bluez-5.50-btpclient-header.patch
new file mode 100644
index 00000000000..61a8e6a3742
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.50-btpclient-header.patch
@@ -0,0 +1,10 @@
+diff -Nuar bluez-5.50/tools/btpclient.c bluez-5.50-fixed/tools/btpclient.c
+--- bluez-5.50/tools/btpclient.c 2018-03-10 17:37:07.000000000 +0200
++++ bluez-5.50-fixed/tools/btpclient.c 2018-11-18 09:54:38.916794492 +0200
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <assert.h>
+ #include <getopt.h>
++#include <signal.h>
+
+ #include <ell/ell.h>
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2019-06-10 11:23 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2019-06-10 11:23 UTC (permalink / raw
To: gentoo-commits
commit: d0fe48785cce688dd6838794c810a3786c1bc1ef
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 10 11:22:54 2019 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Mon Jun 10 11:22:54 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d0fe4878
net-wireless/bluez: Backport lots of fixes (from Fedora)...
- Include multiple fixes backported by Fedora people
- Stop relying on plugdev group and follow upstream policy (#679034)
- Update udevadm PATH for current systemd (#539844)
- Rename USE alsa to midi (#658862)
Closes: https://bugs.gentoo.org/679034
Closes: https://bugs.gentoo.org/658862
Bug: https://bugs.gentoo.org/539844
Package-Manager: Portage-2.3.67, Repoman-2.3.13
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 1 +
net-wireless/bluez/bluez-5.50-r3.ebuild | 267 +++++++++++++++++++++
.../bluez/files/bluez-5.50-sink-connect.patch | 72 ++++++
.../bluez/files/bluez-udevadm-path-r1.patch | 10 +
net-wireless/bluez/metadata.xml | 9 +-
5 files changed, 354 insertions(+), 5 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 0574b3c3473..2de1b406112 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1 +1,2 @@
+DIST bluez-5.50-fedora-backports.tar.xz 32232 BLAKE2B 35244036bbe18481e32bef2dcd4a223d44442ce28cee85a3a736bfbf5ee9d74372fa6366dc1102bf86babada608966a8c30b1c2537859a3741c289cabbc76026 SHA512 6d33e8bc67e50dc0d4cee3fa080402a51ddc8b6549f19b6c272de7dc51604eab23f909322f01aaca8a834abdc3cfd0bf24bb8623071af0cf0611d7427c9d8e9a
DIST bluez-5.50.tar.xz 1755384 BLAKE2B d70763a80fa233cd31fbefc44f73ffceb54c2d7b64ee83df0d2dafb039771d2b18e69dd44b35b2cdf8eee97553c02deca2281f7ec54e958218cf6c4b364a8516 SHA512 64a680e4b3c270bc2439610c91ad2aef36131d84401e4bbdf6c2b7ec8708a19dfc942b31b9189c38a97ca072c761c669ae1aace5f4ff5d06de3ccbf33184be45
diff --git a/net-wireless/bluez/bluez-5.50-r3.ebuild b/net-wireless/bluez/bluez-5.50-r3.ebuild
new file mode 100644
index 00000000000..c613f12d2fd
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.50-r3.ebuild
@@ -0,0 +1,267 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+inherit autotools python-single-r1 systemd udev user multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="
+ mirror://kernel/linux/bluetooth/${P}.tar.xz
+ https://dev.gentoo.org/~pacho/${PN}/${P}-fedora-backports.tar.xz
+"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~x86"
+IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ extra-tools? ( deprecated readline )
+ test? ( ${PYTHON_REQUIRED_USE} )
+ test-programs? ( ${PYTHON_REQUIRED_USE} )
+"
+
+TEST_DEPS="${PYTHON_DEPS}
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+DEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwids-20121202.2
+ btpclient? ( >=dev-libs/ell-0.3 )
+ cups? ( net-print/cups:= )
+ mesh? (
+ >=dev-libs/ell-0.3
+ dev-libs/json-c:=
+ sys-libs/readline:0=
+ )
+ midi? ( media-libs/alsa-lib )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:0= )
+ systemd? (
+ >=sys-apps/dbus-1.6:=[user-session=]
+ sys-apps/systemd
+ )
+ !systemd? ( >=sys-apps/dbus-1.6:= )
+ udev? ( >=virtual/udev-172 )
+"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+ test-programs? ( ${TEST_DEPS} )
+"
+
+PATCHES=(
+ # Fix missing header (fixed in 'master')
+ "${FILESDIR}"/${P}-btpclient-header.patch
+
+ # Fix switch to A2DP sink profile
+ "${FILESDIR}"/${P}-sink-connect.patch
+
+ # Try both udevadm paths to cover udev/systemd vs. eudev locations (#539844)
+ # http://www.spinics.net/lists/linux-bluetooth/msg58739.html
+ "${FILESDIR}"/${PN}-udevadm-path-r1.patch
+
+ # build: Quote systemd variable names, bug #527432
+ # http://article.gmane.org/gmane.linux.bluez.kernel/67230
+ "${FILESDIR}"/${PN}-5.39-systemd-quote.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # ???
+ "${FILESDIR}"/0004-agent-Assert-possible-infinite-loop.patch
+)
+
+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
+
+ # Apply Fedora backports
+ eapply "${WORKDIR}"/${P}-fedora-backports/*.patch
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use user-session || ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+ fi
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ # Broken test https://bugzilla.kernel.org/show_bug.cgi?id=196621
+ sed -i -e '/unit_tests += unit\/test-gatt\b/d' Makefile.am || die
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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 cups) \
+ $(multilib_native_use_enable deprecated) \
+ $(multilib_native_use_enable experimental) \
+ $(multilib_native_use_enable mesh) \
+ $(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 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 that tools can break"
+ ewarn "without 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
+ # gatttool is only built with readline, bug #530776
+ dobin attrib/gatttool
+ dobin tools/btmgmt
+ 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
+ # example-gatt-client is the only one needing
+ # python3, the others are python2 only. Remove
+ # until we see how to pull in python2 and python3
+ # for runtime
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || 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-includeHEADERS \
+ 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 user-session && use systemd; then
+ ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+ fi
+
+ find "${D}" -name '*.la' -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+}
+
+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."
+}
diff --git a/net-wireless/bluez/files/bluez-5.50-sink-connect.patch b/net-wireless/bluez/files/bluez-5.50-sink-connect.patch
new file mode 100644
index 00000000000..2093b69a655
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.50-sink-connect.patch
@@ -0,0 +1,72 @@
+From 477ecca127c529611adbc53f08039cefaf86305d Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Tue, 26 Jun 2018 13:37:33 +0300
+Subject: policy: Add logic to connect a Sink
+
+If HFP/HSP HS connects and the device also supports a Sink connect it
+as well since some devices (e.g. Sony MW600) may not connect it
+automatically.
+---
+ plugins/policy.c | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+diff --git a/plugins/policy.c b/plugins/policy.c
+index 1f5a506a2..de51e58b9 100644
+--- a/plugins/policy.c
++++ b/plugins/policy.c
+@@ -297,6 +297,42 @@ static void sink_cb(struct btd_service *service, btd_service_state_t old_state,
+ }
+ }
+
++static void hs_cb(struct btd_service *service, btd_service_state_t old_state,
++ btd_service_state_t new_state)
++{
++ struct btd_device *dev = btd_service_get_device(service);
++ struct policy_data *data;
++ struct btd_service *sink;
++
++ /* If the device supports Sink set a timer to connect it as well */
++ sink = btd_device_get_service(dev, A2DP_SINK_UUID);
++ if (sink == NULL)
++ return;
++
++ data = policy_get_data(dev);
++
++ switch (new_state) {
++ case BTD_SERVICE_STATE_UNAVAILABLE:
++ break;
++ case BTD_SERVICE_STATE_DISCONNECTED:
++ break;
++ case BTD_SERVICE_STATE_CONNECTING:
++ break;
++ case BTD_SERVICE_STATE_CONNECTED:
++ /* Check if service initiate the connection then proceed
++ * immediately otherwise set timer
++ */
++ if (old_state == BTD_SERVICE_STATE_CONNECTING)
++ policy_connect(data, sink);
++ else if (btd_service_get_state(sink) !=
++ BTD_SERVICE_STATE_CONNECTED)
++ policy_set_sink_timer(data);
++ break;
++ case BTD_SERVICE_STATE_DISCONNECTING:
++ break;
++ }
++}
++
+ static gboolean policy_connect_tg(gpointer user_data)
+ {
+ struct policy_data *data = user_data;
+@@ -615,6 +651,9 @@ static void service_cb(struct btd_service *service,
+ controller_cb(service, old_state, new_state);
+ else if (g_str_equal(profile->remote_uuid, AVRCP_TARGET_UUID))
+ target_cb(service, old_state, new_state);
++ else if (g_str_equal(profile->remote_uuid, HFP_HS_UUID) ||
++ g_str_equal(profile->remote_uuid, HSP_HS_UUID))
++ hs_cb(service, old_state, new_state);
+
+ /*
+ * Return if the reconnection feature is not enabled (all
+--
+cgit 1.2-0.3.lf.el7
+
diff --git a/net-wireless/bluez/files/bluez-udevadm-path-r1.patch b/net-wireless/bluez/files/bluez-udevadm-path-r1.patch
new file mode 100644
index 00000000000..ac1c94ccd21
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-udevadm-path-r1.patch
@@ -0,0 +1,10 @@
+--- a/tools/hid2hci.rules
++++ b/tools/hid2hci.rules
+@@ -20,6 +20,7 @@
+ # Unfortunately the only event seen is the BT device disappearing, so the mouse
+ # device needs to be chased down on the USB bus.
+ ATTR{bDeviceClass}=="e0", ATTR{bDeviceSubClass}=="01", ATTR{bDeviceProtocol}=="01", ATTR{idVendor}=="413c", \
++ ENV{REMOVE_CMD}="/bin/udevadm trigger --action=change --subsystem-match=usb --property-match=HID2HCI_SWITCH=1" \
+ ENV{REMOVE_CMD}="/sbin/udevadm trigger --action=change --subsystem-match=usb --property-match=HID2HCI_SWITCH=1"
+
+ # CSR devices
diff --git a/net-wireless/bluez/metadata.xml b/net-wireless/bluez/metadata.xml
index 3f1b1fdf5cd..31e86951f85 100644
--- a/net-wireless/bluez/metadata.xml
+++ b/net-wireless/bluez/metadata.xml
@@ -13,11 +13,10 @@
purpose by default. All this tools shouldn't be used. Then, please
notify upstream about you still need them to let them know the
situation.</flag>
- <flag name="mesh">Add support for Bluetooth Mesh control application and advertising
- bearer.</flag>
- <flag name="obex">Enable OBEX transfer support.</flag>
- <flag name="test-programs">Install tools for testing of
- various Bluetooth functions</flag>
+ <flag name="mesh">Add support for Bluetooth Mesh control application and advertising bearer.</flag>
+ <flag name="midi">Enable MIDI support</flag>
+ <flag name="obex">Enable OBEX transfer support</flag>
+ <flag name="test-programs">Install tools for testing of various Bluetooth functions</flag>
<flag name="user-session">Allow compatibility with user-session semantics for session bus under systemd</flag>
</use>
<upstream>
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2019-09-29 11:01 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2019-09-29 11:01 UTC (permalink / raw
To: gentoo-commits
commit: 01275fe1564faa3c830bca4b0ea900fb44bafb0f
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 29 10:58:47 2019 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Sep 29 10:58:47 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=01275fe1
net-wireless/bluez: Version bump to 5.51
- Follow Fedora for installing few more needed extra-tools, AutoEnable
bluetooth as soon as possible for keyboard/mouse devices.
- Install example files for meshctl (#662110)
- Fix QA issues (#694852)
Closes: https://bugs.gentoo.org/662110
Bug: https://bugs.gentoo.org/683230
Closes: https://bugs.gentoo.org/694852
Closes: https://bugs.gentoo.org/695316
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 1 +
net-wireless/bluez/bluez-5.51.ebuild | 285 +++++++++++++++++++++++
net-wireless/bluez/files/69-btattach-bcm.rules | 33 +++
net-wireless/bluez/files/bluetooth-init.d-r4 | 2 +-
net-wireless/bluez/files/btattach-bcm-service.sh | 30 +++
net-wireless/bluez/files/btattach-bcm_at.service | 6 +
6 files changed, 356 insertions(+), 1 deletion(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 2de1b406112..042c13a4249 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,2 +1,3 @@
DIST bluez-5.50-fedora-backports.tar.xz 32232 BLAKE2B 35244036bbe18481e32bef2dcd4a223d44442ce28cee85a3a736bfbf5ee9d74372fa6366dc1102bf86babada608966a8c30b1c2537859a3741c289cabbc76026 SHA512 6d33e8bc67e50dc0d4cee3fa080402a51ddc8b6549f19b6c272de7dc51604eab23f909322f01aaca8a834abdc3cfd0bf24bb8623071af0cf0611d7427c9d8e9a
DIST bluez-5.50.tar.xz 1755384 BLAKE2B d70763a80fa233cd31fbefc44f73ffceb54c2d7b64ee83df0d2dafb039771d2b18e69dd44b35b2cdf8eee97553c02deca2281f7ec54e958218cf6c4b364a8516 SHA512 64a680e4b3c270bc2439610c91ad2aef36131d84401e4bbdf6c2b7ec8708a19dfc942b31b9189c38a97ca072c761c669ae1aace5f4ff5d06de3ccbf33184be45
+DIST bluez-5.51.tar.xz 1941904 BLAKE2B e8580388961c99305c6f723160e726232a097067815a88a056c1569c55c2ea410004cf92572afbef9b782807d8a940503b4501f9c6046cacac35136fbbe580a8 SHA512 8b14eea98f541b981162abce728e0f917654ad3c990721ec398fe41bdd68069fe55ff64b61bc3c3b9f813facf42c995b07619f6d5d153965de27154b1a7b578f
diff --git a/net-wireless/bluez/bluez-5.51.ebuild b/net-wireless/bluez/bluez-5.51.ebuild
new file mode 100644
index 00000000000..b777edab5bc
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.51.ebuild
@@ -0,0 +1,285 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+SRC_URI="mirror://kernel/linux/bluetooth/${P}.tar.xz"
+
+LICENSE="GPL-2+ LGPL-2.1+"
+SLOT="0/3"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~x86"
+IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ extra-tools? ( deprecated readline )
+ test? ( ${PYTHON_REQUIRED_USE} )
+ test-programs? ( ${PYTHON_REQUIRED_USE} )
+"
+
+TEST_DEPS="${PYTHON_DEPS}
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+DEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwids-20121202.2
+ btpclient? ( >=dev-libs/ell-0.14 )
+ cups? ( net-print/cups:= )
+ mesh? (
+ >=dev-libs/ell-0.14
+ dev-libs/json-c:=
+ sys-libs/readline:0=
+ )
+ midi? ( media-libs/alsa-lib )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:0= )
+ systemd? (
+ >=sys-apps/dbus-1.6:=[user-session=]
+ sys-apps/systemd
+ )
+ !systemd? ( >=sys-apps/dbus-1.6:= )
+ udev? ( >=virtual/udev-172 )
+"
+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
+ "${FILESDIR}"/${PN}-udevadm-path-r1.patch
+
+ # build: Quote systemd variable names, bug #527432
+ # http://article.gmane.org/gmane.linux.bluez.kernel/67230
+ "${FILESDIR}"/${PN}-5.39-systemd-quote.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+)
+
+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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use user-session || ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-sessio.patch
+ fi
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ # Broken test https://bugzilla.kernel.org/show_bug.cgi?id=196621
+ # https://bugs.gentoo.org/618548
+ sed -i -e '/unit_tests += unit\/test-gatt\b/d' Makefile.am || die
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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 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 that tools can break"
+ ewarn "without 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
+ # Few are needing python3, the others are python2 only. Remove
+ # until we see how to pull in python2 and python3 for runtime
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/agent.py || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/test-mesh || 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-includeHEADERS \
+ 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 user-session && use systemd; then
+ ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+ fi
+
+ find "${D}" -name '*.la' -type f -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Install .json files as examples to be used by meshctl
+ if use mesh; then
+ dodoc tools/mesh/*.json
+ local DOC_CONTENTS="Some example .json files were installed into
+ /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ uncompress and copy them to ~/.config/meshctl to use them."
+ readme.gentoo_create_doc
+ fi
+
+ # From Fedora:
+ # Scripts for automatically btattach-ing serial ports connected to Broadcom HCIs
+ # as found on some Atom based x86 hardware
+ udev_dorules "${FILESDIR}/69-btattach-bcm.rules"
+ systemd_newunit "${FILESDIR}/btattach-bcm_at.service" "btattach-bcm@.service"
+ exeinto /usr/libexec/bluetooth
+ doexe "${FILESDIR}/btattach-bcm-service.sh"
+}
+
+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"
+ use mesh && readme.gentoo_print_elog
+}
diff --git a/net-wireless/bluez/files/69-btattach-bcm.rules b/net-wireless/bluez/files/69-btattach-bcm.rules
new file mode 100644
index 00000000000..dfe8d1e785c
--- /dev/null
+++ b/net-wireless/bluez/files/69-btattach-bcm.rules
@@ -0,0 +1,33 @@
+# Some devices have a bluetooth HCI connected to an uart, these needs to be
+# setup by calling btattach. The systemd btattach-bcm.service takes care of
+# this. These udev rules hardware-activate that service when necessary.
+#
+# For now this only suports ACPI enumerated Broadcom BT HCIs.
+# This has been tested on Bay and Cherry Trail devices with both ACPI and
+# PCI enumerated UARTs.
+
+# Note we check for the platform device not for the acpi device, because
+# some DSDTs list multiple bluetooth adapters, but only some (or none)
+# are enabled. Only enabled adapters get a platform device created.
+ACTION!="add", GOTO="btattach_bcm_rules_end"
+SUBSYSTEM!="platform", GOTO="btattach_bcm_rules_end"
+
+KERNEL=="BCM2E1A:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E39:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E3A:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E3D:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E3F:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E40:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E54:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E55:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E64:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E65:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E67:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E71:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E7B:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E7C:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E7E:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E95:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+KERNEL=="BCM2E96:00", TAG+="systemd", ENV{SYSTEMD_WANTS}="btattach-bcm@%k.service"
+
+LABEL="btattach_bcm_rules_end"
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r4 b/net-wireless/bluez/files/bluetooth-init.d-r4
old mode 100755
new mode 100644
index 97cf500008e..e69c66867fa
--- a/net-wireless/bluez/files/bluetooth-init.d-r4
+++ b/net-wireless/bluez/files/bluetooth-init.d-r4
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
pidfile="/run/bluetoothd.pid"
diff --git a/net-wireless/bluez/files/btattach-bcm-service.sh b/net-wireless/bluez/files/btattach-bcm-service.sh
new file mode 100644
index 00000000000..c7f8b178467
--- /dev/null
+++ b/net-wireless/bluez/files/btattach-bcm-service.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+# Simple shell script to wait for the tty for an uart using BT HCI to show up
+# and then invoke btattach with the right parameters, this is intended to be
+# invoked from a hardware-activated systemd service
+#
+# For now this only suports ACPI enumerated Broadcom BT HCIs.
+# This has been tested on Bay and Cherry Trail devices with both ACPI and
+# PCI enumerated UARTs.
+#
+# Note the kernel bt developers are working on solving this entirely in the
+# kernel, so it is not worth the trouble to write something better then this.
+
+BT_DEV="/sys/bus/platform/devices/$1"
+BT_DEV="$(readlink -f $BT_DEV)"
+UART_DEV="$(dirname $BT_DEV)"
+
+# Stupid GPD-pocket has USB BT with id 0000:0000, but still claims to have
+# an uart attached bt
+if [ "$1" = "BCM2E7E:00" ] && lsusb | grep -q "ID 0000:0000"; then
+ exit 0
+fi
+
+while [ ! -d "$UART_DEV/tty" ]; do
+ sleep .2
+done
+
+TTY="$(ls $UART_DEV/tty)"
+
+exec btattach --bredr "/dev/$TTY" -P bcm
diff --git a/net-wireless/bluez/files/btattach-bcm_at.service b/net-wireless/bluez/files/btattach-bcm_at.service
new file mode 100644
index 00000000000..1e7c7dbe582
--- /dev/null
+++ b/net-wireless/bluez/files/btattach-bcm_at.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=btattach for Broadcom devices
+
+[Service]
+Type=simple
+ExecStart=/usr/libexec/bluetooth/btattach-bcm-service.sh %I
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2019-10-20 11:39 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2019-10-20 11:39 UTC (permalink / raw
To: gentoo-commits
commit: 87eadbdbf4dff78be3702e418b1898833d26a7a7
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 20 11:15:18 2019 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Oct 20 11:39:14 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87eadbdb
net-wireless/bluez: Fix cancelling disconnect timeout
Package-Manager: Portage-2.3.77, Repoman-2.3.17
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.51-r1.ebuild | 294 +++++++++++++++++++++
.../files/bluez-5.51-disconnect-timeout.patch | 104 ++++++++
2 files changed, 398 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.51-r1.ebuild b/net-wireless/bluez/bluez-5.51-r1.ebuild
new file mode 100644
index 00000000000..1bf47c399e0
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.51-r1.ebuild
@@ -0,0 +1,294 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python2_7 )
+
+inherit autotools python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+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 ~mips ~ppc ~ppc64 ~x86"
+IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ extra-tools? ( deprecated readline )
+ test? ( ${PYTHON_REQUIRED_USE} )
+ test-programs? ( ${PYTHON_REQUIRED_USE} )
+"
+
+TEST_DEPS="${PYTHON_DEPS}
+ >=dev-python/dbus-python-1[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+DEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwids-20121202.2
+ btpclient? ( >=dev-libs/ell-0.14 )
+ cups? ( net-print/cups:= )
+ mesh? (
+ >=dev-libs/ell-0.14
+ dev-libs/json-c:=
+ sys-libs/readline:0=
+ )
+ midi? ( media-libs/alsa-lib )
+ obex? ( dev-libs/libical:= )
+ readline? ( sys-libs/readline:0= )
+ systemd? (
+ >=sys-apps/dbus-1.6:=[user-session=]
+ sys-apps/systemd
+ )
+ !systemd? ( >=sys-apps/dbus-1.6:= )
+ udev? ( >=virtual/udev-172 )
+"
+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
+ "${FILESDIR}"/${PN}-udevadm-path-r1.patch
+
+ # build: Quote systemd variable names, bug #527432
+ # http://article.gmane.org/gmane.linux.bluez.kernel/67230
+ "${FILESDIR}"/${PN}-5.39-systemd-quote.patch
+
+ # Include limits.h for PATH_MAX
+ # https://marc.info/?l=linux-bluetooth&m=157156119320950&w=2
+ # https://bugs.gentoo.org/695940
+ "${FILESDIR}"/${PN}-5.51-include-limits-h.patch
+
+ # audio: Fix cancelling disconnect timeout (from 'master')
+ # https://marc.info/?l=linux-bluetooth&m=157047663920714&w=2
+ "${FILESDIR}"/${P}-disconnect-timeout.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+)
+
+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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use user-session || ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r1.patch
+ fi
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ # Broken test https://bugzilla.kernel.org/show_bug.cgi?id=196621
+ # https://bugs.gentoo.org/618548
+ sed -i -e '/unit_tests += unit\/test-gatt\b/d' Makefile.am || die
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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 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 that tools can break"
+ ewarn "without 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
+ # Few are needing python3, the others are python2 only. Remove
+ # until we see how to pull in python2 and python3 for runtime
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-server || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/example-gatt-client || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/agent.py || die
+ rm "${ED}"/usr/$(get_libdir)/bluez/test/test-mesh || 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 user-session && use systemd; then
+ ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+ fi
+
+ find "${D}" -name '*.la' -type f -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Install .json files as examples to be used by meshctl
+ if use mesh; then
+ dodoc tools/mesh/*.json
+ local DOC_CONTENTS="Some example .json files were installed into
+ /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ uncompress and copy them to ~/.config/meshctl to use them."
+ readme.gentoo_create_doc
+ fi
+
+ # From Fedora:
+ # Scripts for automatically btattach-ing serial ports connected to Broadcom HCIs
+ # as found on some Atom based x86 hardware
+ udev_dorules "${FILESDIR}/69-btattach-bcm.rules"
+ systemd_newunit "${FILESDIR}/btattach-bcm_at.service" "btattach-bcm@.service"
+ exeinto /usr/libexec/bluetooth
+ doexe "${FILESDIR}/btattach-bcm-service.sh"
+}
+
+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"
+ use mesh && readme.gentoo_print_elog
+}
diff --git a/net-wireless/bluez/files/bluez-5.51-disconnect-timeout.patch b/net-wireless/bluez/files/bluez-5.51-disconnect-timeout.patch
new file mode 100644
index 00000000000..2f6e7c8c4d9
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.51-disconnect-timeout.patch
@@ -0,0 +1,104 @@
+From 52faac4648500dd45c06b6aa41f1be426c43a125 Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Fri, 11 Oct 2019 15:40:04 +0300
+Subject: audio: Fix cancelling disconnect timeout
+
+If AVDTP session has been connected but no stream has been setup calls
+to service->connect would return -EBUSY to avoid stream setup collision
+but it also takes a reference to the session cancelling the disconnect
+timeout and disabling the stream_setup logic that would attempt to
+estabilish a stream.
+---
+ profiles/audio/sink.c | 25 ++++++++++++-------------
+ profiles/audio/source.c | 25 ++++++++++++-------------
+ 2 files changed, 24 insertions(+), 26 deletions(-)
+
+diff --git a/profiles/audio/sink.c b/profiles/audio/sink.c
+index 7cac21034..966440534 100644
+--- a/profiles/audio/sink.c
++++ b/profiles/audio/sink.c
+@@ -256,11 +256,18 @@ gboolean sink_setup_stream(struct btd_service *service, struct avdtp *session)
+ if (sink->connect_id > 0 || sink->disconnect_id > 0)
+ return FALSE;
+
+- if (session && !sink->session)
+- sink->session = avdtp_ref(session);
+-
+- if (!sink->session)
+- return FALSE;
++ if (!sink->session) {
++ if (session)
++ sink->session = avdtp_ref(session);
++ else
++ sink->session = a2dp_avdtp_get(
++ btd_service_get_device(service));
++
++ if (!sink->session) {
++ DBG("Unable to get a session");
++ return FALSE;
++ }
++ }
+
+ sink->connect_id = a2dp_discover(sink->session, discovery_complete,
+ sink);
+@@ -274,14 +281,6 @@ int sink_connect(struct btd_service *service)
+ {
+ struct sink *sink = btd_service_get_user_data(service);
+
+- if (!sink->session)
+- sink->session = a2dp_avdtp_get(btd_service_get_device(service));
+-
+- if (!sink->session) {
+- DBG("Unable to get a session");
+- return -EIO;
+- }
+-
+ if (sink->connect_id > 0 || sink->disconnect_id > 0)
+ return -EBUSY;
+
+diff --git a/profiles/audio/source.c b/profiles/audio/source.c
+index 4081e1970..0ac20fe40 100644
+--- a/profiles/audio/source.c
++++ b/profiles/audio/source.c
+@@ -257,11 +257,18 @@ gboolean source_setup_stream(struct btd_service *service,
+ if (source->connect_id > 0 || source->disconnect_id > 0)
+ return FALSE;
+
+- if (session && !source->session)
+- source->session = avdtp_ref(session);
+-
+- if (!source->session)
+- return FALSE;
++ if (!source->session) {
++ if (session)
++ source->session = avdtp_ref(session);
++ else
++ source->session = a2dp_avdtp_get(
++ btd_service_get_device(service));
++
++ if (!source->session) {
++ DBG("Unable to get a session");
++ return FALSE;
++ }
++ }
+
+ source->connect_id = a2dp_discover(source->session, discovery_complete,
+ source);
+@@ -275,14 +282,6 @@ int source_connect(struct btd_service *service)
+ {
+ struct source *source = btd_service_get_user_data(service);
+
+- if (!source->session)
+- source->session = a2dp_avdtp_get(btd_service_get_device(service));
+-
+- if (!source->session) {
+- DBG("Unable to get a session");
+- return -EIO;
+- }
+-
+ if (source->connect_id > 0 || source->disconnect_id > 0)
+ return -EBUSY;
+
+--
+cgit 1.2-0.3.lf.el7
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2021-03-22 21:16 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2021-03-22 21:16 UTC (permalink / raw
To: gentoo-commits
commit: e7d2a2805d8c54cfdeab02e3e60935629f471ac7
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 22 21:16:26 2021 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Mon Mar 22 21:16:26 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7d2a280
net-wireless/bluez: Fix reconnect issues and allow to pass options...
Upstream fix for reconnect issues and allow to pass options to init.d
script. Also drop obsolete btattach hacks as Fedora did.
Closes: https://bugs.gentoo.org/777000
Thanks-to: Joakim Tjernlund
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.56-r1.ebuild | 295 +++++++++++++++++++++
net-wireless/bluez/files/bluetooth-conf.d | 1 +
net-wireless/bluez/files/bluetooth-init.d-r5 | 13 +
.../bluez/files/bluez-5.56-avdtp-disconnects.patch | 41 +++
4 files changed, 350 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.56-r1.ebuild b/net-wireless/bluez/bluez-5.56-r1.ebuild
new file mode 100644
index 00000000000..ee7911d7c17
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.56-r1.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7..9} )
+
+inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+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 ~mips ~ppc ~ppc64 ~x86"
+IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ 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_MULTI_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
+ ')
+"
+BDEPEND="
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+DEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwids-20121202.2
+ btpclient? ( >=dev-libs/ell-0.28 )
+ cups? ( net-print/cups:= )
+ mesh? (
+ >=dev-libs/ell-0.37
+ >=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/dbus-1.6:=[user-session=]
+ sys-apps/systemd
+ )
+ !systemd? ( >=sys-apps/dbus-1.6:= )
+ udev? ( >=virtual/udev-172 )
+"
+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
+ "${FILESDIR}"/${PN}-udevadm-path-r1.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # avdtp: Fix removing all remote SEPs when loading from cache (from 'master')
+ "${FILESDIR}"/${P}-avdtp-disconnects.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 ~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_USER_API_HASH
+ ~CRYPTO_AES ~CRYPTO_CCM ~CRYPTO_AEAD ~CRYPTO_CMAC"
+ fi
+ if use test; then
+ # http://www.linuxfromscratch.org/blfs/view/svn/general/bluez.html
+ CONFIG_CHECK="${CONFIG_CHECK} ~CRYPTO ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER"
+ 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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use user-session || ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ if use cups; then
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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 user-session && use systemd; then
+ ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+ fi
+
+ find "${D}" -name '*.la' -type f -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Install .json files as examples to be used by meshctl
+ if use mesh; then
+ dodoc tools/mesh-gatt/*.json
+ local DOC_CONTENTS="Some example .json files were installed into
+ /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ uncompress and copy them to ~/.config/meshctl to use them."
+ readme.gentoo_create_doc
+ 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"
+ use mesh && readme.gentoo_print_elog
+}
diff --git a/net-wireless/bluez/files/bluetooth-conf.d b/net-wireless/bluez/files/bluetooth-conf.d
new file mode 100644
index 00000000000..d5b5005ce7f
--- /dev/null
+++ b/net-wireless/bluez/files/bluetooth-conf.d
@@ -0,0 +1 @@
+#BLUETOOTH_OPTS="-E"
diff --git a/net-wireless/bluez/files/bluetooth-init.d-r5 b/net-wireless/bluez/files/bluetooth-init.d-r5
new file mode 100644
index 00000000000..4d60234e030
--- /dev/null
+++ b/net-wireless/bluez/files/bluetooth-init.d-r5
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/run/bluetoothd.pid"
+command="/usr/libexec/bluetooth/bluetoothd"
+command_args="${BLUETOOTH_OPTS}"
+command_background=1
+
+depend() {
+ after coldplug
+ need dbus localmount hostname
+}
diff --git a/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch b/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch
new file mode 100644
index 00000000000..c2e34152748
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch
@@ -0,0 +1,41 @@
+From 28ddec8d6b829e002fa268c07b71e4c564ba9e16 Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Thu, 11 Mar 2021 07:36:07 -0800
+Subject: [PATCH] avdtp: Fix removing all remote SEPs when loading from cache
+
+If avdtp_discover is called after cache has been loaded it end up
+removing all remote SEPs as they have not been discovered yet.
+
+Fixes: https://github.com/bluez/bluez/issues/102
+---
+ profiles/audio/avdtp.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
+index 088ca58b3..1d5871c62 100644
+--- a/profiles/audio/avdtp.c
++++ b/profiles/audio/avdtp.c
+@@ -3381,10 +3381,18 @@ int avdtp_discover(struct avdtp *session, avdtp_discover_cb_t cb,
+ session->discover = g_new0(struct discover_callback, 1);
+
+ if (session->seps) {
+- session->discover->cb = cb;
+- session->discover->user_data = user_data;
+- session->discover->id = g_idle_add(process_discover, session);
+- return 0;
++ struct avdtp_remote_sep *sep = session->seps->data;
++
++ /* Check that SEP have been discovered as it may be loaded from
++ * cache.
++ */
++ if (sep->discovered) {
++ session->discover->cb = cb;
++ session->discover->user_data = user_data;
++ session->discover->id = g_idle_add(process_discover,
++ session);
++ return 0;
++ }
+ }
+
+ err = send_request(session, FALSE, NULL, AVDTP_DISCOVER, NULL, 0);
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2021-06-22 16:17 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2021-06-22 16:17 UTC (permalink / raw
To: gentoo-commits
commit: 5f675fe2e6957446b593397841e2a162dc13cfbd
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Tue Jun 22 16:17:21 2021 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Tue Jun 22 16:17:21 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5f675fe2
net-wireless/bluez: Fix A2DP parsing
Bug: https://bugs.gentoo.org/785424
Thanks-to: Joakim Tjernlund
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.59-r1.ebuild | 292 +++++++++++++++++++++
.../bluez/files/bluez-5.59-a2dp-parsing.patch | 38 +++
2 files changed, 330 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.59-r1.ebuild b/net-wireless/bluez/bluez-5.59-r1.ebuild
new file mode 100644
index 00000000000..898115e910a
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.59-r1.ebuild
@@ -0,0 +1,292 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7..10} )
+
+inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+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 ~mips ~ppc ~ppc64 ~x86"
+IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
+
+# 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.
+REQUIRED_USE="
+ 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_MULTI_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
+ ')
+"
+BDEPEND="
+ dev-python/docutils
+ virtual/pkgconfig
+ test? ( ${TEST_DEPS} )
+"
+DEPEND="
+ >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
+ >=sys-apps/hwids-20121202.2
+ 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/dbus-1.6:=[user-session=]
+ sys-apps/systemd
+ )
+ !systemd? ( >=sys-apps/dbus-1.6:= )
+ udev? ( >=virtual/udev-172 )
+"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-bluetooth )
+ test-programs? ( ${TEST_DEPS} )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+ # avdtp: Fix parsing capabilities (from 'master')
+ "${FILESDIR}"/${P}-a2dp-parsing.patch
+
+ # 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
+ "${FILESDIR}"/${PN}-udevadm-path-r1.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.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 ~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"
+ 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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use user-session || ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ eautoreconf
+
+ if use cups; then
+ # Only not .am to not need to run eautoreconf only because of this
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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 user-session && use systemd; then
+ ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
+ fi
+
+ find "${D}" -name '*.la' -type f -delete || die
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Install .json files as examples to be used by meshctl
+ if use mesh; then
+ dodoc tools/mesh-gatt/*.json
+ local DOC_CONTENTS="Some example .json files were installed into
+ /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ uncompress and copy them to ~/.config/meshctl to use them."
+ readme.gentoo_create_doc
+ 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"
+ use mesh && readme.gentoo_print_elog
+}
diff --git a/net-wireless/bluez/files/bluez-5.59-a2dp-parsing.patch b/net-wireless/bluez/files/bluez-5.59-a2dp-parsing.patch
new file mode 100644
index 00000000000..40569ec9805
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.59-a2dp-parsing.patch
@@ -0,0 +1,38 @@
+From 0388794dc5fdb73a4ea88bcf148de0a12b4364d4 Mon Sep 17 00:00:00 2001
+From: Archie Pusaka <apusaka@chromium.org>
+Date: Thu, 17 Jun 2021 08:53:34 +0800
+Subject: avdtp: Fix parsing capabilities
+
+This patch fixes size comparison and variable misassignment.
+
+Reviewed-by: Alain Michaud <alainm@chromium.org>
+Reviewed-by: Michael Sun <michaelfsun@google.com>
+---
+ profiles/audio/avdtp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
+index c7bf99f42..5d13104c1 100644
+--- a/profiles/audio/avdtp.c
++++ b/profiles/audio/avdtp.c
+@@ -1323,7 +1323,7 @@ static GSList *caps_to_list(uint8_t *data, size_t size,
+
+ cap = (struct avdtp_service_capability *)data;
+
+- if (sizeof(*cap) + cap->length >= size) {
++ if (sizeof(*cap) + cap->length > size) {
+ error("Invalid capability data in getcap resp");
+ break;
+ }
+@@ -1345,7 +1345,7 @@ static GSList *caps_to_list(uint8_t *data, size_t size,
+ switch (cap->category) {
+ case AVDTP_MEDIA_CODEC:
+ if (codec)
+- *codec = cap;
++ *codec = cpy;
+ break;
+ case AVDTP_DELAY_REPORTING:
+ if (delay_reporting)
+--
+cgit 1.2.3-1.el7
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2021-06-23 7:53 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2021-06-23 7:53 UTC (permalink / raw
To: gentoo-commits
commit: dc88877a2411735d828da371cd8b72b2173625f5
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 23 07:52:09 2021 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed Jun 23 07:53:39 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc88877a
net-wireless/bluez: Drop old
Bug: https://bugs.gentoo.org/797712
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 2 -
net-wireless/bluez/bluez-5.55.ebuild | 299 ---------------------
net-wireless/bluez/bluez-5.56-r1.ebuild | 296 --------------------
.../bluez/files/bluez-5.56-avdtp-disconnects.patch | 41 ---
4 files changed, 638 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 30a5ca30ec7..4bc25fa2af7 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,4 +1,2 @@
-DIST bluez-5.55.tar.xz 2041428 BLAKE2B 7eee44063ea53188d35324bcc5b5f0539cf92a5934632743677bbf41822b8b79a899a82a93fd79887fe058e6f0c0e66ed8d5da46e5585682613bc1847cb009a8 SHA512 9423cb60d15a6f068838497a1eaea9f5a32d70c07191c313ba821a6919d6e0c436ada4f547cc5f2db5eacc0123429ad54851f57df2554f61fa293743ec14a033
-DIST bluez-5.56.tar.xz 2053080 BLAKE2B b901deae4047ebe96c034c20c9d7e6c275d3c1fd311dc57ed2f1f927d6e778b213af3e09caaeebbb11110f1733fc9bf341cf8f7c63a37aaa6b896607c0026d92 SHA512 b320ee9d49a516f5cecb5fbc410ba42e9127f44ebcfb95647f68bd5d300147d0eaf633f8e8d0678631a2184ea3afae7b01b5f228157328874fa2a87832ed0ae1
DIST bluez-5.58.tar.xz 2060368 BLAKE2B 157780f83181d89fb126face5e9794bc0de8196f43d57d079fc09ae7e45e7ef21bf404e834d844da28d06f9a29cb92f11c310dbbcb7f60e845a335a558d7190c SHA512 159b554e0afd56af5da6f8333383f2fdf96d77a0e82d762bf4b37786e7312b7e61fbbae0f18b26442a606e0a232f48e0f45a4b38b95de36c7daf384f582315a3
DIST bluez-5.59.tar.xz 2123104 BLAKE2B 59e063ffc0cd810a151f49c2d8b3e1dca46eef038dfe112bfc0524e111e00cfea78557f3d1ccf657882b76158ee9249291f9fc6e6a4cce851e0e6dc43f707398 SHA512 506ce28459a82614e5f6c55235b84e5780a9bfa821904fd40ee2928a503978248368069c57a283db9dd81f48d78f45e00d95a7c52d1538d3f5c858a29424304f
diff --git a/net-wireless/bluez/bluez-5.55.ebuild b/net-wireless/bluez/bluez-5.55.ebuild
deleted file mode 100644
index e374716a186..00000000000
--- a/net-wireless/bluez/bluez-5.55.ebuild
+++ /dev/null
@@ -1,299 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{7..9} )
-
-inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-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 ~mips ppc ppc64 x86"
-IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
-
-# 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.
-REQUIRED_USE="
- 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_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- ')
-"
-BDEPEND="
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-DEPEND="
- >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
- >=sys-apps/hwids-20121202.2
- btpclient? ( >=dev-libs/ell-0.28 )
- cups? ( net-print/cups:= )
- mesh? (
- >=dev-libs/ell-0.28
- >=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/dbus-1.6:=[user-session=]
- sys-apps/systemd
- )
- !systemd? ( >=sys-apps/dbus-1.6:= )
- udev? ( >=virtual/udev-172 )
-"
-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
- "${FILESDIR}"/${PN}-udevadm-path-r1.patch
-
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.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 ~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_USER_API_HASH
- ~CRYPTO_AES ~CRYPTO_CCM ~CRYPTO_AEAD ~CRYPTO_CMAC"
- fi
- if use test; then
- # http://www.linuxfromscratch.org/blfs/view/svn/general/bluez.html
- CONFIG_CHECK="${CONFIG_CHECK} ~CRYPTO ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER"
- 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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use user-session || ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- if use cups; then
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- eautoreconf
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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 user-session && use systemd; then
- ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
- fi
-
- find "${D}" -name '*.la' -type f -delete || die
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r4 bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
- # Install .json files as examples to be used by meshctl
- if use mesh; then
- dodoc tools/mesh-gatt/*.json
- local DOC_CONTENTS="Some example .json files were installed into
- /usr/share/doc/${PF} to be used with meshctl. Feel free to
- uncompress and copy them to ~/.config/meshctl to use them."
- readme.gentoo_create_doc
- fi
-
- # From Fedora:
- # Scripts for automatically btattach-ing serial ports connected to Broadcom HCIs
- # as found on some Atom based x86 hardware
- udev_dorules "${FILESDIR}/69-btattach-bcm.rules"
- systemd_newunit "${FILESDIR}/btattach-bcm_at.service" "btattach-bcm@.service"
- exeinto /usr/libexec/bluetooth
- doexe "${FILESDIR}/btattach-bcm-service.sh"
-}
-
-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"
- use mesh && readme.gentoo_print_elog
-}
diff --git a/net-wireless/bluez/bluez-5.56-r1.ebuild b/net-wireless/bluez/bluez-5.56-r1.ebuild
deleted file mode 100644
index 928432949d1..00000000000
--- a/net-wireless/bluez/bluez-5.56-r1.ebuild
+++ /dev/null
@@ -1,296 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{7..9} )
-
-inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-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 ~mips ~ppc ~ppc64 ~x86"
-IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
-
-# 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.
-REQUIRED_USE="
- 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_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- ')
-"
-BDEPEND="
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-DEPEND="
- >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
- >=sys-apps/hwids-20121202.2
- btpclient? ( >=dev-libs/ell-0.28 )
- cups? ( net-print/cups:= )
- mesh? (
- >=dev-libs/ell-0.37
- >=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/dbus-1.6:=[user-session=]
- sys-apps/systemd
- )
- !systemd? ( >=sys-apps/dbus-1.6:= )
- udev? ( >=virtual/udev-172 )
-"
-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
- "${FILESDIR}"/${PN}-udevadm-path-r1.patch
-
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
-
- # avdtp: Fix removing all remote SEPs when loading from cache (from 'master')
- "${FILESDIR}"/${P}-avdtp-disconnects.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 ~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_USER_API_HASH
- ~CRYPTO_AES ~CRYPTO_CCM ~CRYPTO_AEAD ~CRYPTO_CMAC"
- fi
- if use test; then
- # http://www.linuxfromscratch.org/blfs/view/svn/general/bluez.html
- CONFIG_CHECK="${CONFIG_CHECK} ~CRYPTO ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER"
- 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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use user-session || ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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 user-session && use systemd; then
- ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
- fi
-
- find "${D}" -name '*.la' -type f -delete || die
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
- # Install .json files as examples to be used by meshctl
- if use mesh; then
- dodoc tools/mesh-gatt/*.json
- local DOC_CONTENTS="Some example .json files were installed into
- /usr/share/doc/${PF} to be used with meshctl. Feel free to
- uncompress and copy them to ~/.config/meshctl to use them."
- readme.gentoo_create_doc
- 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"
- use mesh && readme.gentoo_print_elog
-}
diff --git a/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch b/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch
deleted file mode 100644
index c2e34152748..00000000000
--- a/net-wireless/bluez/files/bluez-5.56-avdtp-disconnects.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 28ddec8d6b829e002fa268c07b71e4c564ba9e16 Mon Sep 17 00:00:00 2001
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-Date: Thu, 11 Mar 2021 07:36:07 -0800
-Subject: [PATCH] avdtp: Fix removing all remote SEPs when loading from cache
-
-If avdtp_discover is called after cache has been loaded it end up
-removing all remote SEPs as they have not been discovered yet.
-
-Fixes: https://github.com/bluez/bluez/issues/102
----
- profiles/audio/avdtp.c | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
-index 088ca58b3..1d5871c62 100644
---- a/profiles/audio/avdtp.c
-+++ b/profiles/audio/avdtp.c
-@@ -3381,10 +3381,18 @@ int avdtp_discover(struct avdtp *session, avdtp_discover_cb_t cb,
- session->discover = g_new0(struct discover_callback, 1);
-
- if (session->seps) {
-- session->discover->cb = cb;
-- session->discover->user_data = user_data;
-- session->discover->id = g_idle_add(process_discover, session);
-- return 0;
-+ struct avdtp_remote_sep *sep = session->seps->data;
-+
-+ /* Check that SEP have been discovered as it may be loaded from
-+ * cache.
-+ */
-+ if (sep->discovered) {
-+ session->discover->cb = cb;
-+ session->discover->user_data = user_data;
-+ session->discover->id = g_idle_add(process_discover,
-+ session);
-+ return 0;
-+ }
- }
-
- err = send_request(session, FALSE, NULL, AVDTP_DISCOVER, NULL, 0);
-
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2021-07-25 9:01 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2021-07-25 9:01 UTC (permalink / raw
To: gentoo-commits
commit: 1e4db05081ee5d3e479838361b7337fbac39623e
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 25 09:01:35 2021 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Jul 25 09:01:35 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1e4db050
net-wireless/bluez: Fix building with glibc-2.34
Closes: https://bugs.gentoo.org/803830
Thanks-to: Sam James
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.60.ebuild | 3 ++
.../bluez/files/bluez-5.60-glibc-2.34.patch | 42 ++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.60.ebuild b/net-wireless/bluez/bluez-5.60.ebuild
index 415cff1e5f2..394c547a517 100644
--- a/net-wireless/bluez/bluez-5.60.ebuild
+++ b/net-wireless/bluez/bluez-5.60.ebuild
@@ -71,6 +71,9 @@ PATCHES=(
# Fedora patches
# http://www.spinics.net/lists/linux-bluetooth/msg40136.html
"${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # https://marc.info/?l=linux-bluetooth&m=161498090629584&w=2
+ "${FILESDIR}"/${PN}-5.60-glibc-2.34.patch
)
pkg_setup() {
diff --git a/net-wireless/bluez/files/bluez-5.60-glibc-2.34.patch b/net-wireless/bluez/files/bluez-5.60-glibc-2.34.patch
new file mode 100644
index 00000000000..1e846100285
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.60-glibc-2.34.patch
@@ -0,0 +1,42 @@
+From 124dee151746b4a8a2e8a7194af78f2c82f75d79 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
+Date: Wed, 3 Mar 2021 08:57:36 +0100
+Subject: [PATCH] media: rename local function conflicting with pause(2)
+
+profiles/audio/media.c:1284:13: error: conflicting types for 'pause'; have '_Bool(void *)'
+ 1284 | static bool pause(void *user_data)
+ | ^~~~~
+In file included from /usr/include/bits/sigstksz.h:24,
+ from /usr/include/signal.h:315,
+ from /usr/include/glib-2.0/glib/gbacktrace.h:36,
+ from /usr/include/glib-2.0/glib.h:34,
+ from profiles/audio/media.c:21:
+/usr/include/unistd.h:478:12: note: previous declaration of 'pause' with type 'int(void)'
+ 478 | extern int pause (void);
+ | ^~~~~
+---
+ profiles/audio/media.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/profiles/audio/media.c b/profiles/audio/media.c
+index c84bbe22dc..3d8c4b69c3 100644
+--- a/profiles/audio/media.c
++++ b/profiles/audio/media.c
+@@ -1281,7 +1281,7 @@ static bool stop(void *user_data)
+ return media_player_send(mp, "Stop");
+ }
+
+-static bool pause(void *user_data)
++static bool pause_play(void *user_data)
+ {
+ struct media_player *mp = user_data;
+
+@@ -1331,7 +1331,7 @@ static struct avrcp_player_cb player_cb = {
+ .set_volume = set_volume,
+ .play = play,
+ .stop = stop,
+- .pause = pause,
++ .pause = pause_play,
+ .next = next,
+ .previous = previous,
+ };
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2021-10-19 21:19 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2021-10-19 21:19 UTC (permalink / raw
To: gentoo-commits
commit: 7514a3c027e281871fc86a27f7660016016b4023
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Tue Oct 19 21:19:44 2021 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Tue Oct 19 21:19:44 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7514a3c0
net-wireless/bluez: Drop old
Package-Manager: Portage-3.0.24, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 2 -
net-wireless/bluez/bluez-5.58-r1.ebuild | 292 -----------------------
net-wireless/bluez/bluez-5.60.ebuild | 292 -----------------------
net-wireless/bluez/files/bluez-5.58-rfkill.patch | 84 -------
4 files changed, 670 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 56ab750524f..471eb8b4602 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,4 +1,2 @@
-DIST bluez-5.58.tar.xz 2060368 BLAKE2B 157780f83181d89fb126face5e9794bc0de8196f43d57d079fc09ae7e45e7ef21bf404e834d844da28d06f9a29cb92f11c310dbbcb7f60e845a335a558d7190c SHA512 159b554e0afd56af5da6f8333383f2fdf96d77a0e82d762bf4b37786e7312b7e61fbbae0f18b26442a606e0a232f48e0f45a4b38b95de36c7daf384f582315a3
-DIST bluez-5.60.tar.xz 2124312 BLAKE2B 52cd08192cbfb7adc2e11f270442af62307dbf3cb940554f77e1ec4c30036ca1c05970d7d48719d3036173135f2b14123f2d0aad8147f0a919773d211238a11e SHA512 069e054360b4ab72f1daa033572f0fd822fb0f47e52069f4f3dcdfecfa312b9a5366cc04967e639aef39b980c0e1007389f1ee757e7c3bae43a5e66f8ed21a6b
DIST bluez-5.61.tar.xz 2137412 BLAKE2B 2fc1b44f726d48b4a0e8bbecc664077db1db69bbc87c66e9d7ac85d7b2e066de8b349c18597a5ba140c5fcb1ef867ee3980ebdd839ded69ae30491fb7b836940 SHA512 a2318637258f9db0bf05fecbfbea2c3ca5e21867378e28ab4c77f658fe42f10c8c607939f2b437ec40d1ceb00b99f7916c0275faaedd9edd247f7dc91329937a
DIST bluez-5.62.tar.xz 2149348 BLAKE2B db99b36a230fc0be15275d2eda9864b686326ba50648f66b19087ea4309a76d234ab4f1dcb6975f1513a898978b1d5b9332542f5dcee22efd898b79658434a70 SHA512 8fb0b81e1d929d3eee3d70f457ce75dbcff4c2a8a728247fc950bbe11e84d83582345bfd433d2e2df7b5588eb0e42f286658a83c7332be84819d9df49a5707e8
diff --git a/net-wireless/bluez/bluez-5.58-r1.ebuild b/net-wireless/bluez/bluez-5.58-r1.ebuild
deleted file mode 100644
index 18c11b1754e..00000000000
--- a/net-wireless/bluez/bluez-5.58-r1.ebuild
+++ /dev/null
@@ -1,292 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8..9} )
-
-inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-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 ~mips ppc ppc64 x86"
-IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
-
-# 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.
-REQUIRED_USE="
- 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="
- virtual/pkgconfig
- test? ( ${TEST_DEPS} )
-"
-DEPEND="
- >=dev-libs/glib-2.28:2[${MULTILIB_USEDEP}]
- >=sys-apps/hwids-20121202.2
- 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/dbus-1.6:=[user-session=]
- sys-apps/systemd
- )
- !systemd? ( >=sys-apps/dbus-1.6:= )
- udev? ( >=virtual/udev-172 )
-"
-RDEPEND="${DEPEND}
- selinux? ( sec-policy/selinux-bluetooth )
- test-programs? ( ${TEST_DEPS} )
-"
-
-RESTRICT="!test? ( test )"
-
-PATCHES=(
- # rfkill: Fix reading from rfkill socket
- "${FILESDIR}"/${P}-rfkill.patch
-
- # 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
- "${FILESDIR}"/${PN}-udevadm-path-r1.patch
-
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.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 ~RFKILL ~CRYPTO_USER_API_HASH ~CRYPTO_USER_API_SKCIPHER"
- # 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_USER_API_HASH
- ~CRYPTO_AES ~CRYPTO_CCM ~CRYPTO_AEAD ~CRYPTO_CMAC"
- 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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use user-session || ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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 user-session && use systemd; then
- ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
- fi
-
- find "${D}" -name '*.la' -type f -delete || die
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
- # Install .json files as examples to be used by meshctl
- if use mesh; then
- dodoc tools/mesh-gatt/*.json
- local DOC_CONTENTS="Some example .json files were installed into
- /usr/share/doc/${PF} to be used with meshctl. Feel free to
- uncompress and copy them to ~/.config/meshctl to use them."
- readme.gentoo_create_doc
- 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"
- use mesh && readme.gentoo_print_elog
-}
diff --git a/net-wireless/bluez/bluez-5.60.ebuild b/net-wireless/bluez/bluez-5.60.ebuild
deleted file mode 100644
index a86c0dde25a..00000000000
--- a/net-wireless/bluez/bluez-5.60.ebuild
+++ /dev/null
@@ -1,292 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
-
-DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
-HOMEPAGE="http://www.bluez.org"
-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 ~mips ~ppc ~ppc64 ~riscv ~x86"
-IUSE="btpclient cups doc debug deprecated extra-tools experimental +mesh midi +obex +readline selinux systemd test test-programs +udev user-session"
-
-# 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.
-REQUIRED_USE="
- 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}]
- >=sys-apps/hwids-20121202.2
- 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/dbus-1.6:=[user-session=]
- sys-apps/systemd
- )
- !systemd? ( >=sys-apps/dbus-1.6:= )
- udev? ( >=virtual/udev-172 )
-"
-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
- "${FILESDIR}"/${PN}-udevadm-path-r1.patch
-
- # Fedora patches
- # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
- "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
-
- # https://marc.info/?l=linux-bluetooth&m=161498090629584&w=2
- "${FILESDIR}"/${PN}-5.60-glibc-2.34.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 ~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"
- 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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use user-session || ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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 user-session && use systemd; then
- ln -s "${ED}"/usr/lib/systemd/user/obex.service "${ED}"/usr/lib/systemd/user/dbus-org.bluez.obex.service
- fi
-
- find "${D}" -name '*.la' -type f -delete || die
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
- # Install .json files as examples to be used by meshctl
- if use mesh; then
- dodoc tools/mesh-gatt/*.json
- local DOC_CONTENTS="Some example .json files were installed into
- /usr/share/doc/${PF} to be used with meshctl. Feel free to
- uncompress and copy them to ~/.config/meshctl to use them."
- readme.gentoo_create_doc
- 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"
- use mesh && readme.gentoo_print_elog
-}
diff --git a/net-wireless/bluez/files/bluez-5.58-rfkill.patch b/net-wireless/bluez/files/bluez-5.58-rfkill.patch
deleted file mode 100644
index dd7f2f978e7..00000000000
--- a/net-wireless/bluez/files/bluez-5.58-rfkill.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 382646b490c1c336dd32f9186293616ceb4d808b Mon Sep 17 00:00:00 2001
-From: Benjamin Berg <bberg@redhat.com>
-Date: Mon, 3 May 2021 14:45:00 +0200
-Subject: [PATCH 1/2] rfkill: Fix reading from rfkill socket
-
-The kernel will always send exactly one event, but the size of the
-passed struct will depend on the length of the submitted read() and the
-kernel version. i.e. the interface can be extended and we need to expect
-for a read to be longer than expected if we ask for it.
-
-Fix this by only requesting the needed length and explicitly check the
-length against the V1 version of the structure to make the code a bit
-more future proof in case the internal copy of the struct is updated to
-contain new fields.
----
- src/rfkill.c | 24 +++++++++++-------------
- 1 file changed, 11 insertions(+), 13 deletions(-)
-
-diff --git a/src/rfkill.c b/src/rfkill.c
-index ec9fcdfdd..2099c5ac5 100644
---- a/src/rfkill.c
-+++ b/src/rfkill.c
-@@ -53,12 +53,12 @@ struct rfkill_event {
- uint8_t soft;
- uint8_t hard;
- };
-+#define RFKILL_EVENT_SIZE_V1 8
-
- static gboolean rfkill_event(GIOChannel *chan,
- GIOCondition cond, gpointer data)
- {
-- unsigned char buf[32];
-- struct rfkill_event *event = (void *) buf;
-+ struct rfkill_event event = { 0 };
- struct btd_adapter *adapter;
- char sysname[PATH_MAX];
- ssize_t len;
-@@ -69,34 +69,32 @@ static gboolean rfkill_event(GIOChannel *chan,
-
- fd = g_io_channel_unix_get_fd(chan);
-
-- memset(buf, 0, sizeof(buf));
--
-- len = read(fd, buf, sizeof(buf));
-+ len = read(fd, &event, sizeof(event));
- if (len < 0) {
- if (errno == EAGAIN)
- return TRUE;
- return FALSE;
- }
-
-- if (len != sizeof(struct rfkill_event))
-+ if (len < RFKILL_EVENT_SIZE_V1)
- return TRUE;
-
- DBG("RFKILL event idx %u type %u op %u soft %u hard %u",
-- event->idx, event->type, event->op,
-- event->soft, event->hard);
-+ event.idx, event.type, event.op,
-+ event.soft, event.hard);
-
-- if (event->soft || event->hard)
-+ if (event.soft || event.hard)
- return TRUE;
-
-- if (event->op != RFKILL_OP_CHANGE)
-+ if (event.op != RFKILL_OP_CHANGE)
- return TRUE;
-
-- if (event->type != RFKILL_TYPE_BLUETOOTH &&
-- event->type != RFKILL_TYPE_ALL)
-+ if (event.type != RFKILL_TYPE_BLUETOOTH &&
-+ event.type != RFKILL_TYPE_ALL)
- return TRUE;
-
- snprintf(sysname, sizeof(sysname) - 1,
-- "/sys/class/rfkill/rfkill%u/name", event->idx);
-+ "/sys/class/rfkill/rfkill%u/name", event.idx);
-
- fd = open(sysname, O_RDONLY);
- if (fd < 0)
---
-2.31.1
-
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2022-01-16 9:38 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2022-01-16 9:38 UTC (permalink / raw
To: gentoo-commits
commit: 277ef13c7bb383657ee4628b45a37b62f66eb20e
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Jan 16 09:37:57 2022 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Jan 16 09:38:06 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=277ef13c
net-wireless/bluez: Sync with upstream fixes
For bug #827706
Bug: https://bugs.gentoo.org/827706
Bug: https://bugs.gentoo.org/829091
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.63-r1.ebuild | 295 +++++++++++
...hog-Fix-read-order-of-attributes-rediffed.patch | 542 +++++++++++++++++++++
...while-uhid-device-has-not-been-c-rediffed.patch | 90 ++++
3 files changed, 927 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.63-r1.ebuild b/net-wireless/bluez/bluez-5.63-r1.ebuild
new file mode 100644
index 000000000000..baad2b48deaf
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.63-r1.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+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 ~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="
+ 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-172 )
+"
+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
+
+ # https://github.com/bluez/bluez/issues/267
+ "${FILESDIR}"/${PN}-5.63-musl-limits.patch
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # https://github.com/bluez/bluez/issues/220
+ "${FILESDIR}"/0001-hog-Fix-read-order-of-attributes-rediffed.patch
+ "${FILESDIR}"/0002-hog-Add-input-queue-while-uhid-device-has-not-been-c-rediffed.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 ~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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ eautoreconf
+
+ if use cups; then
+ # Only not .am to not need to run eautoreconf only because of this
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Install .json files as examples to be used by meshctl
+ if use mesh; then
+ dodoc tools/mesh-gatt/*.json
+ local DOC_CONTENTS="Some example .json files were installed into
+ /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ uncompress and copy them to ~/.config/meshctl to use them."
+ readme.gentoo_create_doc
+ 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"
+ use mesh && readme.gentoo_print_elog
+}
diff --git a/net-wireless/bluez/files/0001-hog-Fix-read-order-of-attributes-rediffed.patch b/net-wireless/bluez/files/0001-hog-Fix-read-order-of-attributes-rediffed.patch
new file mode 100644
index 000000000000..cd6dc44b5d3e
--- /dev/null
+++ b/net-wireless/bluez/files/0001-hog-Fix-read-order-of-attributes-rediffed.patch
@@ -0,0 +1,542 @@
+From 7fe38a17f6bee713fde587487fc224b0ae390e8f Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Mon, 10 Jan 2022 17:35:15 -0800
+Subject: [PATCH 1/2] hog: Fix read order of attributes
+
+The Report Map must be read after all other attributes otherwise the
+Kernel driver may start using UHID_SET_REPORT which requires the
+report->id to be known in order to resolve the attribute to send to.
+
+Fixes: https://github.com/bluez/bluez/issues/220
+---
+ profiles/input/hog-lib.c | 191 ++++++++++++++++++++++++---------------
+ 1 file changed, 119 insertions(+), 72 deletions(-)
+
+diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c
+index d37caa1f1..beb19af70 100644
+--- a/profiles/input/hog-lib.c
++++ b/profiles/input/hog-lib.c
+@@ -90,6 +90,7 @@ struct bt_hog {
+ uint16_t getrep_id;
+ unsigned int setrep_att;
+ uint16_t setrep_id;
++ unsigned int report_map_id;
+ struct bt_scpp *scpp;
+ struct bt_dis *dis;
+ struct queue *bas;
+@@ -146,13 +147,34 @@ static bool set_and_store_gatt_req(struct bt_hog *hog,
+ return queue_push_head(hog->gatt_op, req);
+ }
+
+-static void destroy_gatt_req(struct gatt_request *req)
++static void destroy_gatt_req(void *data)
+ {
+- queue_remove(req->hog->gatt_op, req);
++ struct gatt_request *req = data;
++
+ bt_hog_unref(req->hog);
+ free(req);
+ }
+
++static void read_report_map(struct bt_hog *hog);
++
++static void remove_gatt_req(struct gatt_request *req, uint8_t status)
++{
++ struct bt_hog *hog = req->hog;
++
++ queue_remove(hog->gatt_op, req);
++
++ if (!status && queue_isempty(hog->gatt_op)) {
++ /* Report Map must be read last since that can result
++ * in uhid being created and the driver may start to
++ * use UHID_SET_REPORT which requires the report->id to
++ * be known what attribute to send to.
++ */
++ read_report_map(hog);
++ }
++
++ destroy_gatt_req(req);
++}
++
+ static void write_char(struct bt_hog *hog, GAttrib *attrib, uint16_t handle,
+ const uint8_t *value, size_t vlen,
+ GAttribResultFunc func,
+@@ -178,27 +200,31 @@ static void write_char(struct bt_hog *hog, GAttrib *attrib, uint16_t handle,
+ }
+ }
+
+-static void read_char(struct bt_hog *hog, GAttrib *attrib, uint16_t handle,
+- GAttribResultFunc func, gpointer user_data)
++static unsigned int read_char(struct bt_hog *hog, GAttrib *attrib,
++ uint16_t handle, GAttribResultFunc func,
++ gpointer user_data)
+ {
+ struct gatt_request *req;
+ unsigned int id;
+
+ req = create_request(hog, user_data);
+ if (!req)
+- return;
++ return 0;
+
+ id = gatt_read_char(attrib, handle, func, req);
+ if (!id) {
+ error("hog: Could not read char");
+- return;
++ return 0;
+ }
+
+ if (!set_and_store_gatt_req(hog, req, id)) {
+ error("hog: Failed to queue read char req");
+ g_attrib_cancel(attrib, id);
+ free(req);
++ return 0;
+ }
++
++ return id;
+ }
+
+ static void discover_desc(struct bt_hog *hog, GAttrib *attrib,
+@@ -343,16 +369,14 @@ static void report_ccc_written_cb(guint8 status, const guint8 *pdu,
+ struct report *report = req->user_data;
+ struct bt_hog *hog = report->hog;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Write report characteristic descriptor failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ if (report->notifyid)
+- return;
++ goto remove;
+
+ report->notifyid = g_attrib_register(hog->attrib,
+ ATT_OP_HANDLE_NOTIFY,
+@@ -360,6 +384,9 @@ static void report_ccc_written_cb(guint8 status, const guint8 *pdu,
+ report_value_cb, report, NULL);
+
+ DBG("Report characteristic descriptor written: notifications enabled");
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void write_ccc(struct bt_hog *hog, GAttrib *attrib, uint16_t handle,
+@@ -379,14 +406,15 @@ static void ccc_read_cb(guint8 status, const guint8 *pdu, guint16 len,
+ struct gatt_request *req = user_data;
+ struct report *report = req->user_data;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Error reading CCC value: %s", att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ write_ccc(report->hog, report->hog->attrib, report->ccc_handle, report);
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static const char *type_to_string(uint8_t type)
+@@ -409,17 +437,15 @@ static void report_reference_cb(guint8 status, const guint8 *pdu,
+ struct gatt_request *req = user_data;
+ struct report *report = req->user_data;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Read Report Reference descriptor failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ if (plen != 3) {
+ error("Malformed ATT read response");
+- return;
++ goto remove;
+ }
+
+ report->id = pdu[1];
+@@ -432,6 +458,9 @@ static void report_reference_cb(guint8 status, const guint8 *pdu,
+ if (report->type == HOG_REPORT_TYPE_INPUT)
+ read_char(report->hog, report->hog->attrib, report->ccc_handle,
+ ccc_read_cb, report);
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void external_report_reference_cb(guint8 status, const guint8 *pdu,
+@@ -442,12 +471,10 @@ static void discover_external_cb(uint8_t status, GSList *descs, void *user_data)
+ struct gatt_request *req = user_data;
+ struct bt_hog *hog = req->user_data;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Discover external descriptors failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ for ( ; descs; descs = descs->next) {
+@@ -457,6 +484,9 @@ static void discover_external_cb(uint8_t status, GSList *descs, void *user_data)
+ external_report_reference_cb,
+ hog);
+ }
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void discover_external(struct bt_hog *hog, GAttrib *attrib,
+@@ -480,12 +510,10 @@ static void discover_report_cb(uint8_t status, GSList *descs, void *user_data)
+ struct report *report = req->user_data;
+ struct bt_hog *hog = report->hog;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Discover report descriptors failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ for ( ; descs; descs = descs->next) {
+@@ -501,6 +529,9 @@ static void discover_report_cb(uint8_t status, GSList *descs, void *user_data)
+ break;
+ }
+ }
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void discover_report(struct bt_hog *hog, GAttrib *attrib,
+@@ -519,11 +550,9 @@ static void report_read_cb(guint8 status, const guint8 *pdu, guint16 len,
+ struct gatt_request *req = user_data;
+ struct report *report = req->user_data;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Error reading Report value: %s", att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ if (report->value)
+@@ -531,6 +560,9 @@ static void report_read_cb(guint8 status, const guint8 *pdu, guint16 len,
+
+ report->value = g_memdup2(pdu, len);
+ report->len = len;
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static int report_chrc_cmp(const void *data, const void *user_data)
+@@ -572,12 +604,11 @@ static void external_service_char_cb(uint8_t status, GSList *chars,
+ struct report *report;
+ GSList *l;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ const char *str = att_ecode2str(status);
++
+ DBG("Discover external service characteristic failed: %s", str);
+- return;
++ goto remove;
+ }
+
+ for (l = chars; l; l = g_slist_next(l)) {
+@@ -595,6 +626,9 @@ static void external_service_char_cb(uint8_t status, GSList *chars,
+ end = (next ? next->handle - 1 : primary->range.end);
+ discover_report(hog, hog->attrib, start, end, report);
+ }
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void external_report_reference_cb(guint8 status, const guint8 *pdu,
+@@ -605,17 +639,15 @@ static void external_report_reference_cb(guint8 status, const guint8 *pdu,
+ uint16_t uuid16;
+ bt_uuid_t uuid;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Read External Report Reference descriptor failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ if (plen != 3) {
+ error("Malformed ATT read response");
+- return;
++ goto remove;
+ }
+
+ uuid16 = get_le16(&pdu[1]);
+@@ -624,11 +656,14 @@ static void external_report_reference_cb(guint8 status, const guint8 *pdu,
+
+ /* Do not discover if is not a Report */
+ if (uuid16 != HOG_REPORT_UUID)
+- return;
++ goto remove;
+
+ bt_uuid16_create(&uuid, uuid16);
+ discover_char(hog, hog->attrib, 0x0001, 0xffff, &uuid,
+ external_service_char_cb, hog);
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static int report_cmp(gconstpointer a, gconstpointer b)
+@@ -687,12 +722,10 @@ static void output_written_cb(guint8 status, const guint8 *pdu,
+ {
+ struct gatt_request *req = user_data;
+
+- destroy_gatt_req(req);
+-
+- if (status != 0) {
++ if (status != 0)
+ error("Write output report failed: %s", att_ecode2str(status));
+- return;
+- }
++
++ remove_gatt_req(req, status);
+ }
+
+ static void forward_report(struct uhid_event *ev, void *user_data)
+@@ -1056,7 +1089,7 @@ static void report_map_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ uint8_t value[HOG_REPORT_MAP_MAX_SIZE];
+ ssize_t vlen;
+
+- destroy_gatt_req(req);
++ remove_gatt_req(req, status);
+
+ DBG("HoG inspecting report map");
+
+@@ -1081,6 +1114,19 @@ static void report_map_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ }
+ }
+
++static void read_report_map(struct bt_hog *hog)
++{
++ uint16_t handle;
++
++ if (!hog->report_map_attr || hog->uhid_created || hog->report_map_id)
++ return;
++
++ handle = gatt_db_attribute_get_handle(hog->report_map_attr);
++
++ hog->report_map_id = read_char(hog, hog->attrib, handle,
++ report_map_read_cb, hog);
++}
++
+ static void info_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ gpointer user_data)
+ {
+@@ -1089,18 +1135,16 @@ static void info_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ uint8_t value[HID_INFO_SIZE];
+ ssize_t vlen;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("HID Information read failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ vlen = dec_read_resp(pdu, plen, value, sizeof(value));
+ if (vlen != 4) {
+ error("ATT protocol error");
+- return;
++ goto remove;
+ }
+
+ hog->bcdhid = get_le16(&value[0]);
+@@ -1109,6 +1153,9 @@ static void info_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+
+ DBG("bcdHID: 0x%04X bCountryCode: 0x%02X Flags: 0x%02X",
+ hog->bcdhid, hog->bcountrycode, hog->flags);
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void proto_mode_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+@@ -1119,18 +1166,16 @@ static void proto_mode_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ uint8_t value;
+ ssize_t vlen;
+
+- destroy_gatt_req(req);
+-
+ if (status != 0) {
+ error("Protocol Mode characteristic read failed: %s",
+ att_ecode2str(status));
+- return;
++ goto remove;
+ }
+
+ vlen = dec_read_resp(pdu, plen, &value, sizeof(value));
+ if (vlen < 0) {
+ error("ATT protocol error");
+- return;
++ goto remove;
+ }
+
+ if (value == HOG_PROTO_MODE_BOOT) {
+@@ -1142,6 +1187,9 @@ static void proto_mode_read_cb(guint8 status, const guint8 *pdu, guint16 plen,
+ sizeof(nval), NULL, NULL);
+ } else if (value == HOG_PROTO_MODE_REPORT)
+ DBG("HoG is operating in Report Protocol Mode");
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void char_discovered_cb(uint8_t status, GSList *chars, void *user_data)
+@@ -1155,14 +1203,12 @@ static void char_discovered_cb(uint8_t status, GSList *chars, void *user_data)
+ GSList *l;
+ uint16_t info_handle = 0, proto_mode_handle = 0;
+
+- destroy_gatt_req(req);
+-
+ DBG("HoG inspecting characteristics");
+
+ if (status != 0) {
+- const char *str = att_ecode2str(status);
+- DBG("Discover all characteristics failed: %s", str);
+- return;
++ DBG("Discover all characteristics failed: %s",
++ att_ecode2str(status));
++ goto remove;
+ }
+
+ bt_uuid16_create(&report_uuid, HOG_REPORT_UUID);
+@@ -1211,6 +1257,9 @@ static void char_discovered_cb(uint8_t status, GSList *chars, void *user_data)
+
+ if (info_handle)
+ read_char(hog, hog->attrib, info_handle, info_read_cb, hog);
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void report_free(void *data)
+@@ -1221,10 +1270,12 @@ static void report_free(void *data)
+ g_free(report);
+ }
+
+-static void cancel_gatt_req(struct gatt_request *req)
++static bool cancel_gatt_req(const void *data, const void *user_data)
+ {
+- if (g_attrib_cancel(req->hog->attrib, req->id))
+- destroy_gatt_req(req);
++ struct gatt_request *req = (void *) data;
++ const struct bt_hog *hog = user_data;
++
++ return g_attrib_cancel(hog->attrib, req->id);
+ }
+
+ static void hog_free(void *data)
+@@ -1386,13 +1437,9 @@ static void foreach_hog_chrc(struct gatt_db_attribute *attr, void *user_data)
+ * UHID to optimize reconnection.
+ */
+ uhid_create(hog, report_map.value, report_map.length);
+- } else {
+- read_char(hog, hog->attrib, value_handle,
+- report_map_read_cb, hog);
+ }
+
+ gatt_db_service_foreach_desc(attr, foreach_hog_external, hog);
+- return;
+ }
+
+ bt_uuid16_create(&info_uuid, HOG_INFO_UUID);
+@@ -1552,12 +1599,9 @@ static void find_included_cb(uint8_t status, GSList *services, void *user_data)
+
+ DBG("");
+
+- destroy_gatt_req(req);
+-
+ if (status) {
+- const char *str = att_ecode2str(status);
+- DBG("Find included failed: %s", str);
+- return;
++ DBG("Find included failed: %s", att_ecode2str(status));
++ goto remove;
+ }
+
+ for (l = services; l; l = l->next) {
+@@ -1566,6 +1610,9 @@ static void find_included_cb(uint8_t status, GSList *services, void *user_data)
+ DBG("included: handle %x, uuid %s",
+ include->handle, include->uuid);
+ }
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ static void hog_attach_scpp(struct bt_hog *hog, struct gatt_primary *primary)
+@@ -1640,17 +1687,14 @@ static void primary_cb(uint8_t status, GSList *services, void *user_data)
+
+ DBG("");
+
+- destroy_gatt_req(req);
+-
+ if (status) {
+- const char *str = att_ecode2str(status);
+- DBG("Discover primary failed: %s", str);
+- return;
++ DBG("Discover primary failed: %s", att_ecode2str(status));
++ goto remove;
+ }
+
+ if (!services) {
+ DBG("No primary service found");
+- return;
++ goto remove;
+ }
+
+ for (l = services; l; l = l->next) {
+@@ -1674,6 +1718,9 @@ static void primary_cb(uint8_t status, GSList *services, void *user_data)
+ if (strcmp(primary->uuid, HOG_UUID) == 0)
+ hog_attach_hog(hog, primary);
+ }
++
++remove:
++ remove_gatt_req(req, status);
+ }
+
+ bool bt_hog_attach(struct bt_hog *hog, void *gatt)
+@@ -1790,7 +1837,7 @@ void bt_hog_detach(struct bt_hog *hog)
+ if (hog->dis)
+ bt_dis_detach(hog->dis);
+
+- queue_foreach(hog->gatt_op, (void *) cancel_gatt_req, NULL);
++ queue_remove_all(hog->gatt_op, cancel_gatt_req, hog, destroy_gatt_req);
+ g_attrib_unref(hog->attrib);
+ hog->attrib = NULL;
+ uhid_destroy(hog);
+--
+2.34.1
+
diff --git a/net-wireless/bluez/files/0002-hog-Add-input-queue-while-uhid-device-has-not-been-c-rediffed.patch b/net-wireless/bluez/files/0002-hog-Add-input-queue-while-uhid-device-has-not-been-c-rediffed.patch
new file mode 100644
index 000000000000..f39775785f4a
--- /dev/null
+++ b/net-wireless/bluez/files/0002-hog-Add-input-queue-while-uhid-device-has-not-been-c-rediffed.patch
@@ -0,0 +1,90 @@
+From 33d13bbc5703185ab3f15e4429df324987f3f225 Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Wed, 12 Jan 2022 14:07:36 -0800
+Subject: [PATCH 2/2] hog: Add input queue while uhid device has not been
+ created
+
+Since report map is only read after all reports it is possible to start
+receiving notifications before uhid has been created, so this adds a
+queue to store the events while the report map is pending and once uhid
+has been created dequeue the events.
+---
+ profiles/input/hog-lib.c | 32 +++++++++++++++++++++++++++++---
+ 1 file changed, 29 insertions(+), 3 deletions(-)
+
+diff --git a/profiles/input/hog-lib.c b/profiles/input/hog-lib.c
+index beb19af70..0b375feb8 100644
+--- a/profiles/input/hog-lib.c
++++ b/profiles/input/hog-lib.c
+@@ -98,6 +98,7 @@ struct bt_hog {
+ struct queue *gatt_op;
+ struct gatt_db *gatt_db;
+ struct gatt_db_attribute *report_map_attr;
++ struct queue *input;
+ };
+
+ struct report_map {
+@@ -355,11 +356,18 @@ static void report_value_cb(const guint8 *pdu, guint16 len, gpointer user_data)
+ ev.u.input.size = len;
+ }
+
+- err = bt_uhid_send(hog->uhid, &ev);
+- if (err < 0) {
+- error("bt_uhid_send: %s (%d)", strerror(-err), -err);
++ /* If uhid had not been created yet queue up the input */
++ if (!hog->uhid_created) {
++ if (!hog->input)
++ hog->input = queue_new();
++
++ queue_push_tail(hog->input, g_memdup(&ev, sizeof(ev)));
+ return;
+ }
++
++ err = bt_uhid_send(hog->uhid, &ev);
++ if (err < 0)
++ error("bt_uhid_send: %s (%d)", strerror(-err), -err);
+ }
+
+ static void report_ccc_written_cb(guint8 status, const guint8 *pdu,
+@@ -993,6 +1001,21 @@ static char *item2string(char *str, uint8_t *buf, uint8_t len)
+ return str;
+ }
+
++static bool input_dequeue(const void *data, const void *match_data)
++{
++ const struct uhid_event *ev = data;
++ const struct bt_hog *hog = match_data;
++ int err;
++
++ err = bt_uhid_send(hog->uhid, ev);
++ if (err < 0) {
++ error("bt_uhid_send: %s (%d)", strerror(-err), -err);
++ return false;
++ }
++
++ return true;
++}
++
+ static void uhid_create(struct bt_hog *hog, uint8_t *report_map,
+ ssize_t report_map_len)
+ {
+@@ -1072,6 +1095,8 @@ static void uhid_create(struct bt_hog *hog, uint8_t *report_map,
+ hog->uhid_created = true;
+
+ DBG("HoG created uHID device");
++
++ queue_remove_all(hog->input, input_dequeue, hog, free);
+ }
+
+ static void db_report_map_write_value_cb(struct gatt_db_attribute *attr,
+@@ -1284,6 +1309,7 @@ static void hog_free(void *data)
+
+ bt_hog_detach(hog);
+
++ queue_destroy(hog->input, free);
+ queue_destroy(hog->bas, (void *) bt_bas_unref);
+ g_slist_free_full(hog->instances, hog_free);
+
+--
+2.34.1
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2022-12-04 14:50 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2022-12-04 14:50 UTC (permalink / raw
To: gentoo-commits
commit: 590842a7dae0db6d1d945376c84003c7a2235d03
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 4 13:15:35 2022 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Dec 4 14:49:17 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=590842a7
net-wireless/bluez: add 5.66
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 1 +
net-wireless/bluez/bluez-5.66.ebuild | 300 +++++++++++++++++++++
.../bluez-5.66-power-state-adapter-property.patch | 28 ++
.../files/bluez-5.66-transient-hostname-fix.patch | 185 +++++++++++++
4 files changed, 514 insertions(+)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 710de1c38b68..ff11cd002cac 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,3 +1,4 @@
DIST bluez-5.64.tar.xz 2175148 BLAKE2B 828c620330d1993d5c5c2a865f2d27a29425e3583aac01a1a782290a805ee0fd6456b6832c804ad323dd8714fa9329487b2616ed08f1f491ea29403ee05dba2d SHA512 f11f9974b29c5c6fce3890d7e42425c1cb02e42c1b8f49c5cc4b249234e67b64317d0e5e82721e2fbf1b53269c8569a9c869d59ce42b5e927f6622f0753e53cd
DIST bluez-5.65.tar.xz 2208100 BLAKE2B 9d2937e2e14d8d8945183c6436921d9d16a6d3bcb5dbe3e2493554fbc4972bb4c006aabc793c9fb8eae47a7e9f29ae9fdf47551dfc0a238e86f5a76ce7436ae2 SHA512 c20c09a1a75053c77d73b3ce15ac7fd321eb6df5ca1646d57c6848b87c0c9957908bc17dd928da4ef2aacfc8667877cbc7511c1ba43db839bfa9bf1fb8269907
+DIST bluez-5.66.tar.xz 2257288 BLAKE2B af1911cf590461a874daa16bedb8a021a3b2c2af3254360c035d2180e0f355372651bd41da342c26e6d9631d726dd08e0d6a83a22069333b94b6fce6d546718c SHA512 ed0994932687eacf27207867366671b323671f5d5199daf36ea5eff8f254f2bc99ef989ef7df9883b35c06f2af60452be8bad0a06109428a4717cf2b247b4865
DIST power-state-adapter-property.patch 22488 BLAKE2B a46173c0ebe4f4822c67c2f8f2f3e67dab261753f64204f1a61665c3bba1d7a10e0f8511b38ce273d986490ffd262a737bee82694909683df7386b2015301607 SHA512 b039a578454681f291dc3b04079c8d0151b13a84b4b013e290aa3c28aba1538cef2d9e9aadfe88a0dbfb8e4cea1c251cb5043f4175fb32d53526f7b82de0451a
diff --git a/net-wireless/bluez/bluez-5.66.ebuild b/net-wireless/bluez/bluez-5.66.ebuild
new file mode 100644
index 000000000000..8a2a8ed1bcee
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.66.ebuild
@@ -0,0 +1,300 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit autotools linux-info python-single-r1 readme.gentoo-r1 systemd udev multilib-minimal
+
+DESCRIPTION="Bluetooth Tools and System Daemons for Linux"
+HOMEPAGE="http://www.bluez.org"
+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-172 )
+"
+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
+
+ # Fedora patches
+ # http://www.spinics.net/lists/linux-bluetooth/msg40136.html
+ "${FILESDIR}"/0001-obex-Use-GLib-helper-function-to-manipulate-paths.patch
+
+ # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
+ "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
+
+ # Fixed in next release
+ "${FILESDIR}"/${P}-transient-hostname-fix.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 ~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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ eautoreconf
+
+ if use cups; then
+ # Only not .am to not need to run eautoreconf only because of this
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+ # Upstream dropped the example files
+ # Install .json files as examples to be used by meshctl
+ #if use mesh; then
+ #dodoc tools/mesh-gatt/*.json
+ # local DOC_CONTENTS="Some example .json files were installed into
+ # /usr/share/doc/${PF} to be used with meshctl. Feel free to
+ # uncompress and copy them to ~/.config/meshctl to use them."
+ # readme.gentoo_create_doc
+ #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"
+ #use mesh && readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ use udev && udev_reload
+}
diff --git a/net-wireless/bluez/files/bluez-5.66-power-state-adapter-property.patch b/net-wireless/bluez/files/bluez-5.66-power-state-adapter-property.patch
new file mode 100644
index 000000000000..566d7c08b591
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.66-power-state-adapter-property.patch
@@ -0,0 +1,28 @@
+From 70309219acd4c81e3a9e2b3652d2d93eb08b0aee Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Wed, 31 Aug 2022 11:16:34 +0200
+Subject: [PATCH 6/6] adapter: Remove experimental flag for PowerState
+
+Now that the feature has been tested, that the API is deemed adequate
+and the reliability sufficient.
+---
+ src/adapter.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/adapter.c b/src/adapter.c
+index 8fb2acdc8..841096d7f 100644
+--- a/src/adapter.c
++++ b/src/adapter.c
+@@ -3864,8 +3864,7 @@ static const GDBusPropertyTable adapter_properties[] = {
+ { "Alias", "s", property_get_alias, property_set_alias },
+ { "Class", "u", property_get_class },
+ { "Powered", "b", property_get_powered, property_set_powered },
+- { "PowerState", "s", property_get_power_state, NULL, NULL,
+- G_DBUS_PROPERTY_FLAG_EXPERIMENTAL },
++ { "PowerState", "s", property_get_power_state },
+ { "Discoverable", "b", property_get_discoverable,
+ property_set_discoverable },
+ { "DiscoverableTimeout", "u", property_get_discoverable_timeout,
+--
+2.37.2
+
diff --git a/net-wireless/bluez/files/bluez-5.66-transient-hostname-fix.patch b/net-wireless/bluez/files/bluez-5.66-transient-hostname-fix.patch
new file mode 100644
index 000000000000..fef2776f7a0e
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.66-transient-hostname-fix.patch
@@ -0,0 +1,185 @@
+From e515f4b6e25c971c47ab79e9cbdfa17119bbde23 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Wed, 9 Nov 2022 16:17:55 +0100
+Subject: [PATCH 1/2] hostname: Add '' around printed strings
+
+Otherwise we can't see whether the string is nul, or empty.
+---
+ plugins/hostname.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/plugins/hostname.c b/plugins/hostname.c
+index 1a9513adb..14b6450b5 100644
+--- a/plugins/hostname.c
++++ b/plugins/hostname.c
+@@ -128,7 +128,7 @@ static void property_changed(GDBusProxy *proxy, const char *name,
+
+ dbus_message_iter_get_basic(iter, &str);
+
+- DBG("pretty hostname: %s", str);
++ DBG("pretty hostname: '%s'", str);
+
+ g_free(pretty_hostname);
+ pretty_hostname = g_strdup(str);
+@@ -146,7 +146,7 @@ static void property_changed(GDBusProxy *proxy, const char *name,
+
+ dbus_message_iter_get_basic(iter, &str);
+
+- DBG("static hostname: %s", str);
++ DBG("static hostname: '%s'", str);
+
+ g_free(static_hostname);
+ static_hostname = g_strdup(str);
+@@ -165,7 +165,7 @@ static void property_changed(GDBusProxy *proxy, const char *name,
+
+ dbus_message_iter_get_basic(iter, &str);
+
+- DBG("chassis: %s", str);
++ DBG("chassis: '%s'", str);
+
+ for (i = 0; chassis_table[i].chassis; i++) {
+ if (strcmp(chassis_table[i].chassis, str))
+--
+2.37.3
+
+
+From e2b2b1675f310023862319ea10ffd205a75cc0cb Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Wed, 9 Nov 2022 16:17:56 +0100
+Subject: [PATCH 2/2] hostname: Fallback to transient hostname
+
+After pretty hostname, and static hostname, also support transient
+hostname as a last resort before 'BlueZ X.XX'.
+
+This happens on Fedora's Workstation installation as it calls
+"hostnamectl set-hostname" on startup. In Fedora Silverblue, the default
+hostname is set as fedora in /etc/os-release.
+
+In both cases, we should fall back to that transient hostname, as bad as
+it could be.
+
+Note that the transient hostname needs to be monitored through the
+kernel directly, as explained in:
+https://www.freedesktop.org/software/systemd/man/org.freedesktop.hostname1.html
+---
+ plugins/hostname.c | 57 ++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 55 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/hostname.c b/plugins/hostname.c
+index 14b6450b5..51707f07d 100644
+--- a/plugins/hostname.c
++++ b/plugins/hostname.c
+@@ -16,6 +16,8 @@
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
++#include <fcntl.h>
++#include <sys/utsname.h>
+
+ #include "lib/bluetooth.h"
+ #include "lib/sdp.h"
+@@ -44,8 +46,10 @@
+ static uint8_t major_class = MAJOR_CLASS_MISCELLANEOUS;
+ static uint8_t minor_class = MINOR_CLASS_UNCATEGORIZED;
+
+-static char *pretty_hostname = NULL;
+-static char *static_hostname = NULL;
++static char *pretty_hostname = NULL;
++static char *static_hostname = NULL;
++static char *transient_hostname = NULL;
++static guint hostname_id = 0;
+
+ /*
+ * Fallback to static hostname only if empty pretty hostname was already
+@@ -60,6 +64,10 @@ static const char *get_hostname(void)
+ if (static_hostname &&
+ g_str_equal(static_hostname, "") == FALSE)
+ return static_hostname;
++
++ if (transient_hostname &&
++ g_str_equal(transient_hostname, "") == FALSE)
++ return transient_hostname;
+ }
+
+ return NULL;
+@@ -181,6 +189,32 @@ static void property_changed(GDBusProxy *proxy, const char *name,
+ }
+ }
+
++static void read_transient_hostname(void)
++{
++ struct utsname u;
++
++ if (uname(&u) != 0) {
++ g_free(transient_hostname);
++ transient_hostname = NULL;
++ DBG("failed to read transient hostname");
++ return;
++ }
++
++ g_free(transient_hostname);
++ transient_hostname = g_strdup(u.nodename);
++
++ DBG("read transient hostname: '%s'", transient_hostname);
++}
++
++static gboolean hostname_cb(GIOChannel *io, GIOCondition cond,
++ gpointer user_data)
++{
++ DBG("transient hostname changed");
++ read_transient_hostname();
++ adapter_foreach(update_class, NULL);
++ return TRUE;
++}
++
+ static int hostname_probe(struct btd_adapter *adapter)
+ {
+ DBG("");
+@@ -261,9 +295,11 @@ static GDBusProxy *hostname_proxy = NULL;
+ static int hostname_init(void)
+ {
+ DBusConnection *conn = btd_get_dbus_connection();
++ int fd;
+ int err;
+
+ read_dmi_fallback();
++ read_transient_hostname();
+
+ hostname_client = g_dbus_client_new(conn, "org.freedesktop.hostname1",
+ "/org/freedesktop/hostname1");
+@@ -289,6 +325,17 @@ static int hostname_init(void)
+ hostname_client = NULL;
+ }
+
++ fd = open("/proc/sys/kernel/hostname", O_RDONLY);
++ if (fd < 0) {
++ error("open(/proc/sys/kernel/hostname): %s (%d)",
++ strerror(errno), errno);
++ } else {
++ GIOChannel *io = g_io_channel_unix_new(fd);
++
++ hostname_id = g_io_add_watch(io, G_IO_ERR, hostname_cb, NULL);
++ g_io_channel_unref(io);
++ }
++
+ return err;
+ }
+
+@@ -306,8 +353,14 @@ static void hostname_exit(void)
+ hostname_client = NULL;
+ }
+
++ if (hostname_id != 0) {
++ g_source_remove(hostname_id);
++ hostname_id = 0;
++ }
++
+ g_free(pretty_hostname);
+ g_free(static_hostname);
++ g_free(transient_hostname);
+ }
+
+ BLUETOOTH_PLUGIN_DEFINE(hostname, VERSION, BLUETOOTH_PLUGIN_PRIORITY_DEFAULT,
+--
+2.37.3
+
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2023-12-09 18:11 Sam James
0 siblings, 0 replies; 22+ messages in thread
From: Sam James @ 2023-12-09 18:11 UTC (permalink / raw
To: gentoo-commits
commit: 26f32e2abe9e0c412c98898f61b144a3f6e5fb76
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 9 18:05:05 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Dec 9 18:06:02 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=26f32e2a
net-wireless/bluez: backport CVE-2023-45866 fix
Signed-off-by: Sam James <sam <AT> gentoo.org>
net-wireless/bluez/bluez-5.70-r1.ebuild | 288 +++++++++++++++++++++
.../bluez/files/bluez-5.70-CVE-2023-45866.patch | 43 +++
2 files changed, 331 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.70-r1.ebuild b/net-wireless/bluez/bluez-5.70-r1.ebuild
new file mode 100644
index 000000000000..756654822561
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.70-r1.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..12} )
+
+inherit autotools 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-172 )
+"
+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
+
+ # Fedora patches
+ # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
+ "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
+
+ # Backport CVE-2023-45866 fix (bug #919383)
+ "${FILESDIR}"/${PN}-5.70-CVE-2023-45866.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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ eautoreconf
+
+ if use cups; then
+ # Only not .am to not need to run eautoreconf only because of this
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+}
+
+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
+}
diff --git a/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch b/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch
new file mode 100644
index 000000000000..6e5ac253585c
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch
@@ -0,0 +1,43 @@
+https://bugs.gentoo.org/919383
+https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=25a471a83e02e1effb15d5a488b3f0085eaeb675
+
+From 25a471a83e02e1effb15d5a488b3f0085eaeb675 Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+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].
+--- 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)
+ {
+--- 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
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2023-12-16 9:15 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2023-12-16 9:15 UTC (permalink / raw
To: gentoo-commits
commit: 7eea4a6e371f176706880da4b1e0ef04fb5c3f7c
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 16 09:14:54 2023 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Dec 16 09:15:19 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7eea4a6e
net-wireless/bluez: drop 5.68, 5.69, 5.70
Bug: https://bugs.gentoo.org/919383
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 2 -
net-wireless/bluez/bluez-5.68.ebuild | 294 ---------------------
net-wireless/bluez/bluez-5.69.ebuild | 285 --------------------
net-wireless/bluez/bluez-5.70.ebuild | 285 --------------------
.../bluez/files/bluez-5.68-bap-dettach-io.patch | 101 -------
.../bluez/files/bluez-5.68-bap-ebusy-fix.patch | 206 ---------------
.../bluez/files/bluez-5.68-bap-nonzero.patch | 27 --
.../bluez/files/bluez-5.68-bap-resume.patch | 187 -------------
.../bluez/files/bluez-5.68-clang-midi.patch | 83 ------
.../files/bluez-5.68-heap-use-after-free.patch | 41 ---
.../bluez/files/bluez-5.68-monitor-decoding.patch | 45 ----
11 files changed, 1556 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 081b8f9cd9b4..b316ef9b7427 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,4 +1,2 @@
-DIST bluez-5.68.tar.xz 2319788 BLAKE2B 3beca78fadef4d66df6f237b7460f6ac4bf001d80c856b599faa2cc1232c4342c7945eace5a6667009b9d19f2368f9841e608f07bc826b30ce9112c43dd7e316 SHA512 1805fb68923a5e098777b69835d7593396f8f2bbf52e1cfe58e7447621497a700b23389c79e96b2d663c611335f6ea9df11efe8aa75a8842f6b73105f66e799c
-DIST bluez-5.69.tar.xz 2335728 BLAKE2B 3b85c6418bf5f8fea989d9435d90f704da707248034006d12863465b9acee2b549f6d2950fdde64e74a1cbded4c711c54db747a82abdaa67ec965aab1c817d85 SHA512 4d5618cd083fe375c41faff868b5d9f072aeaccdffed758f6b69fd0cb46b058431cbf63182bd4a3f4f4e7a24b092729a4125687af730cd4250b273d66107bf42
DIST bluez-5.70.tar.xz 2339844 BLAKE2B 1ba2ddd3bfc6562a07f4e8376e0d537b555f0d36a221f051c4c10dd912c23e73aa2b0d8aa125e0fd911908e4cfa0036429e17250a26b3298bb21f65e4cc5255c SHA512 3a5f8caf7730dcdbbe0bb92154b41651a9d6619038447bf4c25e5e3e5316effcd7242a7a0456d731ce21d55b8daea5212a359acc5e5fc460499b9356b7d364cf
DIST bluez-5.71.tar.xz 2381208 BLAKE2B 73e5f08771f821c90a70c553c600c48c4f1adb85aa9cb1a1eaae61a33b2dda73b7825fe769b3ea1daaaadedc39ad3fb71d84b336408f5ce6963f0373e9f7dcce SHA512 648394bbe470405aa0e2d3914474e95c122f567deaaac20a5dd74bac29fa430dfb64cdb7bdb4fb7510e62fa73e96112a97197fc212b421bf480b8d1bb24cfb5d
diff --git a/net-wireless/bluez/bluez-5.68.ebuild b/net-wireless/bluez/bluez-5.68.ebuild
deleted file mode 100644
index 37f02d578577..000000000000
--- a/net-wireless/bluez/bluez-5.68.ebuild
+++ /dev/null
@@ -1,294 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
-
-inherit autotools 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"
-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-172 )
-"
-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
-
- # Fedora patches
- # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
- "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
-
- # Fixed in next release
- "${FILESDIR}"/${P}-bap-resume.patch
- "${FILESDIR}"/${P}-bap-nonzero.patch
- "${FILESDIR}"/${P}-bap-dettach-io.patch
- "${FILESDIR}"/${P}-bap-ebusy-fix.patch
- "${FILESDIR}"/${P}-monitor-decoding.patch
- "${FILESDIR}"/${P}-heap-use-after-free.patch
- "${FILESDIR}"/${P}-clang-midi.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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
-}
-
-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
-}
diff --git a/net-wireless/bluez/bluez-5.69.ebuild b/net-wireless/bluez/bluez-5.69.ebuild
deleted file mode 100644
index 657bb53be4c7..000000000000
--- a/net-wireless/bluez/bluez-5.69.ebuild
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
-
-inherit autotools 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-172 )
-"
-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
-
- # Fedora patches
- # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
- "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
-}
-
-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
-}
diff --git a/net-wireless/bluez/bluez-5.70.ebuild b/net-wireless/bluez/bluez-5.70.ebuild
deleted file mode 100644
index 657bb53be4c7..000000000000
--- a/net-wireless/bluez/bluez-5.70.ebuild
+++ /dev/null
@@ -1,285 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
-
-inherit autotools 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-172 )
-"
-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
-
- # Fedora patches
- # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
- "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
-}
-
-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
-}
diff --git a/net-wireless/bluez/files/bluez-5.68-bap-dettach-io.patch b/net-wireless/bluez/files/bluez-5.68-bap-dettach-io.patch
deleted file mode 100644
index bb79fc42734b..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-bap-dettach-io.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 7b10e72de6f41585f087e6fc338106b44d3e69c9 Mon Sep 17 00:00:00 2001
-From: Pauli Virtanen <pav@iki.fi>
-Date: Sun, 2 Jul 2023 21:43:04 +0300
-Subject: shared/bap: detach io for source ASEs only after Stop Ready
-
-The Client may terminate a CIS when sink is in QOS and source in
-Disabling states (BAP v1.0.1 Sec 5.6.5). It may also terminate it when
-Receiver Stop Ready has completed successfully (BAP v1.0.1 Sec 5.6.5.1).
-
-It appears Samsung Galaxy Buds2 Pro (R510XXUOAWA5) ignores the Receiver
-Stop Ready command if CIS is already disconnected, and then gets stuck
-in disabling state. It works if CIS is disconnected after Receiver Stop
-Ready.
-
-For better compatibility as client for this device, and since it
-shouldn't matter for us in which order we do it, disconnect CIS after
-completion of Receiver Stop Ready, instead of immediately in Disabling.
-
-We disconnect also if Receiver Stop Ready fails, given that
-disconnecting in Disabled state should be OK.
-
-Link: https://github.com/bluez/bluez/issues/516
----
- src/shared/bap.c | 33 +++++++++++++++------------------
- 1 file changed, 15 insertions(+), 18 deletions(-)
-
-diff --git a/src/shared/bap.c b/src/shared/bap.c
-index a0f5a0ae3c..72ce67c086 100644
---- a/src/shared/bap.c
-+++ b/src/shared/bap.c
-@@ -1168,18 +1168,6 @@ static bool match_stream_io(const void *data, const void *user_data)
- return stream->io == io;
- }
-
--static void stream_stop_disabling(void *data, void *user_data)
--{
-- struct bt_bap_stream *stream = data;
--
-- if (stream->io || stream->ep->state != BT_ASCS_ASE_STATE_DISABLING)
-- return;
--
-- DBG(stream->bap, "stream %p", stream);
--
-- bt_bap_stream_stop(stream, NULL, NULL);
--}
--
- static bool bap_stream_io_detach(struct bt_bap_stream *stream)
- {
- struct bt_bap_stream *link;
-@@ -1198,9 +1186,6 @@ static bool bap_stream_io_detach(struct bt_bap_stream *stream)
- /* Detach link if in QoS state */
- if (link->ep->state == BT_ASCS_ASE_STATE_QOS)
- bap_stream_io_detach(link);
-- } else {
-- /* Links without IO on disabling state shall be stopped. */
-- queue_foreach(stream->links, stream_stop_disabling, NULL);
- }
-
- stream_io_unref(io);
-@@ -1244,6 +1229,15 @@ static struct bt_bap *bt_bap_ref_safe(struct bt_bap *bap)
- return bt_bap_ref(bap);
- }
-
-+static void stream_stop_complete(struct bt_bap_stream *stream, uint8_t code,
-+ uint8_t reason, void *user_data)
-+{
-+ DBG(stream->bap, "stream %p stop 0x%02x 0x%02x", stream, code, reason);
-+
-+ if (stream->ep->state == BT_ASCS_ASE_STATE_DISABLING)
-+ bap_stream_io_detach(stream);
-+}
-+
- static void bap_stream_state_changed(struct bt_bap_stream *stream)
- {
- struct bt_bap *bap = stream->bap;
-@@ -1271,7 +1265,9 @@ static void bap_stream_state_changed(struct bt_bap_stream *stream)
- bap_stream_update_io_links(stream);
- break;
- case BT_ASCS_ASE_STATE_DISABLING:
-- bap_stream_io_detach(stream);
-+ /* As client, we detach after Receiver Stop Ready */
-+ if (!stream->client)
-+ bap_stream_io_detach(stream);
- break;
- case BT_ASCS_ASE_STATE_QOS:
- if (stream->io && !stream->io->connecting)
-@@ -1305,8 +1301,9 @@ static void bap_stream_state_changed(struct bt_bap_stream *stream)
- bt_bap_stream_start(stream, NULL, NULL);
- break;
- case BT_ASCS_ASE_STATE_DISABLING:
-- if (!bt_bap_stream_get_io(stream))
-- bt_bap_stream_stop(stream, NULL, NULL);
-+ /* Send Stop Ready, and detach IO after remote replies */
-+ if (stream->client)
-+ bt_bap_stream_stop(stream, stream_stop_complete, NULL);
- break;
- }
-
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-bap-ebusy-fix.patch b/net-wireless/bluez/files/bluez-5.68-bap-ebusy-fix.patch
deleted file mode 100644
index 72b875ba4b6f..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-bap-ebusy-fix.patch
+++ /dev/null
@@ -1,206 +0,0 @@
-From 8c3170190d6f626869f1f382138caf3a16030462 Mon Sep 17 00:00:00 2001
-From: Pauli Virtanen <pav@iki.fi>
-Date: Sun, 2 Jul 2023 21:43:05 +0300
-Subject: bap: wait for CIG to become configurable before recreating CIS
-
-ISO sockets cannot be reconnected before all sockets in the same CIG
-have been closed, if the CIG was previously active.
-
-Keep track which endpoints have active CIG, and postpone connecting CIS
-until their CIG is no longer active.
-
-This addresses getting EBUSY from connect() when multiple CIS in the
-same CIG move streaming -> qos at the same time, which disconnects CIS
-and recreates them. The EBUSY originates from COMMAND_DISALLOWED
-response to Set CIG Parameters.
-
-This requires the kernel side do the Disconnect CIS / Remove CIG / Set
-CIG Parameters HCI command steps in the right order, when all old
-sockets are closed first before connecting new ones.
----
- profiles/audio/bap.c | 107 ++++++++++++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 97 insertions(+), 10 deletions(-)
-
-diff --git a/profiles/audio/bap.c b/profiles/audio/bap.c
-index 8e2fc1556a..d7ce9e0389 100644
---- a/profiles/audio/bap.c
-+++ b/profiles/audio/bap.c
-@@ -68,6 +68,7 @@ struct bap_ep {
- GIOChannel *io;
- unsigned int io_id;
- bool recreate;
-+ bool cig_active;
- struct iovec *caps;
- struct iovec *metadata;
- struct bt_bap_qos qos;
-@@ -525,6 +526,7 @@ static void bap_io_close(struct bap_ep *ep)
-
- g_io_channel_unref(ep->io);
- ep->io = NULL;
-+ ep->cig_active = false;
- }
-
- static DBusMessage *set_configuration(DBusConnection *conn, DBusMessage *msg,
-@@ -988,7 +990,7 @@ drop:
- g_io_channel_shutdown(io, TRUE, NULL);
- }
-
--static void bap_accept_io(struct bap_data *data, struct bt_bap_stream *stream,
-+static void bap_accept_io(struct bap_ep *ep, struct bt_bap_stream *stream,
- int fd, int defer)
- {
- char c;
-@@ -1025,12 +1027,52 @@ static void bap_accept_io(struct bap_data *data, struct bt_bap_stream *stream,
- }
- }
-
-+ ep->cig_active = true;
-+
- return;
-
- fail:
- close(fd);
- }
-
-+struct cig_busy_data {
-+ struct btd_adapter *adapter;
-+ uint8_t cig;
-+};
-+
-+static bool cig_busy_ep(const void *data, const void *match_data)
-+{
-+ const struct bap_ep *ep = data;
-+ const struct cig_busy_data *info = match_data;
-+
-+ return (ep->qos.ucast.cig_id == info->cig) && ep->cig_active;
-+}
-+
-+static bool cig_busy_session(const void *data, const void *match_data)
-+{
-+ const struct bap_data *session = data;
-+ const struct cig_busy_data *info = match_data;
-+
-+ if (device_get_adapter(session->device) != info->adapter)
-+ return false;
-+
-+ return queue_find(session->snks, cig_busy_ep, match_data) ||
-+ queue_find(session->srcs, cig_busy_ep, match_data);
-+}
-+
-+static bool is_cig_busy(struct bap_data *data, uint8_t cig)
-+{
-+ struct cig_busy_data info;
-+
-+ if (cig == BT_ISO_QOS_CIG_UNSET)
-+ return false;
-+
-+ info.adapter = device_get_adapter(data->device);
-+ info.cig = cig;
-+
-+ return queue_find(sessions, cig_busy_session, &info);
-+}
-+
- static void bap_create_io(struct bap_data *data, struct bap_ep *ep,
- struct bt_bap_stream *stream, int defer);
-
-@@ -1047,6 +1089,48 @@ static gboolean bap_io_recreate(void *user_data)
- return FALSE;
- }
-
-+static void recreate_cig_ep(void *data, void *match_data)
-+{
-+ struct bap_ep *ep = (struct bap_ep *)data;
-+ struct cig_busy_data *info = match_data;
-+
-+ if (ep->qos.ucast.cig_id != info->cig || !ep->recreate || ep->io_id)
-+ return;
-+
-+ ep->recreate = false;
-+ ep->io_id = g_idle_add(bap_io_recreate, ep);
-+}
-+
-+static void recreate_cig_session(void *data, void *match_data)
-+{
-+ struct bap_data *session = data;
-+ struct cig_busy_data *info = match_data;
-+
-+ if (device_get_adapter(session->device) != info->adapter)
-+ return;
-+
-+ queue_foreach(session->snks, recreate_cig_ep, match_data);
-+ queue_foreach(session->srcs, recreate_cig_ep, match_data);
-+}
-+
-+static void recreate_cig(struct bap_ep *ep)
-+{
-+ struct bap_data *data = ep->data;
-+ struct cig_busy_data info;
-+
-+ info.adapter = device_get_adapter(data->device);
-+ info.cig = ep->qos.ucast.cig_id;
-+
-+ DBG("adapter %p ep %p recreate CIG %d", info.adapter, ep, info.cig);
-+
-+ if (ep->qos.ucast.cig_id == BT_ISO_QOS_CIG_UNSET) {
-+ recreate_cig_ep(ep, &info);
-+ return;
-+ }
-+
-+ queue_foreach(sessions, recreate_cig_session, &info);
-+}
-+
- static gboolean bap_io_disconnected(GIOChannel *io, GIOCondition cond,
- gpointer user_data)
- {
-@@ -1059,10 +1143,8 @@ static gboolean bap_io_disconnected(GIOChannel *io, GIOCondition cond,
- bap_io_close(ep);
-
- /* Check if connecting recreate IO */
-- if (ep->recreate) {
-- ep->recreate = false;
-- ep->io_id = g_idle_add(bap_io_recreate, ep);
-- }
-+ if (!is_cig_busy(ep->data, ep->qos.ucast.cig_id))
-+ recreate_cig(ep);
-
- return FALSE;
- }
-@@ -1087,18 +1169,22 @@ static void bap_connect_io(struct bap_data *data, struct bap_ep *ep,
- int fd;
-
- /* If IO already set skip creating it again */
-- if (bt_bap_stream_get_io(stream))
-+ if (bt_bap_stream_get_io(stream)) {
-+ DBG("ep %p stream %p has existing io", ep, stream);
- return;
-+ }
-
- if (bt_bap_stream_io_is_connecting(stream, &fd)) {
-- bap_accept_io(data, stream, fd, defer);
-+ bap_accept_io(ep, stream, fd, defer);
- return;
- }
-
-- /* If IO channel still up wait for it to be disconnected and then
-- * recreate.
-+ /* If IO channel still up or CIG is busy, wait for it to be
-+ * disconnected and then recreate.
- */
-- if (ep->io) {
-+ if (ep->io || is_cig_busy(data, ep->qos.ucast.cig_id)) {
-+ DBG("ep %p stream %p defer %s wait recreate", ep, stream,
-+ defer ? "true" : "false");
- ep->recreate = true;
- return;
- }
-@@ -1131,6 +1217,7 @@ static void bap_connect_io(struct bap_data *data, struct bap_ep *ep,
- bap_io_disconnected, ep);
-
- ep->io = io;
-+ ep->cig_active = !defer;
-
- bt_bap_stream_io_connecting(stream, g_io_channel_unix_get_fd(io));
- }
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-bap-nonzero.patch b/net-wireless/bluez/files/bluez-5.68-bap-nonzero.patch
deleted file mode 100644
index 3a7ddd3c6f2a..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-bap-nonzero.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 8fd0c76b41d35e24e10e45fcf57262482cb978a2 Mon Sep 17 00:00:00 2001
-From: Pauli Virtanen <pav@iki.fi>
-Date: Sun, 2 Jul 2023 22:34:19 +0300
-Subject: shared/bap: use only nonzero req->id
-
-In bap_req_new, use same pattern as elsewhere to not use zero as
-a valid id.
----
- src/shared/bap.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/shared/bap.c b/src/shared/bap.c
-index cf5d810bba..a0f5a0ae3c 100644
---- a/src/shared/bap.c
-+++ b/src/shared/bap.c
-@@ -4306,7 +4306,7 @@ static struct bt_bap_req *bap_req_new(struct bt_bap_stream *stream,
- static unsigned int id;
-
- req = new0(struct bt_bap_req, 1);
-- req->id = ++id;
-+ req->id = ++id ? id : ++id;
- req->stream = stream;
- req->op = op;
- req->iov = util_iov_dup(iov, len);
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-bap-resume.patch b/net-wireless/bluez/files/bluez-5.68-bap-resume.patch
deleted file mode 100644
index fbc2eeda89cc..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-bap-resume.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 466fce0209a3878512672159168943047a9e2323 Mon Sep 17 00:00:00 2001
-From: Pauli Virtanen <pav@iki.fi>
-Date: Sun, 2 Jul 2023 22:34:18 +0300
-Subject: transport: handle BAP Enabling state correctly when resuming
-
-If BAP stream is in Enabling state when transport acquire is attempted,
-we should wait for bap_state_changed to emit the completion event.
-
-transport->resume() is only called with new owner with no
-owner->pending, and shall return nonzero completion id on success.
-Currently if BAP stream is Enabling, it returns zero which fails the
-acquire operation.
-
-To fix this, return valid completion id in this case instead. Also keep
-track of the g_idle_add resume id, so that we don't try to give it to
-bt_bap_stream_cancel.
-
-Fixes sound server getting spurious Not Authorized errors when trying to
-acquire a pending transport. This can happen on BAP server: linked
-transports become pending when the first of the two enters Streaming. If
-sound server tries to acquire the other linked transport whose stream is
-still Enabling, the acquire fails (media_owner_free +
-btd_error_not_authorized).
-
-Log:
-===============================================================
-profiles/audio/transport.c:bap_state_changed() stream 0x25c2880: qos(2) -> enabling(3)
-...
-profiles/audio/transport.c:bap_state_changed() stream 0x25cc590: qos(2) -> enabling(3)
-...
-src/shared/bap.c:bap_stream_state_changed() stream 0x25cc590 dir 0x01: enabling -> streaming
-profiles/audio/bap.c:bap_state() stream 0x25cc590: enabling(3) -> streaming(4)
-profiles/audio/transport.c:bap_state_changed() stream 0x25cc590: enabling(3) -> streaming(4)
-/org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fd1: fd(36) ready
-profiles/audio/transport.c:transport_update_playing() /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fd1 State=TRANSPORT_STATE_IDLE Playing=1
-profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fd1: TRANSPORT_STATE_IDLE -> TRANSPORT_STATE_PENDING
-profiles/audio/transport.c:transport_set_state() State changed /org/bluez/hci0/dev_XX_XX_XX_XX_XX_XX/fd0: TRANSPORT_STATE_IDLE -> TRANSPORT_STATE_PENDING
-profiles/audio/transport.c:media_owner_create() Owner created: sender=:1.1242
-profiles/audio/transport.c:media_owner_free() Owner :1.1242
-===============================================================
----
- profiles/audio/transport.c | 67 +++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 55 insertions(+), 12 deletions(-)
-
-diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
-index 77216e10b3..aa3a718b0f 100644
---- a/profiles/audio/transport.c
-+++ b/profiles/audio/transport.c
-@@ -86,6 +86,7 @@ struct bap_transport {
- unsigned int state_id;
- bool linked;
- struct bt_bap_qos qos;
-+ guint resume_id;
- };
-
- struct media_transport {
-@@ -1191,17 +1192,27 @@ static void bap_enable_complete(struct bt_bap_stream *stream,
- media_transport_remove_owner(owner->transport);
- }
-
--static gboolean resume_complete(void *data)
-+static void bap_resume_complete(struct media_transport *transport)
- {
-- struct media_transport *transport = data;
-+ struct bap_transport *bap = transport->data;
- struct media_owner *owner = transport->owner;
-
-+ DBG("stream %p owner %p resume complete", bap->stream, owner);
-+
-+ if (bap->resume_id) {
-+ g_source_remove(bap->resume_id);
-+ bap->resume_id = 0;
-+ }
-+
- if (!owner)
-- return FALSE;
-+ return;
-+
-+ if (owner->pending)
-+ owner->pending->id = 0;
-
- if (transport->fd < 0) {
- media_transport_remove_owner(transport);
-- return FALSE;
-+ return;
- }
-
- if (owner->pending) {
-@@ -1215,15 +1226,13 @@ static gboolean resume_complete(void *data)
- DBUS_TYPE_INVALID);
- if (!ret) {
- media_transport_remove_owner(transport);
-- return FALSE;
-+ return;
- }
- }
-
- media_owner_remove(owner);
-
- transport_set_state(transport, TRANSPORT_STATE_ACTIVE);
--
-- return FALSE;
- }
-
- static void bap_update_links(const struct media_transport *transport);
-@@ -1306,6 +1315,32 @@ static void bap_update_qos(const struct media_transport *transport)
- "Delay");
- }
-
-+static gboolean bap_resume_complete_cb(void *data)
-+{
-+ struct media_transport *transport = data;
-+ struct bap_transport *bap = transport->data;
-+
-+ bap->resume_id = 0;
-+ bap_resume_complete(transport);
-+ return FALSE;
-+}
-+
-+static gboolean bap_resume_wait_cb(void *data)
-+{
-+ struct media_transport *transport = data;
-+ struct bap_transport *bap = transport->data;
-+ struct media_owner *owner = transport->owner;
-+
-+ /* bap_state_changed will call completion callback when ready */
-+ DBG("stream %p owner %p resume wait", bap->stream, owner);
-+
-+ bap->resume_id = 0;
-+ if (owner && owner->pending)
-+ owner->pending->id = 0;
-+
-+ return FALSE;
-+}
-+
- static guint resume_bap(struct media_transport *transport,
- struct media_owner *owner)
- {
-@@ -1315,17 +1350,19 @@ static guint resume_bap(struct media_transport *transport,
-
- if (!bap->stream)
- return 0;
-+ if (bap->resume_id)
-+ return 0;
-
- bap_update_links(transport);
-
- switch (bt_bap_stream_get_state(bap->stream)) {
- case BT_BAP_STREAM_STATE_ENABLING:
- bap_enable_complete(bap->stream, 0x00, 0x00, owner);
-- if (owner->pending)
-- return owner->pending->id;
-- return 0;
-+ bap->resume_id = g_idle_add(bap_resume_wait_cb, transport);
-+ return bap->resume_id;
- case BT_BAP_STREAM_STATE_STREAMING:
-- return g_idle_add(resume_complete, transport);
-+ bap->resume_id = g_idle_add(bap_resume_complete_cb, transport);
-+ return bap->resume_id;
- }
-
- meta = bt_bap_stream_get_metadata(bap->stream);
-@@ -1389,6 +1426,12 @@ static void cancel_bap(struct media_transport *transport, guint id)
- {
- struct bap_transport *bap = transport->data;
-
-+ if (id == bap->resume_id && bap->resume_id) {
-+ g_source_remove(bap->resume_id);
-+ bap->resume_id = 0;
-+ return;
-+ }
-+
- if (!bap->stream)
- return;
-
-@@ -1491,7 +1534,7 @@ static void bap_state_changed(struct bt_bap_stream *stream, uint8_t old_state,
- transport_update_playing(transport, TRUE);
-
- done:
-- resume_complete(transport);
-+ bap_resume_complete(transport);
- }
-
- static void bap_connecting(struct bt_bap_stream *stream, bool state, int fd,
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-clang-midi.patch b/net-wireless/bluez/files/bluez-5.68-clang-midi.patch
deleted file mode 100644
index f62d9f395944..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-clang-midi.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From b9e93e01161cf5392f0cbea3400cfa2dae54643d Mon Sep 17 00:00:00 2001
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-Date: Mon, 17 Jul 2023 12:36:15 -0700
-Subject: midi: Fix build errors
-
-This fixes the following build errors:
-
-unit/test-midi.c:541:82: error: function definition is not allowed here
-void compare_events_cb(const struct midi_write_parser *parser,
- void *user_data) {
- ^
-unit/test-midi.c:587:17: error: use of undeclared identifier
-'compare_events_cb'; did you mean 'compare_events'?
- compare_events_cb, &midi_data);
- ^~~~~~~~~~~~~~~~~
- compare_events
-
-profiles/midi/midi.c:61:75: error: function definition is not allowed
-here
-void foreach_cb(const struct midi_write_parser *parser, void *user_data) {
- ^
-profiles/midi/midi.c:78:40: error: use of undeclared identifier 'foreach_cb'
- midi_read_ev(&midi->midi_out, event, foreach_cb, midi);
- ^
----
- profiles/midi/midi.c | 27 ++++++++++++++-------------
- 1 file changed, 14 insertions(+), 13 deletions(-)
-
-(limited to 'profiles/midi/midi.c')
-
-diff --git a/profiles/midi/midi.c b/profiles/midi/midi.c
-index 40064df3ae..bab309bca7 100644
---- a/profiles/midi/midi.c
-+++ b/profiles/midi/midi.c
-@@ -53,20 +53,21 @@ struct midi {
- struct midi_write_parser midi_out;
- };
-
-+static void foreach_cb(const struct midi_write_parser *parser, void *user_data)
-+{
-+ struct midi *midi = user_data;
-+
-+ bt_gatt_client_write_without_response(midi->client,
-+ midi->midi_io_handle, false,
-+ midi_write_data(parser),
-+ midi_write_data_size(parser));
-+}
-+
- static bool midi_write_cb(struct io *io, void *user_data)
- {
- struct midi *midi = user_data;
- int err;
-
-- void foreach_cb(const struct midi_write_parser *parser, void *user_data) {
-- struct midi *midi = user_data;
-- bt_gatt_client_write_without_response(midi->client,
-- midi->midi_io_handle,
-- false,
-- midi_write_data(parser),
-- midi_write_data_size(parser));
-- };
--
- do {
- snd_seq_event_t *event = NULL;
-
-@@ -81,10 +82,10 @@ static bool midi_write_cb(struct io *io, void *user_data)
-
- if (midi_write_has_data(&midi->midi_out))
- bt_gatt_client_write_without_response(midi->client,
-- midi->midi_io_handle,
-- false,
-- midi_write_data(&midi->midi_out),
-- midi_write_data_size(&midi->midi_out));
-+ midi->midi_io_handle,
-+ false,
-+ midi_write_data(&midi->midi_out),
-+ midi_write_data_size(&midi->midi_out));
-
- midi_write_reset(&midi->midi_out);
-
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-heap-use-after-free.patch b/net-wireless/bluez/files/bluez-5.68-heap-use-after-free.patch
deleted file mode 100644
index 3cc6733634a5..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-heap-use-after-free.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b741460688925448807c7532fe96182e4d32ec42 Mon Sep 17 00:00:00 2001
-From: Vlad Pruteanu <vlad.pruteanu@nxp.com>
-Date: Tue, 4 Jul 2023 08:56:43 +0300
-Subject: plugins/admin: Fix heap-use-after-free when using 2 controllers
-
-This commit fixes the heap-use-after-free error when connecting 2
-controllers. When a controller is connected
-admin_policy_adapter_probe is called. If policy_data was already
-allocated it gets freed, if not, it only gets allocated. Eventually
-add_interface is called. Here policy_data is put in the "data" variable
-(specific for each controller) and the process_changes task is called
-with idle priority. This function ultimately accesses policy_data from
-the "data" variable.
-
-When Bluez crashes the flow is:
-1)first controller is attached
-2)admin_policy_adapter_probe is called and policy_data is allocated
-4)second controller is attached
-5)admin_policy_adapter_probe is called and policy_data is freed, then
-allocated again
-6)process_changes runs and the policy_data for the first controller is
-read, but it was already freed, thus the crash
----
- plugins/admin.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/plugins/admin.c b/plugins/admin.c
-index 68e9237d3f..16b74cfbf0 100644
---- a/plugins/admin.c
-+++ b/plugins/admin.c
-@@ -502,7 +502,6 @@ static int admin_policy_adapter_probe(struct btd_adapter *adapter)
- if (policy_data) {
- btd_warn(policy_data->adapter_id,
- "Policy data already exists");
-- admin_policy_free(policy_data);
- policy_data = NULL;
- }
-
---
-cgit
-
diff --git a/net-wireless/bluez/files/bluez-5.68-monitor-decoding.patch b/net-wireless/bluez/files/bluez-5.68-monitor-decoding.patch
deleted file mode 100644
index 6d5c6306ccd3..000000000000
--- a/net-wireless/bluez/files/bluez-5.68-monitor-decoding.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f9557931ad361e08f1f1537ea670fedd1dd0138d Mon Sep 17 00:00:00 2001
-From: Claudia Draghicescu <claudia.rosu@nxp.com>
-Date: Tue, 4 Jul 2023 10:41:44 +0300
-Subject: monitor: Add decoding support for Sync Receiver events
-
-This commit adds decoding support for PA Sync Established,
-BIG Sync Established and BIG Sync Lost events.
----
- lib/mgmt.h | 3 +++
- monitor/packet.c | 5 +++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/lib/mgmt.h b/lib/mgmt.h
-index 062fa02712..8f92b77315 100644
---- a/lib/mgmt.h
-+++ b/lib/mgmt.h
-@@ -1238,6 +1238,9 @@ static const char *mgmt_ev[] = {
- "Advertisement Monitor Device Lost",
- "Mesh Packet Found",
- "Mesh Packet Complete",
-+ "PA Sync Established",
-+ "BIG Sync Established",
-+ "BIG Sync Lost",
- };
-
- static const char *mgmt_status[] = {
-diff --git a/monitor/packet.c b/monitor/packet.c
-index a871c7f272..f2167fb52a 100644
---- a/monitor/packet.c
-+++ b/monitor/packet.c
-@@ -3093,6 +3093,11 @@ static const struct bitfield_data events_le_table[] = {
- { 27, "LE Terminate BIG Complete" },
- { 28, "LE BIG Sync Estabilished Complete" },
- { 29, "LE BIG Sync Lost" },
-+ { 30, "LE Request Peer SCA Complete"},
-+ { 31, "LE Path Loss Threshold" },
-+ { 32, "LE Transmit Power Reporting" },
-+ { 33, "LE BIG Info Advertising Report" },
-+ { 34, "LE Subrate Change" },
- { }
- };
-
---
-cgit
-
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2023-12-21 9:23 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2023-12-21 9:23 UTC (permalink / raw
To: gentoo-commits
commit: 908539cda2d09793344370cd12b06e3adc5419b2
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 21 09:22:41 2023 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Dec 21 09:23:03 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=908539cd
net-wireless/bluez: Fix auto-connect with older kernels
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.71-r1.ebuild | 288 +++++++++++++++++++++
.../bluez/files/bluez-5.71-link-old-kernels.patch | 163 ++++++++++++
2 files changed, 451 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.71-r1.ebuild b/net-wireless/bluez/bluez-5.71-r1.ebuild
new file mode 100644
index 000000000000..c7392ed1615f
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.71-r1.ebuild
@@ -0,0 +1,288 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..12} )
+
+inherit autotools 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-172 )
+"
+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
+
+ # Fedora patches
+ # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
+ "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
+
+ # https://github.com/bluez/bluez/issues/686
+ "${FILESDIR}"/${P}-link-old-kernels.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
+
+ # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
+ if ! use systemd; then
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+ fi
+
+ eautoreconf
+
+ if use cups; then
+ # Only not .am to not need to run eautoreconf only because of this
+ sed -i \
+ -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
+ Makefile.{in,tools} || die
+ fi
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+}
+
+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
+}
diff --git a/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch b/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch
new file mode 100644
index 000000000000..33cee137f277
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch
@@ -0,0 +1,163 @@
+From 7ad5669402c9acff8e4cc808edc12a41df36654e Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Wed, 20 Dec 2023 12:20:03 -0500
+Subject: [PATCH] adapter: Fix link key address type for old kernels
+
+On old kernels only BDADDR_BREDR is supported so this attempts to detect
+that and retry.
+
+Fixes: https://github.com/bluez/bluez/issues/686
+---
+ src/adapter.c | 59 ++++++++++++++++++++++++++++++++++++++-------------
+ 1 file changed, 44 insertions(+), 15 deletions(-)
+
+diff --git a/src/adapter.c b/src/adapter.c
+index ee70b00d2..022390f0d 100644
+--- a/src/adapter.c
++++ b/src/adapter.c
+@@ -311,6 +311,7 @@ struct btd_adapter {
+ bool pincode_requested; /* PIN requested during last bonding */
+ GSList *connections; /* Connected devices */
+ GSList *devices; /* Devices structure pointers */
++ GSList *load_keys; /* Devices keys to be loaded */
+ GSList *connect_list; /* Devices to connect when found */
+ struct btd_device *connect_le; /* LE device waiting to be connected */
+ sdp_list_t *services; /* Services associated to adapter */
+@@ -4284,6 +4285,9 @@ static int set_privacy(struct btd_adapter *adapter, uint8_t privacy)
+ return -1;
+ }
+
++static void load_link_keys(struct btd_adapter *adapter, bool debug_keys,
++ bool retry);
++
+ static void load_link_keys_complete(uint8_t status, uint16_t length,
+ const void *param, void *user_data)
+ {
+@@ -4293,18 +4297,31 @@ static void load_link_keys_complete(uint8_t status, uint16_t length,
+ btd_error(adapter->dev_id,
+ "Failed to load link keys for hci%u: %s (0x%02x)",
+ adapter->dev_id, mgmt_errstr(status), status);
++
++ if (status == MGMT_STATUS_INVALID_PARAMS) {
++ load_link_keys(adapter, btd_opts.debug_keys, true);
++ /* Release keys after retry since we shall only retry
++ * once.
++ */
++ goto done;
++ }
++
+ return;
+ }
+
+ DBG("link keys loaded for hci%u", adapter->dev_id);
++
++done:
++ g_slist_free_full(adapter->load_keys, g_free);
++ adapter->load_keys = NULL;
+ }
+
+-static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
+- bool debug_keys)
++static void load_link_keys(struct btd_adapter *adapter, bool debug_keys,
++ bool retry)
+ {
+ struct mgmt_cp_load_link_keys *cp;
+ struct mgmt_link_key_info *key;
+- size_t key_count, cp_size;
++ size_t count, cp_size;
+ unsigned int id;
+ GSList *l;
+
+@@ -4318,12 +4335,14 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
+ if (!(adapter->supported_settings & MGMT_SETTING_BREDR))
+ return;
+
+- key_count = g_slist_length(keys);
++ count = g_slist_length(adapter->load_keys);
++ if (!count)
++ return;
+
+- DBG("hci%u keys %zu debug_keys %d", adapter->dev_id, key_count,
+- debug_keys);
++ DBG("hci%u keys %zu debug_keys %d retry %s", adapter->dev_id, count,
++ debug_keys, retry ? "true" : "false");
+
+- cp_size = sizeof(*cp) + (key_count * sizeof(*key));
++ cp_size = sizeof(*cp) + (count * sizeof(*key));
+
+ cp = g_try_malloc0(cp_size);
+ if (cp == NULL) {
+@@ -4341,13 +4360,18 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
+ * behavior for debug keys.
+ */
+ cp->debug_keys = debug_keys;
+- cp->key_count = htobs(key_count);
++ cp->key_count = htobs(count);
+
+- for (l = keys, key = cp->keys; l != NULL; l = g_slist_next(l), key++) {
++ for (l = adapter->load_keys, key = cp->keys; l != NULL;
++ l = g_slist_next(l), key++) {
+ struct link_key_info *info = l->data;
+
+ bacpy(&key->addr.bdaddr, &info->bdaddr);
+- key->addr.type = info->bdaddr_type;
++ /* Old kernels might only support loading with type set to
++ * BDADDR_BREDR so on retry set that instead of using the stored
++ * info.
++ */
++ key->addr.type = retry ? BDADDR_BREDR : info->bdaddr_type;
+ key->type = info->type;
+ memcpy(key->val, info->key, 16);
+ key->pin_len = info->pin_len;
+@@ -4359,9 +4383,12 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
+
+ g_free(cp);
+
+- if (id == 0)
++ if (id == 0) {
+ btd_error(adapter->dev_id, "Failed to load link keys for hci%u",
+ adapter->dev_id);
++ g_slist_free_full(adapter->load_keys, g_free);
++ adapter->load_keys = NULL;
++ }
+ }
+
+ static void load_ltks_complete(uint8_t status, uint16_t length,
+@@ -4873,7 +4900,6 @@ static void load_defaults(struct btd_adapter *adapter)
+ static void load_devices(struct btd_adapter *adapter)
+ {
+ char dirname[PATH_MAX];
+- GSList *keys = NULL;
+ GSList *ltks = NULL;
+ GSList *irks = NULL;
+ GSList *params = NULL;
+@@ -4964,7 +4990,8 @@ static void load_devices(struct btd_adapter *adapter)
+ }
+
+ if (key_info)
+- keys = g_slist_append(keys, key_info);
++ adapter->load_keys = g_slist_append(adapter->load_keys,
++ key_info);
+
+ if (ltk_info)
+ ltks = g_slist_append(ltks, ltk_info);
+@@ -5013,8 +5040,7 @@ static void load_devices(struct btd_adapter *adapter)
+
+ closedir(dir);
+
+- load_link_keys(adapter, keys, btd_opts.debug_keys);
+- g_slist_free_full(keys, g_free);
++ load_link_keys(adapter, btd_opts.debug_keys, false);
+
+ load_ltks(adapter, ltks);
+ g_slist_free_full(ltks, g_free);
+@@ -6930,6 +6956,9 @@ static void adapter_remove(struct btd_adapter *adapter)
+ g_slist_free(adapter->devices);
+ adapter->devices = NULL;
+
++ g_slist_free(adapter->load_keys);
++ adapter->load_keys = NULL;
++
+ discovery_cleanup(adapter, 0);
+
+ unload_drivers(adapter);
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2024-03-07 14:28 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2024-03-07 14:28 UTC (permalink / raw
To: gentoo-commits
commit: b9ff9d632b84c905da6334a0dcf26a5c5180c043
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 7 14:28:26 2024 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Thu Mar 7 14:28:26 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9ff9d63
net-wireless/bluez: drop 5.70-r1, 5.71-r1
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 2 -
net-wireless/bluez/bluez-5.70-r1.ebuild | 288 ---------------------
net-wireless/bluez/bluez-5.71-r1.ebuild | 288 ---------------------
.../bluez/files/bluez-5.70-CVE-2023-45866.patch | 43 ---
.../bluez/files/bluez-5.71-link-old-kernels.patch | 163 ------------
5 files changed, 784 deletions(-)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index ad631202f4f3..016cfdbb5deb 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,3 +1 @@
-DIST bluez-5.70.tar.xz 2339844 BLAKE2B 1ba2ddd3bfc6562a07f4e8376e0d537b555f0d36a221f051c4c10dd912c23e73aa2b0d8aa125e0fd911908e4cfa0036429e17250a26b3298bb21f65e4cc5255c SHA512 3a5f8caf7730dcdbbe0bb92154b41651a9d6619038447bf4c25e5e3e5316effcd7242a7a0456d731ce21d55b8daea5212a359acc5e5fc460499b9356b7d364cf
-DIST bluez-5.71.tar.xz 2381208 BLAKE2B 73e5f08771f821c90a70c553c600c48c4f1adb85aa9cb1a1eaae61a33b2dda73b7825fe769b3ea1daaaadedc39ad3fb71d84b336408f5ce6963f0373e9f7dcce SHA512 648394bbe470405aa0e2d3914474e95c122f567deaaac20a5dd74bac29fa430dfb64cdb7bdb4fb7510e62fa73e96112a97197fc212b421bf480b8d1bb24cfb5d
DIST bluez-5.72.tar.xz 2390792 BLAKE2B b5d1bc290c9bad5aa32de16433c34d0ac5aed7164077ef941a0bf90eddc5e22a6cf19f972bcae33061b41e3c344f7abeb65a11b6013c13fd53059ac93d83240a SHA512 1c6560f60ac0654d7c25ed8ab2f0f3a3a9ca8688ee28e1c476ffc7ae38737e739d27bbb88789c86b03fc600a8a68496d90a7b395ec393dd2bbf69be62357991a
diff --git a/net-wireless/bluez/bluez-5.70-r1.ebuild b/net-wireless/bluez/bluez-5.70-r1.ebuild
deleted file mode 100644
index 2595b6e1428f..000000000000
--- a/net-wireless/bluez/bluez-5.70-r1.ebuild
+++ /dev/null
@@ -1,288 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
-
-inherit autotools 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-172 )
-"
-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
-
- # Fedora patches
- # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
- "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
-
- # Backport CVE-2023-45866 fix (bug #919383)
- "${FILESDIR}"/${PN}-5.70-CVE-2023-45866.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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
-}
-
-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
-}
diff --git a/net-wireless/bluez/bluez-5.71-r1.ebuild b/net-wireless/bluez/bluez-5.71-r1.ebuild
deleted file mode 100644
index c7392ed1615f..000000000000
--- a/net-wireless/bluez/bluez-5.71-r1.ebuild
+++ /dev/null
@@ -1,288 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
-
-inherit autotools 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-172 )
-"
-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
-
- # Fedora patches
- # https://lore.kernel.org/linux-bluetooth/20220901110719.176944-1-hadess@hadess.net/T/#m9c08d004cd5422783ee1d93154f42303bba9169f
- "${FILESDIR}"/${PN}-5.66-power-state-adapter-property.patch
-
- # https://github.com/bluez/bluez/issues/686
- "${FILESDIR}"/${P}-link-old-kernels.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
-
- # http://www.spinics.net/lists/linux-bluetooth/msg38490.html
- if ! use systemd; then
- eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
- fi
-
- eautoreconf
-
- if use cups; then
- # Only not .am to not need to run eautoreconf only because of this
- sed -i \
- -e "s:cupsdir = \$(libdir)/cups:cupsdir = $(cups-config --serverbin):" \
- Makefile.{in,tools} || die
- fi
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- 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
-
- keepdir /var/lib/bluetooth
-
- # Upstream don't want people to play with them
- # But we keep installing them due to 'historical' reasons
- insinto /etc/bluetooth
- local d
- for d in input network; do
- doins profiles/${d}/${d}.conf
- done
- # Setup auto enable as Fedora does for allowing to use
- # keyboards/mouse as soon as possible
- sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
- doins src/main.conf
-
- newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
- newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
-
- einstalldocs
- use doc && dodoc doc/*.txt
-}
-
-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
-}
diff --git a/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch b/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch
deleted file mode 100644
index 6e5ac253585c..000000000000
--- a/net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-https://bugs.gentoo.org/919383
-https://git.kernel.org/pub/scm/bluetooth/bluez.git/commit/?id=25a471a83e02e1effb15d5a488b3f0085eaeb675
-
-From 25a471a83e02e1effb15d5a488b3f0085eaeb675 Mon Sep 17 00:00:00 2001
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-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].
---- 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)
- {
---- 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/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch b/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch
deleted file mode 100644
index 33cee137f277..000000000000
--- a/net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 7ad5669402c9acff8e4cc808edc12a41df36654e Mon Sep 17 00:00:00 2001
-From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
-Date: Wed, 20 Dec 2023 12:20:03 -0500
-Subject: [PATCH] adapter: Fix link key address type for old kernels
-
-On old kernels only BDADDR_BREDR is supported so this attempts to detect
-that and retry.
-
-Fixes: https://github.com/bluez/bluez/issues/686
----
- src/adapter.c | 59 ++++++++++++++++++++++++++++++++++++++-------------
- 1 file changed, 44 insertions(+), 15 deletions(-)
-
-diff --git a/src/adapter.c b/src/adapter.c
-index ee70b00d2..022390f0d 100644
---- a/src/adapter.c
-+++ b/src/adapter.c
-@@ -311,6 +311,7 @@ struct btd_adapter {
- bool pincode_requested; /* PIN requested during last bonding */
- GSList *connections; /* Connected devices */
- GSList *devices; /* Devices structure pointers */
-+ GSList *load_keys; /* Devices keys to be loaded */
- GSList *connect_list; /* Devices to connect when found */
- struct btd_device *connect_le; /* LE device waiting to be connected */
- sdp_list_t *services; /* Services associated to adapter */
-@@ -4284,6 +4285,9 @@ static int set_privacy(struct btd_adapter *adapter, uint8_t privacy)
- return -1;
- }
-
-+static void load_link_keys(struct btd_adapter *adapter, bool debug_keys,
-+ bool retry);
-+
- static void load_link_keys_complete(uint8_t status, uint16_t length,
- const void *param, void *user_data)
- {
-@@ -4293,18 +4297,31 @@ static void load_link_keys_complete(uint8_t status, uint16_t length,
- btd_error(adapter->dev_id,
- "Failed to load link keys for hci%u: %s (0x%02x)",
- adapter->dev_id, mgmt_errstr(status), status);
-+
-+ if (status == MGMT_STATUS_INVALID_PARAMS) {
-+ load_link_keys(adapter, btd_opts.debug_keys, true);
-+ /* Release keys after retry since we shall only retry
-+ * once.
-+ */
-+ goto done;
-+ }
-+
- return;
- }
-
- DBG("link keys loaded for hci%u", adapter->dev_id);
-+
-+done:
-+ g_slist_free_full(adapter->load_keys, g_free);
-+ adapter->load_keys = NULL;
- }
-
--static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
-- bool debug_keys)
-+static void load_link_keys(struct btd_adapter *adapter, bool debug_keys,
-+ bool retry)
- {
- struct mgmt_cp_load_link_keys *cp;
- struct mgmt_link_key_info *key;
-- size_t key_count, cp_size;
-+ size_t count, cp_size;
- unsigned int id;
- GSList *l;
-
-@@ -4318,12 +4335,14 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
- if (!(adapter->supported_settings & MGMT_SETTING_BREDR))
- return;
-
-- key_count = g_slist_length(keys);
-+ count = g_slist_length(adapter->load_keys);
-+ if (!count)
-+ return;
-
-- DBG("hci%u keys %zu debug_keys %d", adapter->dev_id, key_count,
-- debug_keys);
-+ DBG("hci%u keys %zu debug_keys %d retry %s", adapter->dev_id, count,
-+ debug_keys, retry ? "true" : "false");
-
-- cp_size = sizeof(*cp) + (key_count * sizeof(*key));
-+ cp_size = sizeof(*cp) + (count * sizeof(*key));
-
- cp = g_try_malloc0(cp_size);
- if (cp == NULL) {
-@@ -4341,13 +4360,18 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
- * behavior for debug keys.
- */
- cp->debug_keys = debug_keys;
-- cp->key_count = htobs(key_count);
-+ cp->key_count = htobs(count);
-
-- for (l = keys, key = cp->keys; l != NULL; l = g_slist_next(l), key++) {
-+ for (l = adapter->load_keys, key = cp->keys; l != NULL;
-+ l = g_slist_next(l), key++) {
- struct link_key_info *info = l->data;
-
- bacpy(&key->addr.bdaddr, &info->bdaddr);
-- key->addr.type = info->bdaddr_type;
-+ /* Old kernels might only support loading with type set to
-+ * BDADDR_BREDR so on retry set that instead of using the stored
-+ * info.
-+ */
-+ key->addr.type = retry ? BDADDR_BREDR : info->bdaddr_type;
- key->type = info->type;
- memcpy(key->val, info->key, 16);
- key->pin_len = info->pin_len;
-@@ -4359,9 +4383,12 @@ static void load_link_keys(struct btd_adapter *adapter, GSList *keys,
-
- g_free(cp);
-
-- if (id == 0)
-+ if (id == 0) {
- btd_error(adapter->dev_id, "Failed to load link keys for hci%u",
- adapter->dev_id);
-+ g_slist_free_full(adapter->load_keys, g_free);
-+ adapter->load_keys = NULL;
-+ }
- }
-
- static void load_ltks_complete(uint8_t status, uint16_t length,
-@@ -4873,7 +4900,6 @@ static void load_defaults(struct btd_adapter *adapter)
- static void load_devices(struct btd_adapter *adapter)
- {
- char dirname[PATH_MAX];
-- GSList *keys = NULL;
- GSList *ltks = NULL;
- GSList *irks = NULL;
- GSList *params = NULL;
-@@ -4964,7 +4990,8 @@ static void load_devices(struct btd_adapter *adapter)
- }
-
- if (key_info)
-- keys = g_slist_append(keys, key_info);
-+ adapter->load_keys = g_slist_append(adapter->load_keys,
-+ key_info);
-
- if (ltk_info)
- ltks = g_slist_append(ltks, ltk_info);
-@@ -5013,8 +5040,7 @@ static void load_devices(struct btd_adapter *adapter)
-
- closedir(dir);
-
-- load_link_keys(adapter, keys, btd_opts.debug_keys);
-- g_slist_free_full(keys, g_free);
-+ load_link_keys(adapter, btd_opts.debug_keys, false);
-
- load_ltks(adapter, ltks);
- g_slist_free_full(ltks, g_free);
-@@ -6930,6 +6956,9 @@ static void adapter_remove(struct btd_adapter *adapter)
- g_slist_free(adapter->devices);
- adapter->devices = NULL;
-
-+ g_slist_free(adapter->load_keys);
-+ adapter->load_keys = NULL;
-+
- discovery_cleanup(adapter, 0);
-
- unload_drivers(adapter);
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2024-03-25 18:45 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2024-03-25 18:45 UTC (permalink / raw
To: gentoo-commits
commit: b9883b6871c36f7b6b2f717aec8d00d8ea71549c
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 25 18:44:48 2024 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Mon Mar 25 18:45:00 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9883b68
net-wireless/bluez: add 5.73
Thanks-to: Sam James
Thanks-to: Lars Wendler
Closes: https://bugs.gentoo.org/927791
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/Manifest | 1 +
net-wireless/bluez/bluez-5.73.ebuild | 271 +++++++++++++++++++++
.../bluez/files/bluez-5.73-configure-cups.patch | 35 +++
3 files changed, 307 insertions(+)
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index 016cfdbb5deb..4f894bc5d6dd 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1 +1,2 @@
DIST bluez-5.72.tar.xz 2390792 BLAKE2B b5d1bc290c9bad5aa32de16433c34d0ac5aed7164077ef941a0bf90eddc5e22a6cf19f972bcae33061b41e3c344f7abeb65a11b6013c13fd53059ac93d83240a SHA512 1c6560f60ac0654d7c25ed8ab2f0f3a3a9ca8688ee28e1c476ffc7ae38737e739d27bbb88789c86b03fc600a8a68496d90a7b395ec393dd2bbf69be62357991a
+DIST bluez-5.73.tar.xz 2408088 BLAKE2B 69c5b8c23039108403631da86c29d62869f2311bb34eeb471779fae094bbf8738193389fb8792b779b10eaeca5b02723c86f2b98c435bbd2c23a3d317df76070 SHA512 20090da036d3d614706b14a757b02acf138859d8f0476aa7f68d57635dfb3632ce7d8bb3456320904d72333d1314a5fe14dcb8ece307e6d31ce6d2d516de25e8
diff --git a/net-wireless/bluez/bluez-5.73.ebuild b/net-wireless/bluez/bluez-5.73.ebuild
new file mode 100644
index 000000000000..f71af719302f
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.73.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..12} )
+
+inherit autotools 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
+)
+
+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/773
+ eapply "${FILESDIR}"/${P}-configure-cups.patch
+ eautoreconf
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+}
+
+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
+}
diff --git a/net-wireless/bluez/files/bluez-5.73-configure-cups.patch b/net-wireless/bluez/files/bluez-5.73-configure-cups.patch
new file mode 100644
index 000000000000..1ab1f96915ee
--- /dev/null
+++ b/net-wireless/bluez/files/bluez-5.73-configure-cups.patch
@@ -0,0 +1,35 @@
+From b2237fe8efed9aee25a46934f028373cd0632daa Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gmx.de>
+Date: Fri, 22 Mar 2024 09:08:24 +0100
+Subject: [PATCH] configure.ac: Fix --disable-cups
+
+or else we get:
+ configure: error: conditional "CUPS_SERVERBIN" was never defined.
+ Usually this means the macro was only invoked conditionally.
+
+Fixes: #773
+---
+ configure.ac | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9ebc250cf..047ec1a7f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -249,12 +249,12 @@ AM_CONDITIONAL(CUPS, test "${enable_cups}" != "no")
+ if (test "${enable_cups}" != "no"); then
+ AC_MSG_CHECKING([cups directory])
+ cups_serverbin=`$PKG_CONFIG cups --variable=cups_serverbin`
+- AM_CONDITIONAL(CUPS_SERVERBIN, test "${cups_serverbin}" != "")
+- if (test "${cups_serverbin}" != ""); then
+- AC_SUBST(CUPS_SERVERBIN, ${cups_serverbin})
+- fi
+ AC_MSG_RESULT([${cups_serverbin}])
+ fi
++AM_CONDITIONAL(CUPS_SERVERBIN, test "${cups_serverbin}" != "")
++AS_IF([test "${cups_serverbin}" != ""],[
++ AC_SUBST(CUPS_SERVERBIN, ${cups_serverbin})
++])
+
+ AC_ARG_ENABLE(mesh, AS_HELP_STRING([--enable-mesh],
+ [enable Mesh profile support]), [enable_mesh=${enableval}])
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/
@ 2024-04-07 16:06 Pacho Ramos
0 siblings, 0 replies; 22+ messages in thread
From: Pacho Ramos @ 2024-04-07 16:06 UTC (permalink / raw
To: gentoo-commits
commit: 417b23a120e91255efb3c5342bef6bdf1f370fba
Author: Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 7 16:06:12 2024 +0000
Commit: Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sun Apr 7 16:06:12 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=417b23a1
net-wireless/bluez: Fix obex dbus file installation on non-systemd systems
Thanks-to: Andreas Fink
Closes: https://bugs.gentoo.org/928417
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>
net-wireless/bluez/bluez-5.73-r1.ebuild | 278 +++++++++++++++++++++
...xd-without-systemd-in-the-user-session-r3.patch | 20 ++
2 files changed, 298 insertions(+)
diff --git a/net-wireless/bluez/bluez-5.73-r1.ebuild b/net-wireless/bluez/bluez-5.73-r1.ebuild
new file mode 100644
index 000000000000..d67e578fb3ef
--- /dev/null
+++ b/net-wireless/bluez/bluez-5.73-r1.ebuild
@@ -0,0 +1,278 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{9..12} )
+
+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
+)
+
+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/773
+ eapply "${FILESDIR}"/${P}-configure-cups.patch
+
+ # 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
+
+ keepdir /var/lib/bluetooth
+
+ # Upstream don't want people to play with them
+ # But we keep installing them due to 'historical' reasons
+ insinto /etc/bluetooth
+ local d
+ for d in input network; do
+ doins profiles/${d}/${d}.conf
+ done
+ # Setup auto enable as Fedora does for allowing to use
+ # keyboards/mouse as soon as possible
+ sed -i 's/#\[Policy\]$/\[Policy\]/; s/#AutoEnable=false/AutoEnable=true/' src/main.conf || die
+ doins src/main.conf
+
+ newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
+ newconfd "${FILESDIR}"/bluetooth-conf.d bluetooth
+
+ einstalldocs
+ use doc && dodoc doc/*.txt
+}
+
+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
+}
diff --git a/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch b/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch
new file mode 100644
index 000000000000..bb4c838b9545
--- /dev/null
+++ b/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch
@@ -0,0 +1,20 @@
+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
^ permalink raw reply related [flat|nested] 22+ messages in thread
end of thread, other threads:[~2024-04-07 16:06 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-07 16:06 [gentoo-commits] repo/gentoo:master commit in: net-wireless/bluez/files/, net-wireless/bluez/ Pacho Ramos
-- strict thread matches above, loose matches on Subject: below --
2024-03-25 18:45 Pacho Ramos
2024-03-07 14:28 Pacho Ramos
2023-12-21 9:23 Pacho Ramos
2023-12-16 9:15 Pacho Ramos
2023-12-09 18:11 Sam James
2022-12-04 14:50 Pacho Ramos
2022-01-16 9:38 Pacho Ramos
2021-10-19 21:19 Pacho Ramos
2021-07-25 9:01 Pacho Ramos
2021-06-23 7:53 Pacho Ramos
2021-06-22 16:17 Pacho Ramos
2021-03-22 21:16 Pacho Ramos
2019-10-20 11:39 Pacho Ramos
2019-09-29 11:01 Pacho Ramos
2019-06-10 11:23 Pacho Ramos
2019-01-19 8:56 Pacho Ramos
2018-05-23 18:52 Pacho Ramos
2017-09-24 21:26 Pacho Ramos
2017-09-14 17:23 Patrick McLean
2017-02-04 15:20 Pacho Ramos
2016-02-12 8:50 Jeroen Roovers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox