summaryrefslogtreecommitdiff
path: root/extra/pulseaudio/PKGBUILD
blob: 580ebf7167c7a9b895f99d92100752ed2c8474a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# $Id: PKGBUILD 188177 2013-06-11 17:10:36Z heftig $
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# Contributor: Corrado Primier <bardo@aur.archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>

pkgbase=pulseaudio
pkgname=(pulseaudio libpulse)
pkgdesc="A featureful, general-purpose sound server"
pkgver=4.0
pkgrel=2
arch=(i686 x86_64 mips64el)
url="http://www.freedesktop.org/wiki/Software/PulseAudio"
license=(GPL LGPL)
makedepends=(libasyncns libcap attr libxtst libsm libsamplerate libtool rtkit
             speex tdb systemd dbus avahi bluez4 bluez-libs gconf intltool jack sbc
             openssl fftw orc json-c gtk3 webrtc-audio-processing
             check)
[ "$CARCH" != "mips64el" ] && makedepends+=(lirc-utils)
options=(!emptydirs !libtool)
source=(http://freedesktop.org/software/$pkgbase/releases/$pkgbase-$pkgver.tar.xz
        pulseaudio.xinit)
sha256sums=('35ceb36bb1822fe54f0b5e4863b4f486769fdfb8ff2111f01fd8778928f9cdae'
            'a0db6cdc74fbf0ca10e2343c08e1e228f109221c6c0ff91b0bfade5c4bdf03cf')

build() {
  cd $pkgbase-$pkgver

  ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --libexecdir=/usr/lib \
    --localstatedir=/var \
    --with-udev-rules-dir=/usr/lib/udev/rules.d \
    --with-database=tdb \
    --disable-tcpwrap \
    --disable-rpath \
    --disable-default-build-tests

  # fight unused direct deps
  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool

  make
}

package_pulseaudio() {
  depends=("libpulse=$pkgver-$pkgrel" rtkit libltdl speex tdb systemd fftw orc
           libsamplerate webrtc-audio-processing sbc)
  optdepends=('avahi: zeroconf support'
              'bluez4: bluetooth support'
              'bluez-libs: bluetooth support'
              'gconf: configuration through gconf (paprefs)'
              'jack: jack support'
              'openssl: RAOP support'
              'python2-pyqt: Equalizer GUI (qpaeq)')
[ "$CARCH" = "mips64el" ] || optdepends+=('lirc-utils: infra-red support')
  backup=(etc/pulse/{daemon.conf,default.pa,system.pa})
  install=pulseaudio.install

  cd $pkgbase-$pkgver
  make -j1 DESTDIR="$pkgdir" install \
    bashcompletiondir=/usr/share/bash-completion/completions

  # Disable autospawn by default
  sed -e '/autospawn/iautospawn=no' \
      -i "$pkgdir/etc/pulse/client.conf"

  # Speed up pulseaudio shutdown
  # Lower resample quality, saves CPU
  sed -e '/exit-idle-time/iexit-idle-time=0' \
      -e '/resample-method/iresample-method=speex-float-0' \
      -i "$pkgdir/etc/pulse/daemon.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"

  # Make ConsoleKit optional
  sed -e $'/load-module module-console-kit/{i.nofail\n;a.fail\n;}' \
      -i "$pkgdir/etc/pulse/default.pa"

  # Python fix
  sed -i '1s:python$:&2:' "$pkgdir/usr/bin/qpaeq" || true

  install -Dm755 "$srcdir/pulseaudio.xinit" "$pkgdir/etc/X11/xinit/xinitrc.d/pulseaudio"

  rm "$pkgdir/etc/dbus-1/system.d/pulseaudio-system.conf"

  # cap is handled in .install
  chmod 755 "$pkgdir/usr/lib/pulse/proximity-helper"

  install -Dm644 shell-completion/pulseaudio-zsh-completion.zsh \
    "$pkgdir/usr/share/zsh/site-functions/_pulseaudio"

### Split libpulse

  mkdir -p "$srcdir"/libpulse/{etc/pulse,usr/{bin,lib/pulseaudio,share/man/man{1,5}}}

  mv {"$pkgdir","$srcdir/libpulse"}/etc/pulse/client.conf

  mv "$pkgdir"/usr/bin/pa{cat,ctl,dsp,mon,play,rec,record} \
     "$srcdir/libpulse/usr/bin"

  mv "$pkgdir"/usr/lib/libpulse{,-simple,-mainloop-glib}.so* \
     "$srcdir/libpulse/usr/lib"

  mv "$pkgdir"/usr/lib/pulseaudio/libpulsedsp.so \
     "$pkgdir"/usr/lib/pulseaudio/libpulsecommon-*.so \
     "$srcdir/libpulse/usr/lib/pulseaudio"

  mv {"$pkgdir","$srcdir/libpulse"}/usr/lib/cmake
  mv {"$pkgdir","$srcdir/libpulse"}/usr/lib/pkgconfig

  mv {"$pkgdir","$srcdir/libpulse"}/usr/include

  mv "$pkgdir"/usr/share/man/man1/pa{cat,ctl,dsp,play}.1 \
     "$srcdir/libpulse/usr/share/man/man1"

  mv {"$pkgdir","$srcdir/libpulse"}/usr/share/man/man5/pulse-client.conf.5
  mv {"$pkgdir","$srcdir/libpulse"}/usr/share/vala
}

package_libpulse() {
  pkgdesc="$pkgdesc (client library)"
  depends=(dbus libasyncns libcap libxtst libsm libsndfile json-c)
  optdepends=('alsa-plugins: ALSA support'
              'avahi: zeroconf support')
  backup=(etc/pulse/client.conf)

  mv "$srcdir"/libpulse/* "$pkgdir"
}