pmaports/temp/pulseaudio/APKBUILD
Dylan Van Assche f9c7ffa9b6
temp/pulseaudio: fork for Bluetooth HFP/HSP support (MR 3080)
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
2022-06-16 09:33:35 +02:00

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
"