packages/pulseaudio/PKGBUILD

339 lines
7.2 KiB
Bash

# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
pkgbase=pulseaudio
pkgname=(
pulseaudio
libpulse
pulseaudio-zeroconf
pulseaudio-lirc
pulseaudio-jack
pulseaudio-bluetooth
pulseaudio-equalizer
pulseaudio-rtp
)
pkgver=17.0+r43+g3e2bb8a1e
pkgrel=1
pkgdesc="A featureful, general-purpose sound server"
url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
license=(LGPL-2.1-or-later)
makedepends=(
alsa-lib
attr
avahi
bash
bluez
bluez-libs
check
dbus
doxygen
fftw
gcc-libs
git
glib2
glibc
gst-plugins-base
gst-plugins-base-libs
gst-plugins-good
gstreamer
gtk3
jack2
libasyncns
libcap
libice
libltdl
libsm
libsndfile
libsoxr
libx11
libxcb
libxtst
lirc
meson
openssl
orc
python
python-dbus
python-pyqt5
rtkit
sbc
speexdsp
systemd
systemd-libs
tdb
valgrind
webrtc-audio-processing-1
xmltoman
)
_commit=3e2bb8a1ece02ae4e2c217273c9c0929cb9f5cae # master
source=(
"git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit"
0001-alsa-ucm-Fix-segfault-from-recursion-due-to-too-many.patch
)
b2sums=('1eea3f798a56ea7d51ebc49de20160b8ef2eeae00e4a139786dab02b7a2f0fb459a744a8960d1a6573d7f5591f54a391d943096260edc6dfc5b0f04773b9b311'
'73f93801069b2c5b09646870269c0f42cefc2183a73b47c78fd160c978a841c11c5146b98351a11be24d4785181f361a455534e6f6ca2d977cf585044836f8ed')
pkgver() {
cd pulseaudio
git describe --tags | sed 's/^v//;s/[^-]*-g/r&/;s/-/+/g'
}
prepare() {
cd pulseaudio
# Freeze version before patching
./git-version-gen doesnt-exist >.tarball-version
# https://gitlab.archlinux.org/archlinux/packaging/packages/pulseaudio/-/issues/7
git apply -3 ../0001-alsa-ucm-Fix-segfault-from-recursion-due-to-too-many.patch
}
build() {
local meson_options=(
-D consolekit=disabled
-D elogind=disabled
-D pulsedsp-location='/usr/\$LIB/pulseaudio'
-D stream-restore-clear-old-devices=true
-D tcpwrap=disabled
-D udevrulesdir=/usr/lib/udev/rules.d
)
arch-meson pulseaudio build "${meson_options[@]}"
meson compile -C build
}
check() {
meson test -C build --print-errorlogs
ninja -C build test-daemon
}
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
package_pulseaudio() {
depends=(
"libpulse=$pkgver-$pkgrel"
alsa-lib
bash
dbus
fftw
gcc-libs
glib2
glibc
libcap
libice
libltdl
libsm
libsndfile
libsoxr
libx11
libxcb
libxtst
orc
rtkit
speexdsp
systemd
systemd-libs
tdb
webrtc-audio-processing-1
)
optdepends=(
'pulseaudio-alsa: ALSA configuration (recommended)'
'pulseaudio-bluetooth: Bluetooth support'
'pulseaudio-equalizer: Graphical equalizer'
'pulseaudio-jack: Jack support'
'pulseaudio-lirc: IR (lirc) support'
'pulseaudio-rtp: RTP and RAOP support'
'pulseaudio-zeroconf: Zeroconf support'
)
provides=(pulse-native-provider)
conflicts=(pipewire-pulse)
backup=(
etc/pulse/daemon.conf
etc/pulse/default.pa
etc/pulse/system.pa
)
install=pulseaudio.install
replaces=(
'pulseaudio-gconf<=11.1'
'pulseaudio-xen<=9.0'
)
meson install -C build --destdir "$pkgdir"
cd "$pkgdir"
# Superseded by socket activation
sed -e '/autospawn/iautospawn = no' \
-i etc/pulse/client.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 usr/bin/start-pulseaudio-x11
# Required by qpaeq
sed -e '/Load several protocols/aload-module module-dbus-protocol' \
-i etc/pulse/default.pa
# Avoid warning about nonexistent dir
# https://gitlab.archlinux.org/archlinux/packaging/packages/pulseaudio/-/issues/3
mkdir -p etc/pulse/{default,system}.pa.d
# Split packages
_pick libpulse etc/pulse/client.conf
_pick libpulse usr/bin/pa{cat,ctl,dsp,mon,play,rec,record}
_pick libpulse usr/lib/libpulse{,-simple,-mainloop-glib}.so*
_pick libpulse usr/lib/{cmake,pkgconfig}
_pick libpulse usr/lib/pulseaudio/libpulse{dsp,common-*}.so
_pick libpulse usr/include
_pick libpulse usr/share/man/man1/pa{cat,ctl,dsp,mon,play,rec,record}.1
_pick libpulse usr/share/man/man5/pulse-client.conf.5
_pick libpulse usr/share/bash-completion/completions/pa{cat,ctl,dsp,play,rec,record}
_pick libpulse usr/share/bash-completion/completions/pulseaudio
_pick libpulse usr/share/vala
_pick libpulse usr/share/zsh
local moddir=usr/lib/pulseaudio/modules
_pick zeroconf $moddir/libavahi-wrap.so
_pick zeroconf $moddir/module-zeroconf-{publish,discover}.so
_pick zeroconf $moddir/module-raop-discover.so
_pick lirc $moddir/module-lirc.so
_pick jack $moddir/module-jack-{sink,source}.so
_pick jack $moddir/module-jackdbus-detect.so
_pick bluetooth $moddir/libbluez5-util.so
_pick bluetooth $moddir/module-bluetooth-{discover,policy}.so
_pick bluetooth $moddir/module-bluez5-{discover,device}.so
_pick equalizer $moddir/module-equalizer-sink.so
_pick equalizer usr/bin/qpaeq
_pick rtp $moddir/lib{rtp,raop}.so
_pick rtp $moddir/module-rtp-{send,recv}.so
_pick rtp $moddir/module-raop-sink.so
}
package_libpulse() {
pkgdesc="$pkgdesc (client library)"
depends=(
bash
dbus
glib2
glibc
libasyncns
libsndfile
libxcb
systemd-libs
)
optdepends=('pulse-native-provider: PulseAudio backend')
provides=(
libpulse-mainloop-glib.so
libpulse-simple.so
libpulse.so
)
backup=(etc/pulse/client.conf)
mv libpulse/* "$pkgdir"
}
package_pulseaudio-zeroconf() {
pkgdesc="Zeroconf support for PulseAudio"
depends=(
"libpulse=$pkgver-$pkgrel"
"pulseaudio=$pkgver-$pkgrel"
avahi
dbus
glibc
)
mv zeroconf/* "$pkgdir"
}
package_pulseaudio-lirc() {
pkgdesc="IR (lirc) support for PulseAudio"
depends=(
"pulseaudio=$pkgver-$pkgrel"
glibc
lirc
)
mv lirc/* "$pkgdir"
}
package_pulseaudio-jack() {
pkgdesc="Jack support for PulseAudio"
depends=(
"pulseaudio=$pkgver-$pkgrel"
dbus
glibc
jack
)
mv jack/* "$pkgdir"
}
package_pulseaudio-bluetooth() {
pkgdesc="Bluetooth support for PulseAudio"
depends=(
"libpulse=$pkgver-$pkgrel"
"pulseaudio=$pkgver-$pkgrel"
bluez
bluez-libs
dbus
glib2
glibc
gst-plugins-base-libs
gstreamer
sbc
)
optdepends=('gst-plugins-bad: AptX and LDAC support')
mv bluetooth/* "$pkgdir"
}
package_pulseaudio-equalizer() {
pkgdesc="Graphical equalizer for PulseAudio"
depends=(
"pulseaudio=$pkgver-$pkgrel"
dbus
fftw
glibc
python
python-dbus
python-pyqt5
)
mv equalizer/* "$pkgdir"
}
package_pulseaudio-rtp() {
pkgdesc="RTP and RAOP support for PulseAudio"
depends=(
"libpulse=$pkgver-$pkgrel"
"pulseaudio=$pkgver-$pkgrel"
glib2
glibc
gst-plugins-base
gst-plugins-base-libs
gst-plugins-good
gstreamer
openssl
)
mv rtp/* "$pkgdir"
}
# vim:set sw=2 et: