Newer
Older
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: Pedro Filipe <xpecex@outlook.com>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
pkgdesc="featureful, general-purpose sound server"
url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
arch="all"
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
openssl-dev
speexdsp-dev
eudev-dev
libcap-dev
bluez-dev
check-dev
libtool
perl
perl-xml-parser
m4
"

Rasmus Thomsen
committed
depends_openrc="alsa-utils-openrc"
subpackages="
$pkgname-dev
$pkgname-doc
$pkgname-bluez
libpulse:_libpulse
libpulse-mainloop-glib:_libpulse_mainloop_glib
$pkgname-alsa
$pkgname-utils
$pkgname-jack
$pkgname-zeroconf
$pkgname-openrc
$pkgname-bash-completion:bashcomp:noarch
$pkgname-zsh-completion:zshcomp:noarch
$pkgname-lang
$pkgname-equalizer
"
source="https://freedesktop.org/software/pulseaudio/releases/pulseaudio-$pkgver.tar.xz
0001-filter-apply-Look-for-filter-parameters-also-in-device-properties.patch
case "$CARCH" in
x86|ppc64le)
options="$options !check" # once-test fails, all others pass
;;
options="$options !check" # mix-test fails, all others pass
;;
case "$CARCH" in
x86|x86_64|aarch64)
makedepends="$makedepends webrtc-audio-processing-dev"
_webrtc_aec="enabled"
;;
* )
_webrtc_aec="disabled" # webrtc-audio-processing not available
;;
esac
prepare() {
default_prepare
sed -e "s|sysconfdir, 'dbus-1'|datadir, 'dbus-1'|" \
-i src/daemon/meson.build
}
# -Dgstreamer=disabled because the GStreamer RTP protocol implementation is
# cosnidered experimental by upstream.
# See: https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/14.0/
abuild-meson \
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
-Dgcov=false \
-Dman=true \
-Dtests=true \
-Dsystem_user=pulse \
-Dsystem_group=pulse \
-Ddatabase=tdb \
-Dalsa=enabled \
-Dasyncns=enabled \
-Davahi=enabled \
-Dbluez5=true \
-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 \
-Dwebrtc-aec="$_webrtc_aec" \
meson compile ${JOBS:+-j ${JOBS}} -C output
meson test --no-rebuild -v -C output
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 -e '/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 -e 's|/usr/bin/pactl load-module module-x11-cork-request|#&|' \
-i "$pkgdir"/usr/bin/start-pulseaudio-x11
# Required by qpaeq
sed -e '/Load several protocols/aload-module module-dbus-protocol' \
-i "$pkgdir"/etc/pulse/default.pa
openrc() {
replaces="$pkgname-system" # Backward compatibility
default_openrc
_libpulse() {
replaces="$pkgname-libs"
pkgdesc="Pulseaudio libraries"
mkdir -p "$subpkgdir"/usr/lib \
mv "$pkgdir"/usr/lib/pulseaudio \
mv "$pkgdir"/usr/lib/libpulse.so.0* \
"$pkgdir"/usr/lib/libpulse-simple.so.0* \
mv "$pkgdir"/etc/pulse/client.conf \
"$subpkgdir"/etc/pulse/
}
_libpulse_mainloop_glib() {
pkgdesc="Pulseaudio mainloop-glib library"
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/libpulse-mainloop-glib.so.* "$subpkgdir"/usr/lib
bluez() {
pkgdesc="Pulseaudio bluetooth support"
install_if="$pkgname bluez"
provider_priority=10
mkdir -p "$subpkgdir"/usr/lib/pulse-$pkgver/modules
mv "$pkgdir"/usr/lib/pulse-$pkgver/modules/*bluez*.so \
"$pkgdir"/usr/lib/pulse-$pkgver/modules/*bluetooth*.so \
"$subpkgdir"/usr/lib/pulse-$pkgver/modules/
}
alsa() {
pkgdesc="Pulseaudio alsa support"
install_if="$pkgname alsa-lib"
provider_priority=10
mkdir -p "$subpkgdir"/usr/lib/pulse-$pkgver/modules
mv "$pkgdir"/usr/lib/pulse-$pkgver/modules/*alsa*.so \
"$subpkgdir"/usr/lib/pulse-$pkgver/modules/
}
utils() {
pkgdesc="Pulseaudio utilities"
mkdir -p "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/pa* \
}
jack() {
pkgdesc="Pulseaudio jack support"
mkdir -p "$subpkgdir"/usr/lib/pulse-$pkgver/modules
mv "$pkgdir"/usr/lib/pulse-$pkgver/modules/*jack*.so \
"$subpkgdir"/usr/lib/pulse-$pkgver/modules/
}
zeroconf() {
pkgdesc="Pulseaudio zeroconf support"
depends="avahi"
mkdir -p "$subpkgdir"/usr/lib/pulse-$pkgver/modules
mv "$pkgdir"/usr/lib/pulse-$pkgver/modules/*avahi*.so \
"$pkgdir"/usr/lib/pulse-$pkgver/modules/*zeroconf*.so \
"$pkgdir"/usr/lib/pulse-$pkgver/modules/*raop*.so \
"$subpkgdir"/usr/lib/pulse-$pkgver/modules/
install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
mv "$pkgdir"/usr/share/bash-completion "$subpkgdir"/usr/share
}
zshcomp() {
depends=""
install_if="$pkgname=$pkgver-r$pkgrel zsh"
mv "$pkgdir"/usr/share/zsh "$subpkgdir"/usr/share
}
equalizer() {
pkgdesc="Equalizer for $pkgname"
depends="pulseaudio=$pkgver-r$pkgrel py3-qt5 py3-dbus"
mkdir -p "$subpkgdir"/usr/lib/pulse-$pkgver/modules "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/lib/pulse-$pkgver/modules/module-equalizer-sink.so \
"$subpkgdir"/usr/lib/pulse-$pkgver/modules/
mv "$pkgdir"/usr/bin/qpaeq \
"$subpkgdir"/usr/bin/
}
sha512sums="196338cbb26c542301b6d0579070dfbcc42e76dc17405f3e216af70519bec2003089b80c573a32d5f96bdab078631ca09ce89998ab7a0a8ffa26955a9bcb3c4a pulseaudio-14.2.tar.xz
2c31c5bc592e748248215f8f62f85687cfec230b05f65441e6dafa5fa77d4967e97636209b2011a4501ed1337ecd880b264baa175586fc85183a980846cb8146 link-libintl.patch
fffee2f95c86c5e53e5b668bcc67a6cb6a2c887c6880a0dbe598e8844c8e0eb3d0128a9b1fcbdd6155e309df10ae0009fd2abe928cef3b3f047ebe1d4c7bec97 0001-filter-apply-Look-for-filter-parameters-also-in-device-properties.patch
34fe54ece5df60ce63a7955cd828a2716670fef71f40960698ae5518fdaf9cd599f4d8f8852e2c88d715600a9ad06a38984415e5eb320071012e5eb6e5c1b8b1 pulseaudio.initd
75b54581591519d63a3362b155c0f9b0501a60763ab394693a456c44d0216138cf3a40bdd0f7442028663bc045e9ffee286f8f8eaf2ee3bb17379b43615fee0e pulseaudio.confd"