summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-wireless/bluez')
-rw-r--r--net-wireless/bluez/Manifest5
-rw-r--r--net-wireless/bluez/bluez-5.70-r1.ebuild288
-rw-r--r--net-wireless/bluez/bluez-5.76-r1.ebuild (renamed from net-wireless/bluez/bluez-5.72.ebuild)48
-rw-r--r--net-wireless/bluez/bluez-5.77.ebuild (renamed from net-wireless/bluez/bluez-5.71-r1.ebuild)52
-rw-r--r--net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch58
-rw-r--r--net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch20
-rw-r--r--net-wireless/bluez/files/bluez-5.66-power-state-adapter-property.patch28
-rw-r--r--net-wireless/bluez/files/bluez-5.70-CVE-2023-45866.patch43
-rw-r--r--net-wireless/bluez/files/bluez-5.71-link-old-kernels.patch163
-rw-r--r--net-wireless/bluez/files/bluez-5.73-configure-cups.patch35
10 files changed, 98 insertions, 642 deletions
diff --git a/net-wireless/bluez/Manifest b/net-wireless/bluez/Manifest
index ad631202f4f3..2689f4ae77d7 100644
--- a/net-wireless/bluez/Manifest
+++ b/net-wireless/bluez/Manifest
@@ -1,3 +1,2 @@
-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
+DIST bluez-5.76.tar.xz 2418848 BLAKE2B 658e67ec3ac568fd4d8bdc434eabfc63fd8cddd287f7cf6a8967771673e79fe95c509be654ae2495d1b3aedb1e23ca710d545f5ded281a64fd44058b0cdf7afe SHA512 30dc3faef74a2225fd6027178376dca4166082d1ed5188021e13d13582db5846aef60b753f173d525bfd0c040f26c3e7dab0283ecafbd34c4a06855d13abb389
+DIST bluez-5.77.tar.xz 2432176 BLAKE2B 9c1a8c78ad11a79080af12333338a6b75189ac51f8c49545de9eede8544fea531a7d8f50676f6e26c84289828fe8327bbc3e5b50ad4d9c08822cf0353a82ecaf SHA512 cf0faba4ddbfe6cc3c2d86cbd809483ed82327cbd7e4970ef53cf19053de7b355a505cab88844aebe7a6aa1947ec7a366250d3cbf48cf309db413d287289ff99
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.72.ebuild b/net-wireless/bluez/bluez-5.76-r1.ebuild
index f0b3b12d187c..47eb7a23592b 100644
--- a/net-wireless/bluez/bluez-5.72.ebuild
+++ b/net-wireless/bluez/bluez-5.76-r1.ebuild
@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..12} )
-inherit autotools linux-info python-single-r1 systemd udev multilib-minimal #readme.gentoo-r1
+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"
@@ -12,7 +12,7 @@ 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"
+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
@@ -51,7 +51,7 @@ DEPEND="
readline? ( sys-libs/readline:0= )
systemd? ( sys-apps/systemd )
>=sys-apps/dbus-1.6:=
- udev? ( >=virtual/udev-172 )
+ udev? ( >=virtual/udev-196 )
"
RDEPEND="${DEPEND}
selinux? ( sec-policy/selinux-bluetooth )
@@ -66,10 +66,6 @@ PATCHES=(
# 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() {
@@ -104,24 +100,21 @@ pkg_setup() {
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
+ # https://github.com/bluez/bluez/issues/773
+ eapply "${FILESDIR}"/${PN}-5.73-configure-cups.patch
- eautoreconf
+ # https://github.com/bluez/bluez/issues/806
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch
- 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
+ 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
@@ -252,18 +245,10 @@ multilib_src_install_all() {
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
+ insinto /etc/bluetooth
doins src/main.conf
newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
@@ -271,6 +256,15 @@ multilib_src_install_all() {
einstalldocs
use doc && dodoc doc/*.txt
+
+ # https://bugs.gentoo.org/929017
+ fperms 0555 /etc/bluetooth
+
+ # https://bugs.gentoo.org/932172
+ if ! use systemd; then
+ keepdir /var/lib/bluetooth
+ fperms 0700 /var/lib/bluetooth
+ fi
}
pkg_postinst() {
diff --git a/net-wireless/bluez/bluez-5.71-r1.ebuild b/net-wireless/bluez/bluez-5.77.ebuild
index c7392ed1615f..3472b07914c7 100644
--- a/net-wireless/bluez/bluez-5.71-r1.ebuild
+++ b/net-wireless/bluez/bluez-5.77.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{9..12} )
+PYTHON_COMPAT=( python3_{9..13} )
-inherit autotools linux-info python-single-r1 systemd udev multilib-minimal #readme.gentoo-r1
+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"
@@ -51,7 +51,7 @@ DEPEND="
readline? ( sys-libs/readline:0= )
systemd? ( sys-apps/systemd )
>=sys-apps/dbus-1.6:=
- udev? ( >=virtual/udev-172 )
+ udev? ( >=virtual/udev-196 )
"
RDEPEND="${DEPEND}
selinux? ( sec-policy/selinux-bluetooth )
@@ -66,13 +66,6 @@ PATCHES=(
# 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() {
@@ -107,24 +100,18 @@ pkg_setup() {
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
+ # https://github.com/bluez/bluez/issues/806
+ eapply "${FILESDIR}"/0001-Allow-using-obexd-without-systemd-in-the-user-session-r3.patch
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() {
+ # 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
@@ -255,18 +242,9 @@ multilib_src_install_all() {
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
+ insinto /etc/bluetooth
doins src/main.conf
newinitd "${FILESDIR}"/bluetooth-init.d-r5 bluetooth
@@ -274,6 +252,16 @@ multilib_src_install_all() {
einstalldocs
use doc && dodoc doc/*.txt
+
+ # https://bugs.gentoo.org/929017
+ # https://github.com/bluez/bluez/issues/329#issuecomment-1102459104
+ fperms 0555 /etc/bluetooth
+
+ # https://bugs.gentoo.org/932172
+ if ! use systemd; then
+ keepdir /var/lib/bluetooth
+ fperms 0700 /var/lib/bluetooth
+ fi
}
pkg_postinst() {
diff --git a/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch b/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
deleted file mode 100644
index dcebaa007bc1..000000000000
--- a/net-wireless/bluez/files/0001-Allow-using-obexd-without-systemd-in-the-user-session-r2.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 3027cb7141fb65cf3eeda69c688db8c4045e2d3f Mon Sep 17 00:00:00 2001
-From: Giovanni Campagna <gcampagna-cNUdlRotFMnNLxjTenLetw@public.gmane.org>
-Date: Sat, 12 Oct 2013 17:45:25 +0200
-Subject: [PATCH] Allow using obexd without systemd in the user session
-
-Not all sessions run systemd --user (actually, the majority
-doesn't), so the dbus daemon must be able to spawn obexd
-directly, and to do so it needs the full path of the daemon.
----
- Makefile.obexd | 4 ++--
- obexd/src/org.bluez.obex.service | 4 ----
- obexd/src/org.bluez.obex.service.in | 4 ++++
- 3 files changed, 6 insertions(+), 6 deletions(-)
- delete mode 100644 obexd/src/org.bluez.obex.service
- create mode 100644 obexd/src/org.bluez.obex.service.in
-
-diff --git a/Makefile.obexd b/Makefile.obexd
-index 3760867..142e7c3 100644
---- a/Makefile.obexd
-+++ b/Makefile.obexd
-@@ -2,12 +2,12 @@
- if SYSTEMD
- systemduserunitdir = $(SYSTEMD_USERUNITDIR)
- systemduserunit_DATA = obexd/src/obex.service
-+endif
-
- dbussessionbusdir = $(DBUS_SESSIONBUSDIR)
- dbussessionbus_DATA = obexd/src/org.bluez.obex.service
--endif
-
--EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service
-+EXTRA_DIST += obexd/src/obex.service.in obexd/src/org.bluez.obex.service.in
-
- obex_plugindir = $(libdir)/obex/plugins
-
-diff --git a/obexd/src/org.bluez.obex.service b/obexd/src/org.bluez.obex.service
-deleted file mode 100644
-index a538088..0000000
---- a/obexd/src/org.bluez.obex.service
-+++ /dev/null
-@@ -1,4 +0,0 @@
--[D-BUS Service]
--Name=org.bluez.obex
--Exec=/bin/false
--SystemdService=dbus-org.bluez.obex.service
-diff --git a/obexd/src/org.bluez.obex.service.in b/obexd/src/org.bluez.obex.service.in
-new file mode 100644
-index 0000000..9c815f2
---- /dev/null
-+++ b/obexd/src/org.bluez.obex.service.in
-@@ -0,0 +1,4 @@
-+[D-BUS Service]
-+Name=org.bluez.obex
-+Exec=@pkglibexecdir@/obexd
-+SystemdService=dbus-org.bluez.obex.service
---
-1.8.3.1
-
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
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
deleted file mode 100644
index 566d7c08b591..000000000000
--- a/net-wireless/bluez/files/bluez-5.66-power-state-adapter-property.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-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.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);
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}])