summaryrefslogtreecommitdiff
path: root/community/jack2/PKGBUILD
blob: f03152b49bac57ca2965b23a5d58cd6749cf6789 (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
# $Id: PKGBUILD 84828 2013-02-25 06:15:43Z schiv $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Daniele Paolella <danielepaolella@email.it>
# Contributor: Philipp Überbacher <hollunder at gmx dot at>
# Contributor: Thomas Bahn <thomas-bahn at gmx dot net>

pkgbase=jack2
pkgname=('jack2' 'jack2-dbus')
#pkgname= # single build (overrides split)
_tarname=jack
pkgver=1.9.9.5
pkgrel=2
arch=('i686' 'x86_64' 'mips64el')
url="http://jackaudio.org/"
backup=(etc/security/limits.d/99-audio.conf)
license=('GPL')
makedepends=('python2' 'celt' 'libsamplerate')
[ "$CARCH" != "mips64el" ] && makedepends+=('libffado')
source=("https://dl.dropbox.com/u/28869550/jack-1.9.9.5.tar.bz2"
        '99-audio.conf'
        '40-hpet-permissions.rules')
md5sums=('6c9de6b89db9d7076fa2ce222816cf4c'
         'ae65b7c9ebe0fff6c918ba9d97ae342d'
         '471aad533ff56c5d3cbbf65ce32cadef')

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

_wafconf() {
  if [ "$CARCH" = "mips64el" ]; then
    firewire=""
  else
    firewire=--firewire
  fi
  python2 waf configure --prefix=/usr \
                        --alsa \
                        $firewire $@

  # not building with doxygen
  # see https://github.com/jackaudio/jack2/issues/22
}

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

build() {
  cd "$srcdir"

  # Some optimisation bug exists for current GCC
  # see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53663
  export CFLAGS="${CFLAGS/-O[0-9]/-O0}"
  export CXXFLAGS="$CFLAGS"

  # fix doxygen building
  # TODO: report upstream, but redundant until gihub issue 22 resolves
  #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; 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; then
    cd $_tarname-dbus-$pkgver
    msg2 "Running D-Bus-only build"
    _wafconf --dbus
    python2 waf build $MAKEFLAGS
    cd ..
  fi
}

package_jack2() {
  ! _isbuild jack2 && return 0

  pkgdesc="The next-generation JACK with SMP support"
  depends=('libsamplerate' 'celt')
  optdepends=('python2: jack_control')
  [ "$CARCH" != "mips64el" ] && depends+=('libffado')
  conflicts=('jack')
  provides=('jack' 'jackmp' 'jackdmp' 'jackdbus')

  cd "$srcdir/$_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/usr/lib/udev/rules.d/40-hpet-permissions.rules"
}

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

  pkgdesc="The next-generation JACK with SMP support (for D-BUS interaction only)"
  depends=('libsamplerate' 'celt')
  [ "$CARCH" != "mips64el" ] && depends+=('libffado')
  optdepends=('python2: jack_control')
  conflicts=('jack' 'jack2')
  provides=('jack' 'jack2' 'jackmp' 'jackdmp' 'jackdbus')

  cd "$srcdir/$_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/usr/lib/udev/rules.d/40-hpet-permissions.rules"
}

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