[Jack-Devel] Help for compiling jack2

Ralf Mardorf ralf.mardorf at alice-dsl.net
Wed Mar 9 21:52:05 CET 2016


Hi,

regarding the distro's package policy, the make dependencies are not
the same for each distro.

Ubuntu/Debian
=============

https://tracker.debian.org/media/packages/j/jackd2/control-1.9.10%2B20150825git1ed50c92~dfsg-1
https://tracker.debian.org/media/packages/j/jackd2/rules-1.9.10%2B20150825git1ed50c92~dfsg-1
https://tracker.debian.org/pkg/jackd2

Arch Linux
==========

[rocketmouse at archlinux ~]$ cat /usr/src/jack2/jack2-rocketmouse/PKGBUILD
pkgbase=jack2
pkgname=('jack2' 'jack2-dbus')
#pkgname= # single build (overrides split)
_tarname=jack
pkgver=1.9.10.r177.g7bdad49
pkgrel=1
arch=('i686' 'x86_64')
url="http://jackaudio.org/"
backup=(etc/security/limits.d/99-audio.conf)
license=('GPL')
makedepends=('python2-dbus' 'celt' 'opus' 'libsamplerate' 'git' 'libffado')
source=("git+https://github.com/jackaudio/jack2"
        '99-audio.conf'
        '40-hpet-permissions.rules')
md5sums=('SKIP'
         'ae65b7c9ebe0fff6c918ba9d97ae342d'
         '471aad533ff56c5d3cbbf65ce32cadef')

_gitname='jack2'

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

_wafconf() {
  # default=64,  AUR=128,  kxstudio=256  --clients= 
  # default=768, AUR=1536, kxstudio=2048 --ports-per-application= 

  python2 waf configure --prefix=/usr \
    --clients=64 --ports-per-application=768 \
    --alsa  --firewire $@
}

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

pkgver() {
  cd jack2
  echo $(git describe|sed -r 's/^v//;s/([^-]*-g)/r\1/;s/-/./g')
}

prepare() {
  # we may do 2 different builds
  cp -r $_gitname $_gitname-dbus
}

build() {
  cd "$srcdir"

  # mixed dbus/classic build
  if _isbuild jack2; then
    cd $_gitname
    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 $_gitname-dbus
    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' 'opus' 'celt' 'libffado')
  optdepends=('python2-dbus: jack_control')
  conflicts=('jack')
  provides=('jack' 'jackmp' 'jackdmp' 'jackdbus')

  cd "$srcdir/$_gitname"

  python2 waf install --destdir="$pkgdir"

  # fix for major python transition
  _pyfix

  # configure realtime access/scheduling
  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' 'opus' 'libffado')
  optdepends=('python2-dbus: jack_control')
  conflicts=('jack' 'jack2')
  provides=('jack' 'jack2' 'jackmp' 'jackdmp' 'jackdbus')

  cd "$srcdir/$_gitname-dbus"

  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"
}


Get the rest from ABS:
[rocketmouse at archlinux ~]$ ls -hAl /var/abs/community/jack2/
total 16K
-rw-r--r-- 1 root root   60 Mar  9 00:11 40-hpet-permissions.rules
-rw-r--r-- 1 root root   50 Mar  9 00:11 99-audio.conf
-rw-r--r-- 1 root root 1.5K Mar  9 00:11 jack1compat.diff
-rw-r--r-- 1 root root 3.6K Mar  9 00:11 PKGBUILD

Regards,
Ralf



More information about the Jackaudio mailing list