summaryrefslogtreecommitdiff
path: root/multilib-testing/jack2-multilib/PKGBUILD
blob: 6c45b64d6aa48f9a756a045eb8407206eb289188 (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
132
133
134
135
136
137
138
139
140
141
142
143
# $Id: PKGBUILD 52694 2011-07-27 17:23:48Z schiv $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: SpepS <dreamspepser at yahoo dot it>

# This one is in response to a need for an equivalent to lib32-jack for
# jack2. A lib32-jack2 would require much patching and invading the pure
# jack2 package, and what's more, the buildsystem provides a flag just to
# build a hybrid jack2 in full. As such, we have opted to provide multilib
# users with a replacement package instead of the usual lib32 add-on.
#
# See http://mailman.archlinux.org/pipermail/arch-multilib/2011-December/000251.html

pkgbase=jack2-multilib
pkgname=('jack2-multilib' 'jack2-dbus-multilib')
#pkgname= # single build (overrides split)
_tarname=jack
pkgver=1.9.8
pkgrel=1
arch=('x86_64')
url="http://jackaudio.org/"
backup=(etc/security/limits.d/99-audio.conf)
license=('GPL')
makedepends=('python2' 'doxygen' 'libffado'
             'libsamplerate' 'lib32-dbus-core' 'lib32-celt'
             'gcc-multilib')
source=("http://www.grame.fr/~letz/$_tarname-$pkgver.tgz"
        '99-audio.conf'
        '40-hpet-permissions.rules')
md5sums=('1dd2ff054cab79dfc11d134756f27165'
         'ae65b7c9ebe0fff6c918ba9d97ae342d'
         '471aad533ff56c5d3cbbf65ce32cadef')

_pyfix() {
  sed -i 's:bin/env python:bin/env python2:' \
    "$pkgdir/usr/bin/jack_control"
}

_wafconf() {
  python2 waf configure --prefix=/usr \
                        --alsa \
                        --firewire \
                        --mixed \
                        --doxygen $@
}

_isbuild() {
  printf "%s\n" ${pkgname[@]} | grep -qx $1
}

_mklinks() {
  ln -s /usr/lib32/libjack.so.0.1.0 "$pkgdir/usr/lib32/libjack.so.0"
  ln -s /usr/lib32/libjack.so.0 "$pkgdir/usr/lib32/libjack.so"
}

build() {
  cd "$srcdir/$_tarname-$pkgver"

  export LINKFLAGS="$LDFLAGS"

  # fix doxygen building
  sed -i 's:build/default/html:html:' $_tarname-$pkgver/wscript

  # we may do 2 different builds
  cp -r $_tarname-$pkgver $_tarname-dbus-$pkgver

  # mixed dbus/classic build
  if _isbuild jack2-multilib; then
    cd $_tarname-$pkgver
    msg2 "Running Mixed D-Bus/Classic build"
    _wafconf --classic --dbus
    python2 waf build $MAKEFLAGS
    cd ..
  fi

  # dbus-ONLY build
  if _isbuild jack2-dbus-multilib; then
    cd $_tarname-dbus-$pkgver
    msg2 "Running D-Bus-only build"
    _wafconf --dbus
    python2 waf build $MAKEFLAGS
    cd ..
  fi
}

package_jack2-multilib() {
  ! _isbuild jack2-multilib && return 0

  pkgdesc="The next-generation JACK with SMP support & mixed mode"
  depends=('libsamplerate' 'lib32-celt' 'lib32-gcc-libs')
  optdepends=('libffado: FireWire support'
              'lib32-dbus-core: jackdbus'
              'python2: jack_control')
  conflicts=('jack' 'jack2' 'lib32-jack')
  provides=('jack' 'jackmp' 'jackdmp' 'jackdbus'
            'jack2' 'lib32-jack' 'lib32-jack2')

  cd "$srcdir/$_tarname-$pkgver/$_tarname-$pkgver"

  python2 waf install --destdir="$pkgdir"

  # fix for major python transition
  _pyfix

  # configure realtime access/scheduling
  # see https://bugs.archlinux.org/task/26343
  install -Dm644 "$srcdir/99-audio.conf" \
    "$pkgdir/etc/security/limits.d/99-audio.conf"

  install -Dm644 "$srcdir/40-hpet-permissions.rules" \
    "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"

  # should be done by upstream
  # see http://trac.jackaudio.org/ticket/200
  _mklinks
}

package_jack2-dbus-multilib() {
  ! _isbuild jack2-dbus-multilib && return 0

  pkgdesc="The next-generation JACK with SMP support & mixed mode (for D-BUS interaction only)"
  depends=('libsamplerate' 'lib32-celt' 'lib32-dbus-core' 'lib32-gcc-libs')
  optdepends=('libffado: FireWire support'
              'python2: jack_control')
  conflicts=('jack' 'jack2' 'lib32-jack' 'jack2-multilib')
  provides=('jack' 'jack2' 'jackmp' 'jackdmp' 'jackdbus'
            'jack2-dbus' 'jack2-multilib' 'lib32-jack' 'lib32-jack2')

  cd "$srcdir/$_tarname-$pkgver/$_tarname-dbus-$pkgver"

  python2 waf install --destdir="$pkgdir"

  _pyfix

  install -Dm644 "$srcdir/99-audio.conf" \
    "$pkgdir/etc/security/limits.d/99-audio.conf"

  install -Dm644 "$srcdir/40-hpet-permissions.rules" \
    "$pkgdir/lib/udev/rules.d/40-hpet-permissions.rules"

  _mklinks
}

# vim:set ts=2 sw=2 et: