From 97a07beb57a959559ce8690922d8b6e470deff0e Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 9 Sep 2012 21:36:39 +0000 Subject: [PATCH] jack2 multilib and celt --- jack2-multilib/40-hpet-permissions.rules | 2 + jack2-multilib/99-audio.conf | 2 + jack2-multilib/PKGBUILD | 145 +++++++++++++++++++++++ lib32-celt/PKGBUILD | 41 +++++++ 4 files changed, 190 insertions(+) create mode 100644 jack2-multilib/40-hpet-permissions.rules create mode 100644 jack2-multilib/99-audio.conf create mode 100644 jack2-multilib/PKGBUILD create mode 100644 lib32-celt/PKGBUILD diff --git a/jack2-multilib/40-hpet-permissions.rules b/jack2-multilib/40-hpet-permissions.rules new file mode 100644 index 0000000..7af3780 --- /dev/null +++ b/jack2-multilib/40-hpet-permissions.rules @@ -0,0 +1,2 @@ +KERNEL=="rtc0", GROUP="audio" +KERNEL=="hpet", GROUP="audio" diff --git a/jack2-multilib/99-audio.conf b/jack2-multilib/99-audio.conf new file mode 100644 index 0000000..eb76ef9 --- /dev/null +++ b/jack2-multilib/99-audio.conf @@ -0,0 +1,2 @@ +@audio - rtprio 99 +@audio - memlock unlimited diff --git a/jack2-multilib/PKGBUILD b/jack2-multilib/PKGBUILD new file mode 100644 index 0000000..93e6200 --- /dev/null +++ b/jack2-multilib/PKGBUILD @@ -0,0 +1,145 @@ +# +# Chakra Packages for Chakra, part of chakra-project.org +# +# Maintainer: Michael Haesel +# + +# 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}/usr/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}/usr/lib/udev/rules.d/40-hpet-permissions.rules" + + _mklinks +} + +# vim:set ts=2 sw=2 et: diff --git a/lib32-celt/PKGBUILD b/lib32-celt/PKGBUILD new file mode 100644 index 0000000..f0aaf6a --- /dev/null +++ b/lib32-celt/PKGBUILD @@ -0,0 +1,41 @@ +# +# Chakra Packages for Chakra, part of chakra-project.org +# +# Maintainer: Michael Haesel + +_realname=celt +pkgname=lib32-$_realname +pkgver=0.11.1 +pkgrel=1 +pkgdesc='Low-latency audio communication codec (32 bit)' +arch=('x86_64') +url='http://www.celt-codec.org' +license=('BSD') +depends=('lib32-glibc' "${_realname}=${pkgver}") +makedepends=('gcc-multilib') +options=('!libtool') +source=("http://downloads.xiph.org/releases/${_realname}/${_realname}-${pkgver}.tar.gz") +md5sums=('94fe4acd241da8702c295bcd13a555e6') + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + + ./configure --prefix=/usr --libdir=/usr/lib32 + make -C libcelt +} + +package() { + cd "${srcdir}/${_realname}-${pkgver}" + + make DESTDIR="${pkgdir}" install-pkgconfigDATA + make -C libcelt DESTDIR="${pkgdir}" install + + # remove unneeded stuff + rm -rf "${pkgdir}/usr/include" +} + +# vim:set ts=2 sw=2 et: