f9c7ffa9b6
PulseAudio is used for handling all audio on postmarketOS. This also involves Bluetooth audio such as A2DP, HSP and HFP audio. In the case of HFP/HSP, the HF and AG can interact with each other through AT commands defined in the Bluetooth HFP 1.8 spec. This set of patches implements HFP support to allow Bluetooth devices to accept/reject/hangup calls, dial numbers, DTMF tone generation, query signal strength, roaming status, service status, AG battery level, call status, etc. More details in the upstream MR: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/693 Available in edge for testing this merge request with a broader user base. Not intended for backporting to stable branches. [ci:skip-build]: already built successfully in CI
288 lines
11 KiB
Text
288 lines
11 KiB
Text
# Forked from Alpine for enhanced Bluetooth HFP support
|
|
|
|
pkgname=pulseaudio
|
|
pkgver=9999_git20220528
|
|
_pkgver=16.0
|
|
pkgrel=0
|
|
pkgdesc="featureful, general-purpose sound server"
|
|
provider_priority=10
|
|
url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
|
|
arch="all"
|
|
license="LGPL-2.1-or-later"
|
|
options="!check"
|
|
makedepends="
|
|
meson
|
|
tdb-dev
|
|
alsa-lib-dev
|
|
libasyncns-dev
|
|
dbus-dev
|
|
glib-dev
|
|
gtk+3.0-dev
|
|
orc-dev
|
|
orc-compiler
|
|
libsndfile-dev
|
|
soxr-dev
|
|
libx11-dev
|
|
libxcb-dev
|
|
libice-dev
|
|
libsm-dev
|
|
libxtst-dev
|
|
avahi-dev
|
|
sbc-dev
|
|
fftw-dev
|
|
jack-dev
|
|
openssl1.1-compat-dev
|
|
speexdsp-dev
|
|
eudev-dev
|
|
libcap-dev
|
|
bluez-dev
|
|
check-dev
|
|
libtool
|
|
perl
|
|
perl-xml-parser
|
|
m4
|
|
gstreamer-dev
|
|
gst-plugins-base-dev
|
|
modemmanager-dev
|
|
"
|
|
depends_openrc="alsa-utils-openrc"
|
|
subpackages="
|
|
$pkgname-dev
|
|
$pkgname-doc
|
|
$pkgname-bluez
|
|
libpulse-mainloop-glib:_libpulse_mainloop_glib
|
|
$pkgname-alsa
|
|
$pkgname-utils
|
|
$pkgname-jack
|
|
$pkgname-zeroconf
|
|
$pkgname-openrc
|
|
$pkgname-bash-completion
|
|
$pkgname-zsh-completion
|
|
$pkgname-lang
|
|
$pkgname-equalizer
|
|
libpulse:_libpulse
|
|
"
|
|
install="pulseaudio.post-install"
|
|
builddir="$srcdir/$pkgname-$_pkgver"
|
|
source="https://freedesktop.org/software/pulseaudio/releases/pulseaudio-$_pkgver.tar.xz
|
|
0001-bluez5-util-move-pa_bluetooth_discovery-to-header.patch
|
|
0002-bluetooth-add-AT-BIA-support.patch
|
|
0003-bluetooth-add-UPower-backend.patch
|
|
0004-bluetooth-hook-up-UPower-backend.patch
|
|
0005-bluetooth-add-ModemManager-backend.patch
|
|
0006-bluetooth-only-reply-OK-for-supported-AT-cmds.patch
|
|
0007-bluetooth-Always-reply-to-AT-CIND.patch
|
|
0008-bluetooth-support-AT-CMEE.patch
|
|
0009-bluetooth-support-AT-NREC.patch
|
|
0010-bluetooth-support-AT-BCC.patch
|
|
0011-bluetooth-support-AT-COPS.patch
|
|
0012-bluetooth-support-AT-CNUM.patch
|
|
0013-bluetooth-support-more-AT-CIND-indicators.patch
|
|
0014-bluetooth-support-AT-CLIP.patch
|
|
0015-bluetooth-support-AT-CREG.patch
|
|
0016-bluetooth-support-AT-CGMM.patch
|
|
0017-bluetooth-support-AT-CGMI.patch
|
|
0018-bluetooth-support-AT-CGMR.patch
|
|
0019-bluetooth-support-AT-CGSN.patch
|
|
0020-bluetooth-support-AT-CLCC.patch
|
|
0021-bluetooth-support-CIEV-RING-and-CLIP-URCs.patch
|
|
0022-bluetooth-support-AT-VTS.patch
|
|
0023-bluetooth-support-ATA.patch
|
|
0024-bluetooth-support-AT-CHUP.patch
|
|
0025-bluetooth-support-ATD-number.patch
|
|
0026-bluetooth-strip-additional-out-of-spec-r-n-chars.patch
|
|
link-libintl.patch
|
|
$pkgname.initd
|
|
$pkgname.confd
|
|
"
|
|
|
|
case "$CARCH" in
|
|
aarch64|armv7|armhf|x86|ppc64le)
|
|
options="$options !check" # once-test fails, all others pass
|
|
;;
|
|
s390x)
|
|
options="$options !check" # mix-test fails, all others pass
|
|
;;
|
|
esac
|
|
|
|
case "$CARCH" in
|
|
x86|x86_64|aarch64)
|
|
makedepends="$makedepends webrtc-audio-processing-dev"
|
|
_webrtc_aec="disabled"
|
|
;;
|
|
* )
|
|
_webrtc_aec="disabled" # webrtc-audio-processing not available
|
|
;;
|
|
esac
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
sed "s|sysconfdir, 'dbus-1'|datadir, 'dbus-1'|" \
|
|
-i src/daemon/meson.build
|
|
}
|
|
|
|
build() {
|
|
abuild-meson \
|
|
-Dgcov=false \
|
|
-Dman=true \
|
|
-Dtests=true \
|
|
-Dsystem_user=pulse \
|
|
-Dsystem_group=pulse \
|
|
-Ddatabase=tdb \
|
|
-Dalsa=enabled \
|
|
-Dasyncns=enabled \
|
|
-Davahi=enabled \
|
|
-Dbluez5=enabled \
|
|
-Ddbus=enabled \
|
|
-Dfftw=enabled \
|
|
-Dglib=enabled \
|
|
-Dgsettings=enabled \
|
|
-Dgtk=enabled \
|
|
-Dhal-compat=false \
|
|
-Dipv6=true \
|
|
-Djack=enabled \
|
|
-Dlirc=disabled \
|
|
-Dopenssl=enabled \
|
|
-Dorc=enabled \
|
|
-Dsamplerate=disabled \
|
|
-Dsoxr=enabled \
|
|
-Dspeex=enabled \
|
|
-Dsystemd=disabled \
|
|
-Dudev=enabled \
|
|
-Dx11=enabled \
|
|
-Dudevrulesdir=/usr/lib/udev/rules.d \
|
|
-Dgstreamer=enabled \
|
|
-Dwebrtc-aec="$_webrtc_aec" \
|
|
-Ddoxygen=false \
|
|
-Dstream-restore-clear-old-devices=true \
|
|
. output
|
|
meson compile ${JOBS:+-j ${JOBS}} -C output
|
|
}
|
|
|
|
check() {
|
|
meson test --no-rebuild -v -C output
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" meson install --no-rebuild -C output
|
|
|
|
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
|
|
install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
|
|
|
|
# Assumes that any volume adjustment is intended by the user, who can control
|
|
# each app's volume. Misbehaving clients can trigger earsplitting volume
|
|
# jumps. App volumes can diverge wildly and cause apps without their own
|
|
# volume control to fall below sink volume; a sink-only volume control will
|
|
# suddenly be unable to make such an app loud enough.
|
|
sed '/flat-volumes/iflat-volumes = no' -i "$pkgdir"/etc/pulse/daemon.conf
|
|
|
|
# Disable cork-request module, can result in e.g. media players unpausing
|
|
# when there's a Skype call incoming
|
|
sed 's|/usr/bin/pactl load-module module-x11-cork-request|#&|' \
|
|
-i "$pkgdir"/usr/bin/start-pulseaudio-x11
|
|
|
|
# Required by qpaeq
|
|
sed '/Load several protocols/aload-module module-dbus-protocol' \
|
|
-i "$pkgdir"/etc/pulse/default.pa
|
|
}
|
|
|
|
openrc() {
|
|
replaces="$pkgname-system" # Backward compatibility
|
|
default_openrc
|
|
}
|
|
|
|
_libpulse() {
|
|
pkgdesc="Pulseaudio libraries"
|
|
replaces="$pkgname-libs"
|
|
|
|
amove usr/lib/pulseaudio/libpulse*
|
|
amove usr/lib/libpulse.so.0*
|
|
amove usr/lib/libpulse-simple.so.0*
|
|
amove etc/pulse/client.conf
|
|
}
|
|
|
|
_libpulse_mainloop_glib() {
|
|
pkgdesc="Pulseaudio mainloop-glib library"
|
|
|
|
amove usr/lib/libpulse-mainloop-glib.so.*
|
|
}
|
|
|
|
bluez() {
|
|
pkgdesc="Pulseaudio Bluetooth support"
|
|
install_if="$pkgname=$pkgver-r$pkgrel bluez"
|
|
provider_priority=10 # highest (other provider is pipewire-pulse)
|
|
|
|
amove usr/lib/pulseaudio/modules/*bluez*.so
|
|
amove usr/lib/pulseaudio/modules/*bluetooth*.so
|
|
}
|
|
|
|
alsa() {
|
|
pkgdesc="Pulseaudio ALSA support"
|
|
install_if="$pkgname=$pkgver-r$pkgrel alsa-lib"
|
|
provider_priority=10 # highest (other provider is pipewire-pulse)
|
|
|
|
amove usr/lib/pulseaudio/modules/*alsa*.so
|
|
}
|
|
|
|
utils() {
|
|
pkgdesc="Pulseaudio utilities"
|
|
|
|
amove usr/bin/pa*
|
|
}
|
|
|
|
jack() {
|
|
pkgdesc="Pulseaudio JACK support"
|
|
|
|
amove usr/lib/pulseaudio/modules/*jack*.so
|
|
}
|
|
|
|
zeroconf() {
|
|
pkgdesc="Pulseaudio Zeroconf support"
|
|
depends="avahi"
|
|
|
|
amove usr/lib/pulseaudio/modules/*avahi*.so
|
|
amove usr/lib/pulseaudio/modules/*zeroconf*.so
|
|
amove usr/lib/pulseaudio/modules/*raop*.so
|
|
}
|
|
|
|
equalizer() {
|
|
pkgdesc="Equalizer for $pkgname"
|
|
depends="pulseaudio=$pkgver-r$pkgrel py3-qt5 py3-dbus"
|
|
|
|
amove usr/bin/qpaeq
|
|
amove usr/lib/pulseaudio/modules/module-equalizer-sink.so
|
|
}
|
|
|
|
sha512sums="
|
|
42d4968c2dc88f5e39a5358d124e399e40a5abdf815eff387087141bc9dddd217012acb35649a8e0e24a44e8a402d90eb193ce2eef186f7d59550f757a6cc26d pulseaudio-16.0.tar.xz
|
|
c0a5a4854be7f8c5421671b7c5b890d9f097f8d0a1ac20009549786c28a66c9f28ac58863eea12f467ced87cbdb6093ea1a8444b9f1c1abda2aaa7e64c6c640a 0001-bluez5-util-move-pa_bluetooth_discovery-to-header.patch
|
|
c84e4e0591c21348be197fae4b54bdd437a8e39803daa8448fcaf03119a39723214b81b8c32b5a6b166fc4449b78a44c7633bd09a77902903d15b17299a58234 0002-bluetooth-add-AT-BIA-support.patch
|
|
a2ceac55f6cc8097569fec5e7a76f9e6ce3c79dacb27f5f19baed3a808e9be30e3c9a22b84b74e3d774d16f2d45c93e64a1248fc56b6d3cd897f620d46f581f9 0003-bluetooth-add-UPower-backend.patch
|
|
ffe399905f400628c0bcb732c6000ced30a3835884dfd0910bebf4af81ca63e743bb144e845978fda02ec4c81295e87ccf596b55d68e4c59ff827e5b1102a72e 0004-bluetooth-hook-up-UPower-backend.patch
|
|
58f7fc83c3c15e9df3b36cc192113d29fc6020823a36b30b68702373248a93c6e60a174a3c71c693547d33de55a9d20e72cf65f3957cea323b04c222d5d701ff 0005-bluetooth-add-ModemManager-backend.patch
|
|
98c0b80638603899b1639fedcc5edcde721f22cd3e7abed425015c933e65769b295a80b0d6a444fc5144cd1c6851dce41710dd8361fce2bfe5022ed913ad82ba 0006-bluetooth-only-reply-OK-for-supported-AT-cmds.patch
|
|
535b242b76fc494138a16b326708eaa4d410fbc5a779bda1471e25c56440d7e9a4c80b0bccd3ba5e0026f40c09e3b7b84bbb409e51c020deff8c9b0ead74fb71 0007-bluetooth-Always-reply-to-AT-CIND.patch
|
|
cdd7d3d47932c11ff7bd2bd4589b26dd3d92180fd4c156e70f57dcf5b560e05cd37d548a6e5280e47d258804f9dcaa3dd498d9dcdbb2e5c4e87f9f81dc7de73a 0008-bluetooth-support-AT-CMEE.patch
|
|
7b6a99b1d76781c36007b746bf2a47f163efeca843f36d75d4485c688d8f3a7fcafc9c36c1aa2ff02759184e20d387a89beea36ca0da64e23bb29dfc71feb55c 0009-bluetooth-support-AT-NREC.patch
|
|
b2bda75da4a4a5a2511fd3cd9ac8da8b3c59276a6396106e2249dd31053b68797f3f923177e6cd06fd7ae3cb3e2110e8bf8facb269d80a0e637a6f38cd8bb68c 0010-bluetooth-support-AT-BCC.patch
|
|
53bdf256fb2db1d6997204ba9504b584423946e177f8e1a819de0fafea29092a1925a0f7cde253635aa1f83c67e6b91bf3608fe543bc2185cd2ddf4aa5942054 0011-bluetooth-support-AT-COPS.patch
|
|
f3063daac100ef5d1fba792bb900a434be8cd0f9093a9be1ab68d84b8f94f39efc16c59d749f293e9b7556632866688757dc3d6e922096102f4583acb3f3cf5a 0012-bluetooth-support-AT-CNUM.patch
|
|
19880702e533bb46a67f09e8848bc2741a275c20b847dea96a0dba0424639715b0cd3d25a9168916cdc4ae4462b67855a3bb3b1d8384c12292fbacc032c2f0fa 0013-bluetooth-support-more-AT-CIND-indicators.patch
|
|
cd3d67672ff77d7908b01b4a377901d5e008b31b88d0e2c86918263c10a250aaf807cbf54cc3b095b1bf38ee533b3c0f409c5e1e2ced1df045fc64f421e02f78 0014-bluetooth-support-AT-CLIP.patch
|
|
967983f1e589945da4c0139d3d7d7be2c796f4a9ab52b344acd19723170c220dd7e00feafd2ad0a0481940f27c01176ccd54418758acedbc1c686d3426df9812 0015-bluetooth-support-AT-CREG.patch
|
|
61c400797405120cb065dea285e79a0056d716ff5ade3c8ea5a7e9f205c6895c0885f5ddb8c1abeec08ce3cf195b79bf7dc4d20281c5f7d5ee668accddab8cb9 0016-bluetooth-support-AT-CGMM.patch
|
|
42a3739a44bdcc01df0f3fa6fac5efb88f4fcf69686b529f8390d58b4becfd9b948d3ddea80aa5b8d007d96e22b4a87dedb5cbff610f008c317b31c8ae700774 0017-bluetooth-support-AT-CGMI.patch
|
|
6a4cd357126ebe99647bd3f4780ca109f2e823e0653851663d1d000b98e156ac17293058c8b94263371e303233f1c8e56073b523c91588d75989acb45b660ac2 0018-bluetooth-support-AT-CGMR.patch
|
|
b83d00a32c8e28c566e74ab8edd35e107313f31f4ff2ead21d6f9446a79f6ec520e7a737ef79844d46fbcceaad74fdaeb14ad37a865284c259f768156514f858 0019-bluetooth-support-AT-CGSN.patch
|
|
c58265d7c8f201765a254b2b26ff38f89ac2392acfb57024592e01096a997394322e726425fd02c37e21f6ab72638206d891354b2cd950102e7c13d87e026d40 0020-bluetooth-support-AT-CLCC.patch
|
|
c93be49e11055af356a01cc3545f984348dcff052f8777ef0127e2a9cab241fa83682550a5ffd69589d6603f1fb47ad3da248ff055b6c983e50ed817c63d1008 0021-bluetooth-support-CIEV-RING-and-CLIP-URCs.patch
|
|
d0663f8962f916d2149f44fe6d598ddea6df3cee542ee5ba9b418d05397c88a9c16368f9da2f96750e8bfb6a8e747e59fdc10f52fa59d1096ed6e59625c5dabd 0022-bluetooth-support-AT-VTS.patch
|
|
a39cbab500be77e88a7b8dd615ce7e1a2f8d678b19fe823552bb5d1279e2ae06aac3c353e03e10d601c53a5befe731ce00f8163c7b3a1e7b4b0c26a4fdde1730 0023-bluetooth-support-ATA.patch
|
|
9b93fd3dd2859b600d9eed9097f89b2a26220603eccdc61c6edb9b3b7488a97dbc5cee0dd4c40da3d1cbd8849023fd48f30ea1da0668c0bae189337bc8d1db9f 0024-bluetooth-support-AT-CHUP.patch
|
|
3eec77a1b39dbab93a4284de433946b70d6b9f972e62b02f076cb4a45b1f288e32ae05d8d557ed13ef21eded407951f9c0f48c78bdac9d47f318d2c7b288e10c 0025-bluetooth-support-ATD-number.patch
|
|
76b486095b1f2bb5d23837ed8f08d5ac7533e7c9621b2534c85b39a932663ffcf86b7fefaba1f2abc6aa7a95660c658cbcdeef20427b8ebb6e05cf532ee48731 0026-bluetooth-strip-additional-out-of-spec-r-n-chars.patch
|
|
2c31c5bc592e748248215f8f62f85687cfec230b05f65441e6dafa5fa77d4967e97636209b2011a4501ed1337ecd880b264baa175586fc85183a980846cb8146 link-libintl.patch
|
|
34fe54ece5df60ce63a7955cd828a2716670fef71f40960698ae5518fdaf9cd599f4d8f8852e2c88d715600a9ad06a38984415e5eb320071012e5eb6e5c1b8b1 pulseaudio.initd
|
|
75b54581591519d63a3362b155c0f9b0501a60763ab394693a456c44d0216138cf3a40bdd0f7442028663bc045e9ffee286f8f8eaf2ee3bb17379b43615fee0e pulseaudio.confd
|
|
"
|