summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD334
1 files changed, 279 insertions, 55 deletions
diff --git a/PKGBUILD b/PKGBUILD
index d3583251c778..7ef471dc71d7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,71 +6,145 @@
# Contributor: William Rea <sillywilly@gmail.com>
# Contributor: Lorenzo Nizzi Grifi Gargiolli <lorenzo.nizzi.grifi@gmail.com>
# Maintainer: Ben Morgan <neembi@gmail.com>
+# Maintainer: Solomon Choina <shlomochoina@gmail.com>
_pkgname="pulseaudio"
-pkgname="$_pkgname-git"
+pkgbase="$_pkgname-git"
+pkgname=(
+ pulseaudio-git
+ libpulse-git
+ pulseaudio-zeroconf-git
+ pulseaudio-jack-git
+ pulseaudio-bluetooth-git
+ pulseaudio-equalizer-git
+ pulseaudio-rtp-git
+)
pkgdesc="A featureful, general-purpose sound server (development version)"
-pkgver=v12.0.309.geadd987a6
-pkgrel=2
+pkgver=17.0.r4.g5d7cd8bd0
+pkgrel=1
arch=("i686" "x86_64" "armv7h")
url="http://pulseaudio.org/"
-license=("GPL" "LGPL")
-depends=(lib{ltdl,soxr,asyncns,cap,xtst,sm,sndfile} "rtkit" "speexdsp" "tdb"
- "orc" "webrtc-audio-processing" jack2 dbus "systemd" "avahi" "openssl"
- "lirc" bluez{,-libs} "sbc" python-{pyqt5,dbus,sip} "fftw") #json-c
-makedepends=("git" lib{asyncns,cap,xtst,sm,sndfile,tool,soxr} "attr" "rtkit"
- "speexdsp" "tdb" "systemd" jack2 dbus "avahi" bluez{,-libs}
- "intltool" "sbc" "lirc" "openssl" "fftw" "orc" "gtk3"
- "webrtc-audio-processing" "check" "autoconf-archive") #gconf
-optdepends=("alsa-plugins: ALSA support"
- "pulseaudio-alsa: ALSA configuration (recommended)"
- "lirc-utils: infra-red support")
-backup=(etc/pulse/{daemon.conf,default.pa,system.pa,client.conf})
-provides=(pulseaudio{,-{zeroconf,lirc,jack,bluetooth,equalizer}} "libpulse") #"pulseaudio-xen" "pulseaudio-gconf"
-conflicts=(pulseaudio{,-{zeroconf,lirc,jack,bluetooth,equalizer}} "libpulse") #"pulseaudio-xen" "pulseaudio-gconf"
+license=(LGPL-2.1-or-later)
+install=pulseaudio.install
+makedepends=( alsa-lib
+ attr
+ avahi
+ bluez
+ bluez-libs
+ check
+ dbus
+ doxygen
+ fftw
+ git
+ gst-plugins-base-libs
+ gtk3
+ jack2
+ libasyncns
+ libcap
+ libsm
+ libsndfile
+ libsoxr
+ libxtst
+ lirc
+ meson
+ openssl
+ orc
+ rtkit
+ sbc
+ speexdsp
+ systemd
+ tdb
+ valgrind
+ webrtc-audio-processing-1
+ xmltoman
+ libwrap
+ libltdl
+ python-dbus
+ python-pyqt5
+)
options=(!emptydirs)
-source=("git+git://anongit.freedesktop.org/pulseaudio/pulseaudio")
-sha256sums=('SKIP')
+source=("git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git"
+ "pulseaudio.install")
+sha256sums=('SKIP'
+ '1d4890b10fadb9208c3fefbbed4aca1f22e63a0f102f4c598dc573a55e724cb2')
pkgver() {
cd "$srcdir/$_pkgname"
- git describe --always | sed "s/-/./g"
+ git describe --long | sed 's/v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
-prepare() {
- cd "$srcdir/$_pkgname"
- NOCONFIGURE=1 ./bootstrap.sh
+build() {
+ arch-meson pulseaudio build \
+ -D stream-restore-clear-old-devices=true \
+ -D pulsedsp-location='/usr/\$LIB/pulseaudio' \
+ -D udevrulesdir=/usr/lib/udev/rules.d \
+ -D elogind=disabled \
+ -D consolekit=disabled
+ ninja -C build
}
-build() {
- cd "$srcdir/$_pkgname"
+check() {
+ meson test -C build --print-errorlogs
+ ninja -C build test-daemon
+}
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib \
- --localstatedir=/var \
- --with-udev-rules-dir=/usr/lib/udev/rules.d \
- --with-pulsedsp-location='/usr/\\$$LIB/pulseaudio' \
- --with-database=tdb \
- --disable-tcpwrap \
- --disable-bluez4 \
- --disable-rpath \
- --disable-default-build-tests \
- DATADIRNAME=share
-
- # fight unused direct deps
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-
- make
+_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() {
- cd "$srcdir/$_pkgname"
- make DESTDIR="$pkgdir" install bashcompletiondir=/usr/share/bash-completion/completions
+package_pulseaudio-git() {
+ depends=(
+ alsa-lib
+ fftw
+ libcap
+ libltdl
+ "libpulse=$pkgver-$pkgrel"
+ libsm
+ libsoxr
+ libxtst
+ orc
+ rtkit
+ speexdsp
+ tdb
+ webrtc-audio-processing-1
+ libwrap
+ libsndfile
+ dconf
+ )
+ optdepends=(
+ 'pulseaudio-alsa: ALSA configuration (recommended)'
+ 'pulseaudio-bluetooth-git: Bluetooth support'
+ 'pulseaudio-equalizer-git: Graphical equalizer'
+ 'pulseaudio-jack-git: Jack support'
+ 'pulseaudio-lirc-git: IR (lirc) support'
+ 'pulseaudio-rtp-git: RTP and RAOP support'
+ 'pulseaudio-zeroconf-git: Zeroconf support'
+ )
+ provides=("pulse-native-provider" "pulseaudio")
+ conflicts=("pipewire-pulse" "pulseaudio")
+ 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'
+ )
+
+
+
+
+ DESTDIR="$pkgdir" meson install -C build
- # Speed up pulseaudio shutdown so that it exits immediately with
- # the last user session (module-systemd-login keeps it alive)
- sed -e "/exit-idle-time/iexit-idle-time=0" -i "$pkgdir/etc/pulse/daemon.conf"
+ 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
@@ -78,21 +152,171 @@ package() {
# 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"
+ -i etc/pulse/daemon.conf
# Superseded by socket activation
sed -e '/autospawn/iautospawn = no' \
- -i "$pkgdir/etc/pulse/client.conf"
+ -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 "$pkgdir/usr/bin/start-pulseaudio-x11"
+ # 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 "$pkgdir/etc/pulse/default.pa"
+ -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-git() {
+ pkgdesc="$pkgdesc (client library) (development)"
+ depends=(
+ dbus
+ libasyncns
+ libsndfile
+ libxcb
+ systemd
+ )
+ optdepends=(
+ 'glib2: mainloop integration'
+ 'pulse-native-provider: PulseAudio backend'
+ )
+ provides=(
+ libpulse-mainloop-glib.so
+ libpulse-simple.so
+ libpulse.so
+ )
+ license=(LGPL)
+ backup=(etc/pulse/client.conf)
+ provides=(libpulse)
+ conflicts=(libpulse)
- rm "$pkgdir/etc/dbus-1/system.d/pulseaudio-system.conf"
+ mv libpulse/* "$pkgdir"
+}
+
+package_pulseaudio-zeroconf-git() {
+ pkgdesc="Zeroconf support for PulseAudio (development)"
+ depends=(
+ avahi
+ "pulseaudio-git=$pkgver-$pkgrel"
+ )
+ provides=(pulseaudio-zeroconf)
+ conflicts=(pulseaudio-zeroconf)
+
+ mv zeroconf/* "$pkgdir"
+}
+
+package_pulseaudio-lirc() {
+ pkgdesc="IR (lirc) support for PulseAudio (development)"
+ depends=(
+ lirc
+ "pulseaudio-git=$pkgver-$pkgrel"
+ )
+ provides=(pulseaudio-lirc)
+ conflicts=(pulseaudio-lirc)
- install -Dm644 shell-completion/zsh/_pulseaudio "$pkgdir/usr/share/zsh/site-functions/_pulseaudio"
+ mv lirc/* "$pkgdir"
}
+
+package_pulseaudio-jack-git() {
+ pkgdesc="Jack support for PulseAudio (development)"
+ depends=(
+ jack
+ "pulseaudio-git=$pkgver-$pkgrel"
+ )
+ provides=(pulseaudio-jack)
+ conflicts=(pulseaudio-jack)
+
+ mv jack/* "$pkgdir"
+}
+
+package_pulseaudio-bluetooth-git() {
+ pkgdesc="Bluetooth support for PulseAudio (development)"
+ depends=(
+ bluez
+ bluez-libs
+ gst-plugins-base-libs
+ "pulseaudio-git=$pkgver-$pkgrel"
+ sbc
+ )
+ conflicts=(pulseaudio-bluetooth)
+ provides=(pulseaudio-bluetooth)
+ optdepends=('gst-plugins-bad: AptX and LDAC support')
+
+ mv bluetooth/* "$pkgdir"
+}
+
+package_pulseaudio-equalizer-git() {
+ pkgdesc="Graphical equalizer for PulseAudio (development)"
+ depends=(
+ "pulseaudio-git=$pkgver-$pkgrel"
+ python-dbus
+ python-pyqt5
+ fftw
+ python
+ glibc
+ dbus
+ )
+ conflicts=(pulseaudio-equalizer)
+ provides=(pulseaudio-equalizer)
+
+ mv equalizer/* "$pkgdir"
+}
+
+package_pulseaudio-rtp-git() {
+ pkgdesc="RTP and RAOP support for PulseAudio (development)"
+ provides=(pulseaudio-rtp)
+ conflicts=(pulseaudio-rtp)
+ depends=(
+ gst-plugins-base
+ gst-plugins-base-libs
+ gst-plugins-good
+ openssl
+ "pulseaudio-git=$pkgver-$pkgrel"
+ )
+
+ mv rtp/* "$pkgdir"
+}
+
+# vim:set sw=2 et:
+