summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO79
-rw-r--r--0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch28
-rw-r--r--PKGBUILD152
-rw-r--r--pulseaudio.install14
4 files changed, 266 insertions, 7 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 2ad7820d100..0d13ce4a818 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
pkgbase = pulseaudio-bluedio
- pkgdesc = Fixup Pulseaudio module for my Bluedio headset
+ pkgdesc = A featureful, general-purpose sound server
pkgver = 13.0
pkgrel = 3
url = https://www.freedesktop.org/wiki/Software/PulseAudio/
@@ -34,8 +34,85 @@ pkgbase = pulseaudio-bluedio
makedepends = xmltoman
source = git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=200618b32f0964a479d69c9b6e5073e6931c370a
source = 0001-bluetooth-new-module-bluedio-fixup.patch
+ source = 0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
sha256sums = SKIP
sha256sums = bc83a8075decebf7b18efd165593ad0f658dd97881c21804dae3699c1df8bc2f
+ sha256sums = 4ff133e2847baad5bb6798b5816d67551cfba2efabb2f1f348628d7217abd07d
pkgname = pulseaudio-bluedio
+ install = pulseaudio.install
+ depends = libpulse-bluedio=13.0-3
+ depends = rtkit
+ depends = libltdl
+ depends = speexdsp
+ depends = tdb
+ depends = orc
+ depends = libsoxr
+ depends = webrtc-audio-processing
+ optdepends = pulseaudio-alsa-bluedio: ALSA configuration (recommended)
+ provides = pulseaudio=13.0-3
+ conflicts = pulseaudio
+ replaces = pulseaudio-xen<=9.0
+ replaces = pulseaudio-gconf<=11.1
+ backup = etc/pulse/daemon.conf
+ backup = etc/pulse/default.pa
+ backup = etc/pulse/system.pa
+
+pkgname = libpulse-bluedio
+ pkgdesc = A featureful, general-purpose sound server (client library)
+ license = LGPL
+ depends = dbus
+ depends = libasyncns
+ depends = libcap
+ depends = libxtst
+ depends = libsm
+ depends = libsndfile
+ depends = systemd
+ provides = libpulse.so
+ provides = libpulse-simple.so
+ provides = libpulse-mainloop-glib.so
+ provides = libpulse=13.0-3
+ conflicts = libpulse
+ backup = etc/pulse/client.conf
+
+pkgname = pulseaudio-zeroconf-bluedio
+ pkgdesc = Zeroconf support for PulseAudio
+ depends = pulseaudio-bluedio=13.0-3
+ depends = avahi
+ depends = openssl
+ provides = pulseaudio-zeroconf=13.0-3
+ conflicts = pulseaudio-zeroconf
+
+pkgname = pulseaudio-lirc-bluedio
+ pkgdesc = IR (lirc) support for PulseAudio
+ depends = pulseaudio-bluedio=13.0-3
+ depends = lirc
+ provides = pulseaudio-lirc=13.0-3
+ conflicts = pulseaudio-lirc
+
+pkgname = pulseaudio-jack-bluedio
+ pkgdesc = Jack support for PulseAudio
+ depends = pulseaudio-bluedio=13.0-3
+ depends = jack
+ provides = pulseaudio-jack=13.0-3
+ conflicts = pulseaudio-jack
+
+pkgname = pulseaudio-bluetooth-bluedio
+ pkgdesc = Bluetooth support for PulseAudio
+ depends = pulseaudio-bluedio=13.0-3
+ depends = bluez
+ depends = bluez-libs
+ depends = sbc
+ provides = pulseaudio-bluetooth=13.0-3
+ conflicts = pulseaudio-bluetooth
+
+pkgname = pulseaudio-equalizer-bluedio
+ pkgdesc = Equalizer for PulseAudio
+ depends = pulseaudio-bluedio=13.0-3
+ depends = python-pyqt5
+ depends = python-dbus
+ depends = python-sip
+ depends = fftw
+ provides = pulseaudio-equalizer=13.0-3
+ conflicts = pulseaudio-equalizer
diff --git a/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch b/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
new file mode 100644
index 00000000000..6e6beeade13
--- /dev/null
+++ b/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
@@ -0,0 +1,28 @@
+From c7e0c4373a304e167b11a68575b9da9506345dab Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Sun, 15 Sep 2019 13:47:19 +0200
+Subject: [PATCH] meson: Define TUNNEL_SINK for module-tunnel-sink
+
+This was missing, so it was building another tunnel-source instead.
+
+Fixes https://bugs.archlinux.org/task/63755
+---
+ src/modules/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/modules/meson.build b/src/modules/meson.build
+index 92d5871f9..dd2241f42 100644
+--- a/src/modules/meson.build
++++ b/src/modules/meson.build
+@@ -55,7 +55,7 @@ all_modules = [
+ [ 'module-suspend-on-idle', 'module-suspend-on-idle.c' ],
+ [ 'module-switch-on-connect', 'module-switch-on-connect.c' ],
+ [ 'module-switch-on-port-available', 'module-switch-on-port-available.c' ],
+- [ 'module-tunnel-sink', 'module-tunnel.c', [], [], [x11_dep] ],
++ [ 'module-tunnel-sink', 'module-tunnel.c', [], ['-DTUNNEL_SINK=1'], [x11_dep] ],
+ [ 'module-tunnel-sink-new', 'module-tunnel-sink-new.c' ],
+ [ 'module-tunnel-source', 'module-tunnel.c', [], [], [x11_dep] ],
+ [ 'module-tunnel-source-new', 'module-tunnel-source-new.c' ],
+--
+2.23.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 61d6f9ee843..aaf18a44902 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,8 +4,8 @@
# Contributor: William Rea <sillywilly@gmail.com>
pkgbase=pulseaudio-bluedio
-pkgname=pulseaudio-bluedio
-pkgdesc="Fixup Pulseaudio module for my Bluedio headset"
+pkgname=(pulseaudio-bluedio libpulse-bluedio pulseaudio-{zeroconf,lirc,jack,bluetooth,equalizer}-bluedio)
+pkgdesc="A featureful, general-purpose sound server"
pkgver=13.0
pkgrel=3
arch=(x86_64)
@@ -17,9 +17,11 @@ makedepends=(libasyncns libcap attr libxtst libsm libsndfile rtkit libsoxr
xmltoman)
_commit=200618b32f0964a479d69c9b6e5073e6931c370a # tags/v13.0^0
source=("git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit"
- 0001-bluetooth-new-module-bluedio-fixup.patch)
+ 0001-bluetooth-new-module-bluedio-fixup.patch
+ 0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch)
sha256sums=('SKIP'
- 'bc83a8075decebf7b18efd165593ad0f658dd97881c21804dae3699c1df8bc2f')
+ 'bc83a8075decebf7b18efd165593ad0f658dd97881c21804dae3699c1df8bc2f'
+ '4ff133e2847baad5bb6798b5816d67551cfba2efabb2f1f348628d7217abd07d')
pkgver() {
cd pulseaudio
@@ -32,6 +34,10 @@ prepare() {
# Freeze version before patching
./git-version-gen doesnt-exist >.tarball-version
+ # https://bugs.archlinux.org/task/63755
+ git apply -3 ../0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
+
+ # Add the fixup module
git apply -3 ../0001-bluetooth-new-module-bluedio-fixup.patch
}
@@ -40,18 +46,152 @@ build() {
-D gcov=false \
-D pulsedsp-location='/usr/\$LIB/pulseaudio' \
-D udevrulesdir=/usr/lib/udev/rules.d
- ninja -C build src/modules/module-bluedio-fixup.so
+ ninja -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-bluedio() {
+ depends=("libpulse-bluedio=$pkgver-$pkgrel" rtkit libltdl speexdsp tdb orc libsoxr
+ webrtc-audio-processing)
+ optdepends=('pulseaudio-alsa-bluedio: ALSA configuration (recommended)')
+ backup=(etc/pulse/{daemon.conf,default.pa,system.pa})
+ install=pulseaudio.install
+ replaces=('pulseaudio-xen<=9.0' 'pulseaudio-gconf<=11.1')
+ provides=("pulseaudio=$pkgver-$pkgrel")
+ conflicts=(pulseaudio)
+
local pulsever=$(cd pulseaudio; ./git-version-gen .tarball-version)
while [[ $pulsever = *.*.* ]]; do
pulsever=${pulsever%.*}
done
pulsever=${pulsever%%-*}
- install -s -D -t "${pkgdir}/usr/lib/pulse-${pulsever}/modules" build/src/modules/module-bluedio-fixup.so
+ DESTDIR="$pkgdir" meson install -C build
+
+ cd "$pkgdir"
+
+ # 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 etc/pulse/daemon.conf
+
+ # 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
+
+ rm -r etc/dbus-1
+
+### Split libpulse
+ _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/vala
+
+### Split modules
+ local moddir=usr/lib/pulse-$pulsever/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
+}
+
+package_libpulse-bluedio() {
+ pkgdesc="$pkgdesc (client library)"
+ depends=(dbus libasyncns libcap libxtst libsm libsndfile systemd)
+ provides=(libpulse{,-simple,-mainloop-glib}.so "libpulse=$pkgver-$pkgrel")
+ conflicts=(libpulse)
+ license=(LGPL)
+ backup=(etc/pulse/client.conf)
+
+ mv libpulse/* "$pkgdir"
+}
+
+package_pulseaudio-zeroconf-bluedio(){
+ pkgdesc="Zeroconf support for PulseAudio"
+ depends=("pulseaudio-bluedio=$pkgver-$pkgrel" avahi openssl)
+ provides=("pulseaudio-zeroconf=$pkgver-$pkgrel")
+ conflicts=(pulseaudio-zeroconf)
+
+ mv zeroconf/* "$pkgdir"
+}
+
+package_pulseaudio-lirc-bluedio(){
+ pkgdesc="IR (lirc) support for PulseAudio"
+ depends=("pulseaudio-bluedio=$pkgver-$pkgrel" lirc)
+ provides=("pulseaudio-lirc=$pkgver-$pkgrel")
+ conflicts=(pulseaudio-lirc)
+
+ mv lirc/* "$pkgdir"
+}
+
+package_pulseaudio-jack-bluedio(){
+ pkgdesc="Jack support for PulseAudio"
+ depends=("pulseaudio-bluedio=$pkgver-$pkgrel" jack)
+ provides=("pulseaudio-jack=$pkgver-$pkgrel")
+ conflicts=(pulseaudio-jack)
+
+ mv jack/* "$pkgdir"
+}
+
+package_pulseaudio-bluetooth-bluedio(){
+ pkgdesc="Bluetooth support for PulseAudio"
+ depends=("pulseaudio-bluedio=$pkgver-$pkgrel" bluez bluez-libs sbc)
+ provides=("pulseaudio-bluetooth=$pkgver-$pkgrel")
+ conflicts=(pulseaudio-bluetooth)
+
+ mv bluetooth/* "$pkgdir"
+}
+
+package_pulseaudio-equalizer-bluedio(){
+ pkgdesc="Equalizer for PulseAudio"
+ depends=("pulseaudio-bluedio=$pkgver-$pkgrel" python-{pyqt5,dbus,sip} fftw)
+ provides=("pulseaudio-equalizer=$pkgver-$pkgrel")
+ conflicts=(pulseaudio-equalizer)
+ mv equalizer/* "$pkgdir"
}
# vim:set sw=2 et:
diff --git a/pulseaudio.install b/pulseaudio.install
new file mode 100644
index 00000000000..f6f8478d05c
--- /dev/null
+++ b/pulseaudio.install
@@ -0,0 +1,14 @@
+post_install() {
+ # Enable socket by default
+ systemctl --global enable pulseaudio.socket
+}
+
+post_upgrade() {
+ if (( $(vercmp $2 8.0-3) < 0)); then
+ systemctl --global enable pulseaudio.socket
+ fi
+}
+
+pre_remove() {
+ systemctl --global disable pulseaudio.socket
+}