archrelease: copy trunk to extra-x86_64
[arch-packages.git] / pulseaudio / trunk / PKGBUILD
blob808a994667045303e1c01cb72b05dd3d9a94ac2c
1 # Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
3 pkgbase=pulseaudio
4 pkgname=(
5   pulseaudio
6   libpulse
7   pulseaudio-zeroconf
8   pulseaudio-lirc
9   pulseaudio-jack
10   pulseaudio-bluetooth
11   pulseaudio-equalizer
12   pulseaudio-rtp
14 pkgver=16.1
15 pkgrel=6
16 pkgdesc="A featureful, general-purpose sound server"
17 url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
18 arch=(x86_64)
19 license=(GPL)
20 makedepends=(
21   alsa-lib
22   attr
23   avahi
24   bluez
25   bluez-libs
26   check
27   dbus
28   doxygen
29   fftw
30   git
31   gst-plugins-base-libs
32   gtk3
33   jack2
34   libasyncns
35   libcap
36   libsm
37   libsndfile
38   libsoxr
39   libxtst
40   lirc
41   meson
42   openssl
43   orc
44   rtkit
45   sbc
46   speexdsp
47   systemd
48   tdb
49   valgrind
50   webrtc-audio-processing
51   xmltoman
53 _commit=e5ad31e873eed62bc580a86a61177047f9e8c491  # tags/v16.1^0
54 source=("git+https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git#commit=$_commit")
55 sha256sums=('SKIP')
57 pkgver() {
58   cd pulseaudio
59   git describe --tags | sed 's/^v//;s/[^-]*-g/r&/;s/-/+/g'
62 prepare() {
63   cd pulseaudio
65   # Freeze version before patching
66   ./git-version-gen doesnt-exist >.tarball-version
69 build() {
70   local meson_options=(
71     -D elogind=disabled
72     -D pulsedsp-location='/usr/\$LIB/pulseaudio'
73     -D stream-restore-clear-old-devices=true
74     -D tcpwrap=disabled
75     -D udevrulesdir=/usr/lib/udev/rules.d
76   )
78   arch-meson pulseaudio build "${meson_options[@]}"
79   meson compile -C build
82 check() {
83   meson test -C build --print-errorlogs
84   ninja -C build test-daemon
87 _pick() {
88   local p="$1" f d; shift
89   for f; do
90     d="$srcdir/$p/${f#$pkgdir/}"
91     mkdir -p "$(dirname "$d")"
92     mv "$f" "$d"
93     rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
94   done
97 package_pulseaudio() {
98   depends=(
99     alsa-lib
100     fftw
101     libcap
102     libltdl
103     "libpulse=$pkgver-$pkgrel"
104     libsm
105     libsoxr
106     libxtst
107     orc
108     rtkit
109     speexdsp
110     tdb
111     webrtc-audio-processing
112   )
113   optdepends=(
114     'pulseaudio-alsa: ALSA configuration (recommended)'
115     'pulseaudio-bluetooth: Bluetooth support'
116     'pulseaudio-equalizer: Graphical equalizer'
117     'pulseaudio-jack: Jack support'
118     'pulseaudio-lirc: IR (lirc) support'
119     'pulseaudio-rtp: RTP and RAOP support'
120     'pulseaudio-zeroconf: Zeroconf support'
121   )
122   backup=(
123     etc/pulse/daemon.conf
124     etc/pulse/default.pa
125     etc/pulse/system.pa
126   )
127   install=pulseaudio.install
128   replaces=(
129     'pulseaudio-gconf<=11.1'
130     'pulseaudio-xen<=9.0'
131   )
133   meson install -C build --destdir "$pkgdir"
135   cd "$pkgdir"
137   # Superseded by socket activation
138   sed -e '/autospawn/iautospawn = no' \
139       -i etc/pulse/client.conf
141   # Disable cork-request module, can result in e.g. media players unpausing
142   # when there's a Skype call incoming
143   sed -e 's|/usr/bin/pactl load-module module-x11-cork-request|#&|' \
144       -i usr/bin/start-pulseaudio-x11
146   # Required by qpaeq
147   sed -e '/Load several protocols/aload-module module-dbus-protocol' \
148       -i etc/pulse/default.pa
150   rm -r etc/dbus-1
152   # Split packages
153   _pick libpulse etc/pulse/client.conf
154   _pick libpulse usr/bin/pa{cat,ctl,dsp,mon,play,rec,record}
155   _pick libpulse usr/lib/libpulse{,-simple,-mainloop-glib}.so*
156   _pick libpulse usr/lib/{cmake,pkgconfig}
157   _pick libpulse usr/lib/pulseaudio/libpulse{dsp,common-*}.so
158   _pick libpulse usr/include
159   _pick libpulse usr/share/man/man1/pa{cat,ctl,dsp,mon,play,rec,record}.1
160   _pick libpulse usr/share/man/man5/pulse-client.conf.5
161   _pick libpulse usr/share/bash-completion/completions/pa{cat,ctl,dsp,play,rec,record}
162   _pick libpulse usr/share/bash-completion/completions/pulseaudio
163   _pick libpulse usr/share/vala
164   _pick libpulse usr/share/zsh
166   local moddir=usr/lib/pulseaudio/modules
168   _pick zeroconf $moddir/libavahi-wrap.so
169   _pick zeroconf $moddir/module-zeroconf-{publish,discover}.so
170   _pick zeroconf $moddir/module-raop-discover.so
172   _pick lirc $moddir/module-lirc.so
174   _pick jack $moddir/module-jack-{sink,source}.so
175   _pick jack $moddir/module-jackdbus-detect.so
177   _pick bluetooth $moddir/libbluez5-util.so
178   _pick bluetooth $moddir/module-bluetooth-{discover,policy}.so
179   _pick bluetooth $moddir/module-bluez5-{discover,device}.so
181   _pick equalizer $moddir/module-equalizer-sink.so
182   _pick equalizer usr/bin/qpaeq
184   _pick rtp $moddir/lib{rtp,raop}.so
185   _pick rtp $moddir/module-rtp-{send,recv}.so
186   _pick rtp $moddir/module-raop-sink.so
189 package_libpulse() {
190   pkgdesc="$pkgdesc (client library)"
191   depends=(
192     dbus
193     libasyncns
194     libsndfile
195     libxcb
196     systemd
197   )
198   optdepends=('glib2: mainloop integration')
199   provides=(
200     libpulse-mainloop-glib.so
201     libpulse-simple.so
202     libpulse.so
203   )
204   license=(LGPL)
205   backup=(etc/pulse/client.conf)
207   mv libpulse/* "$pkgdir"
210 package_pulseaudio-zeroconf() {
211   pkgdesc="Zeroconf support for PulseAudio"
212   depends=(
213     avahi
214     "pulseaudio=$pkgver-$pkgrel"
215   )
217   mv zeroconf/* "$pkgdir"
220 package_pulseaudio-lirc() {
221   pkgdesc="IR (lirc) support for PulseAudio"
222   depends=(
223     lirc
224     "pulseaudio=$pkgver-$pkgrel"
225   )
227   mv lirc/* "$pkgdir"
230 package_pulseaudio-jack() {
231   pkgdesc="Jack support for PulseAudio"
232   depends=(
233     jack
234     "pulseaudio=$pkgver-$pkgrel"
235   )
237   mv jack/* "$pkgdir"
240 package_pulseaudio-bluetooth() {
241   pkgdesc="Bluetooth support for PulseAudio"
242   depends=(
243     bluez
244     bluez-libs
245     gst-plugins-base-libs
246     "pulseaudio=$pkgver-$pkgrel"
247     sbc
248   )
249   optdepends=('gst-plugins-bad: AptX and LDAC support')
251   mv bluetooth/* "$pkgdir"
254 package_pulseaudio-equalizer() {
255   pkgdesc="Graphical equalizer for PulseAudio"
256   depends=(
257     "pulseaudio=$pkgver-$pkgrel"
258     python-dbus
259     python-pyqt5
260   )
262   mv equalizer/* "$pkgdir"
265 package_pulseaudio-rtp() {
266   pkgdesc="RTP and RAOP support for PulseAudio"
267   depends=(
268     gst-plugins-base
269     gst-plugins-base-libs
270     gst-plugins-good
271     openssl
272     "pulseaudio=$pkgver-$pkgrel"
273   )
275   mv rtp/* "$pkgdir"
278 # vim:set sw=2 et: