summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2020-09-15 15:49:33 -0400
committerDavid P <megver83@parabola.nu>2020-09-15 15:49:33 -0400
commit3780ff2765d68dc7a5a76583a98013a9a1e79b27 (patch)
tree89553ca97858298a16948eaa18e9b6fdc81b25eb
parentee4dda8030e73485ce191c636fbf85bbf917f7cb (diff)
addpkg: nonsystemd/pulseaudio 13.0-3.nonsystemd1
Signed-off-by: David P <megver83@parabola.nu>
-rw-r--r--nonsystemd/pulseaudio/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch28
-rw-r--r--nonsystemd/pulseaudio/PKGBUILD187
-rw-r--r--nonsystemd/pulseaudio/meson-elogind-support.patch42
3 files changed, 257 insertions, 0 deletions
diff --git a/nonsystemd/pulseaudio/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch b/nonsystemd/pulseaudio/0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
new file mode 100644
index 000000000..6e6beeade
--- /dev/null
+++ b/nonsystemd/pulseaudio/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/nonsystemd/pulseaudio/PKGBUILD b/nonsystemd/pulseaudio/PKGBUILD
new file mode 100644
index 000000000..e286c716c
--- /dev/null
+++ b/nonsystemd/pulseaudio/PKGBUILD
@@ -0,0 +1,187 @@
+# Maintainer: David P. <megver83@parabola.nu>
+# Maintainer (Arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor (Arch): Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor (Arch): Corrado Primier <bardo@aur.archlinux.org>
+# Contributor (Arch): William Rea <sillywilly@gmail.com>
+
+pkgbase=pulseaudio
+pkgname=(pulseaudio libpulse pulseaudio-{zeroconf,lirc,jack,bluetooth,equalizer})
+pkgdesc="A featureful, general-purpose sound server"
+pkgver=13.0
+pkgrel=3
+pkgrel+=.nonsystemd1
+arch=(x86_64)
+arch+=(i686 armv7h)
+url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
+license=(GPL)
+makedepends=(libasyncns libcap attr libxtst libsm libsndfile rtkit libsoxr
+ speexdsp tdb elogind dbus avahi bluez bluez-libs jack2 sbc
+ lirc openssl fftw orc gtk3 webrtc-audio-processing check git meson
+ xmltoman)
+_commit=200618b32f0964a479d69c9b6e5073e6931c370a # tags/v13.0^0
+source=("git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit"
+ 'meson-elogind-support.patch'
+ 0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch)
+sha256sums=('SKIP'
+ 'fea0e09a9f026bc3c9160b53018b8e1dd1f3493c60f68405a758de7d3cb592cf'
+ '4ff133e2847baad5bb6798b5816d67551cfba2efabb2f1f348628d7217abd07d')
+
+pkgver() {
+ cd pulseaudio
+ git describe --tags | sed 's/^v//;s/-/+/g'
+}
+
+prepare() {
+ cd pulseaudio
+
+ # Freeze version before patching
+ ./git-version-gen doesnt-exist >.tarball-version
+
+ patch -Np 1 -i ../meson-elogind-support.patch
+
+ # https://bugs.archlinux.org/task/63755
+ git apply -3 ../0001-meson-Define-TUNNEL_SINK-for-module-tunnel-sink.patch
+}
+
+build() {
+ arch-meson pulseaudio build \
+ -D gcov=false \
+ -D pulsedsp-location='/usr/\$LIB/pulseaudio' \
+ -D udevrulesdir=/usr/lib/udev/rules.d \
+ -D systemd=disabled \
+ -D elogind=enabled
+ 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() {
+ depends=("libpulse=$pkgver-$pkgrel" rtkit libltdl speexdsp tdb orc libsoxr
+ webrtc-audio-processing)
+ optdepends=('pulseaudio-alsa: ALSA configuration (recommended)')
+ backup=(etc/pulse/{daemon.conf,default.pa,system.pa})
+ replaces=('pulseaudio-xen<=9.0' 'pulseaudio-gconf<=11.1')
+
+ local pulsever=$(cd pulseaudio; ./git-version-gen .tarball-version)
+ while [[ $pulsever = *.*.* ]]; do
+ pulsever=${pulsever%.*}
+ done
+ pulsever=${pulsever%%-*}
+
+ 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 = yes' \
+ -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() {
+ pkgdesc="$pkgdesc (client library)"
+ depends=(dbus libasyncns libcap libxtst libsm libsndfile elogind)
+ provides=(libpulse{,-simple,-mainloop-glib}.so)
+ license=(LGPL)
+ backup=(etc/pulse/client.conf)
+
+ mv libpulse/* "$pkgdir"
+}
+
+package_pulseaudio-zeroconf(){
+ pkgdesc="Zeroconf support for PulseAudio"
+ depends=("pulseaudio=$pkgver-$pkgrel" avahi openssl)
+
+ mv zeroconf/* "$pkgdir"
+}
+
+package_pulseaudio-lirc(){
+ pkgdesc="IR (lirc) support for PulseAudio"
+ depends=("pulseaudio=$pkgver-$pkgrel" lirc)
+
+ mv lirc/* "$pkgdir"
+}
+
+package_pulseaudio-jack(){
+ pkgdesc="Jack support for PulseAudio"
+ depends=("pulseaudio=$pkgver-$pkgrel" jack)
+
+ mv jack/* "$pkgdir"
+}
+
+package_pulseaudio-bluetooth(){
+ pkgdesc="Bluetooth support for PulseAudio"
+ depends=("pulseaudio=$pkgver-$pkgrel" bluez bluez-libs sbc)
+
+ mv bluetooth/* "$pkgdir"
+}
+
+package_pulseaudio-equalizer(){
+ pkgdesc="Equalizer for PulseAudio"
+ depends=("pulseaudio=$pkgver-$pkgrel" python-{pyqt5,dbus,sip} fftw)
+
+ mv equalizer/* "$pkgdir"
+}
+
+# vim:set sw=2 et:
diff --git a/nonsystemd/pulseaudio/meson-elogind-support.patch b/nonsystemd/pulseaudio/meson-elogind-support.patch
new file mode 100644
index 000000000..9d18e4a39
--- /dev/null
+++ b/nonsystemd/pulseaudio/meson-elogind-support.patch
@@ -0,0 +1,42 @@
+ meson.build | 6 ++++++
+ meson_options.txt | 3 +++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index 842d5f5b5..1daa3b067 100644
+--- a/meson.build
++++ b/meson.build
+@@ -484,6 +484,11 @@ if systemd_dep.found() and systemduserunitdir == ''
+ systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')
+ endif
+
++libelogind_dep = dependency('libelogind', required : get_option('elogind'))
++if libelogind_dep.found()
++ cdata.set('HAVE_SYSTEMD_LOGIN', 1)
++endif
++
+ x11_dep = dependency('x11-xcb', required : get_option('x11'))
+ if x11_dep.found()
+ xcb_dep = dependency('xcb', required : true, version : '>= 1.6')
+@@ -701,6 +706,7 @@ summary = [
+ 'Enable udev: @0@'.format(udev_dep.found()),
+ ' Enable HAL->udev compat: @0@'.format(get_option('hal-compat')),
+ 'Enable systemd: @0@'.format(libsystemd_dep.found()),
++ 'Enable elogind: @0@'.format(libelogind_dep.found()),
+ # 'Enable TCP Wrappers: @0@'.format(${ENABLE_TCPWRAP}),
+ 'Enable libsamplerate: @0@'.format(samplerate_dep.found()),
+ 'Enable IPv6: @0@'.format(get_option('ipv6')),
+diff --git a/meson_options.txt b/meson_options.txt
+index e54caf5cf..5fbb513c0 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -126,6 +126,9 @@ option('udev',
+ option('x11',
+ type : 'feature', value : 'auto',
+ description : 'Optional X11 support')
++option('elogind',
++ type : 'feature', value : 'auto',
++ description : 'Optional elogind support')
+
+ # Echo cancellation
+