summaryrefslogtreecommitdiffstats
path: root/jack
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2014-01-06 08:17:34 +0000
committer Eric Hameleers <alien@slackware.com>2014-01-06 08:17:34 +0000
commitc531d97a2cc0a89141093038b8f248a1c2ec1cdb (patch)
tree5b06aac9ccb1b45bf0cd9f5b0b3dd2d61f574a22 /jack
parentf2ea715510224556fa5ec1efa0abaea9d98a9bc2 (diff)
downloadasb-c531d97a2cc0a89141093038b8f248a1c2ec1cdb.tar.gz
asb-c531d97a2cc0a89141093038b8f248a1c2ec1cdb.tar.xz
Update to 1.9.9.5, and a rebuild to include support for opus in netjack2
Diffstat (limited to 'jack')
-rwxr-xr-xjack/build/jack.SlackBuild136
1 files changed, 75 insertions, 61 deletions
diff --git a/jack/build/jack.SlackBuild b/jack/build/jack.SlackBuild
index da507897..f79dc357 100755
--- a/jack/build/jack.SlackBuild
+++ b/jack/build/jack.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
# $Id$
-# Copyright (c) 2007-2009 Eric Hameleers, Eindhoven, NL
+# Copyright 2007, 2008, 2009, 2013 Eric Hameleers, Eindhoven, NL
# All rights reserved.
#
# Permission to use, copy, modify, and distribute this software for
@@ -28,7 +28,7 @@
# For: jack
# Descr: low-latency audio server
# URL: http://jackaudio.org/
-# Needs: libsamplerate,libsndfile
+# Needs: opus
# Changelog:
# 0.103.0-1: 24/Jun/2007 by Eric Hameleers <alien@slackware.com>
# * Initial build.
@@ -36,78 +36,105 @@
# * Update.
# 0.116.2-1: 22/sep/2009 by Eric Hameleers <alien@slackware.com>
# * Update.
+# 1.9.9.5-1: 21/dec/2013 by Eric Hameleers <alien@slackware.com>
+# * Update.
+# 1.9.9.5-2: 04/jan/2014 by Eric Hameleers <alien@slackware.com>
+# * Rebuild against the OPUS codec, thereby enabling Opus-netjack2.
#
# Run 'sh jack.SlackBuild' to build a Slackware package.
-# The package (.tgz) plus descriptive .txt file are created in /tmp .
+# The package (.txz) plus descriptive .txt file are created in /tmp .
# Install using 'installpkg'.
#
# -----------------------------------------------------------------------------
-# Set initial variables:
-
PRGNAM=jack
-VERSION=${VERSION:-0.116.2}
-ARCH=${ARCH:-i486}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-1.9.9.5}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:" -j4 "}
TAG=${TAG:-"alien"}
# Where do we look for sources?
SRCDIR=$(cd $(dirname $0); pwd)
-DOCS="AUTHORS COPYING* README TODO $SRCDIR/00README"
+DOCS="ChangeLog README* TODO"
# Place to build (TMP) package (PKG) and output (OUTPUT) the program:
TMP=${TMP:-/tmp/build}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-SOURCE="$SRCDIR/${PRGNAM}-audio-connection-kit-${VERSION}.tar.gz"
-SRCURL="http://jackaudio.org/downloads/${PRGNAM}-audio-connection-kit-${VERSION}.tar.gz"
+SOURCE="$SRCDIR/${PRGNAM}-${VERSION}.tar.bz2"
+SRCURL="http://jackaudio.org/downloads/${PRGNAM}-${VERSION}.tar.bz2"
##
## --- with a little luck, you won't have to edit below this point --- ##
##
-# Exit the script on errors:
-set -e
-trap 'echo "$0 FAILED at line $LINENO!" | tee $OUTPUT/error-${PRGNAM}.log' ERR
-# Catch unitialized variables:
-set -u
-P1=${1:-1}
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ armv6hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
case "$ARCH" in
i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
- s390) SLKCFLAGS="-O2"
+ x86_64) SLKCFLAGS="-O2 -fPIC"
+ SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
+ ;;
+ armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
- powerpc) SLKCFLAGS="-O2"
+ armv6hl) SLKCFLAGS="-O2 -march=armv6 -mfpu=vfp -mfloat-abi=hard"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
- x86_64) SLKCFLAGS="-O2 -fPIC"
- SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
+ *) SLKCFLAGS=${SLKCFLAGS:-"O2"}
+ SLKLDFLAGS=${SLKLDFLAGS:-""}; LIBDIRSUFFIX=${LIBDIRSUFFIX:-""}
;;
esac
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+# Exit the script on errors:
+set -e
+trap 'echo "$0 FAILED at line ${LINENO}" | tee $OUTPUT/error-${PRGNAM}.log' ERR
+# Catch unitialized variables:
+set -u
+P1=${1:-1}
+
+# Save old umask and set to 0022:
+_UMASK_=$(umask)
+umask 0022
+
# Create working directories:
mkdir -p $OUTPUT # place for the package to be saved
mkdir -p $TMP/tmp-$PRGNAM # location to build the source
mkdir -p $PKG # place for the package to be built
rm -rf $PKG/* # always erase old package's contents
rm -rf $TMP/tmp-$PRGNAM/* # remove the remnants of previous build
-rm -rf $OUTPUT/{configure,make,install,error,makepkg}-$PRGNAM.log
+rm -rf $OUTPUT/{configure,make,install,error,makepkg,patch}-$PRGNAM.log
# remove old log files
# Source file availability:
if ! [ -f ${SOURCE} ]; then
+ echo "Source '$(basename ${SOURCE})' not available yet..."
+ # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
+ [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/$(basename $SOURCE)"
+ if [ -f ${SOURCE} ]; then echo "Ah, found it!"; continue; fi
if ! [ "x${SRCURL}" == "x" ]; then
- # Check if the $SRCDIR is writable at all - if not, download to $OUTPUT
- [ -w "$SRCDIR" ] || SOURCE="$OUTPUT/I$(basename $SOURCE)"
- echo "Source 'IIIII$(basename ${SOURCE})' not available yet..."
echo "Will download file to $(dirname $SOURCE)"
- wget -nv -T 30 -O "${SOURCE}" "${SRCURL}" || true
+ wget -nv -T 20 -O "${SOURCE}" "${SRCURL}" || true
if [ $? -ne 0 -o ! -s "${SOURCE}" ]; then
echo "Downloading '$(basename ${SOURCE})' failed... aborting the build."
mv -f "${SOURCE}" "${SOURCE}".FAIL
@@ -133,39 +160,34 @@ echo "++"
cd $TMP/tmp-$PRGNAM
echo "Extracting the source archive(s) for $PRGNAM..."
tar -xvf ${SOURCE}
-cd ${PRGNAM}-audio-connection-kit-${VERSION}
+cd ${PRGNAM}-${VERSION}
chown -R root:root .
-chmod -R u+w,go+r-w,a-s .
+chmod -R u+w,go+r-w,a+X-s .
echo Building ...
LDFLAGS="$SLKLDFLAGS" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
-./configure \
+./waf configure \
--prefix=/usr \
+ --alsa \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --mandir=/usr/man \
- --localstatedir=/var \
- --sysconfdir=/etc \
- --with-html-dir=/usr/doc/$PRGNAM-$VERSION \
- --enable-shared \
- --enable-static \
- --enable-optimization-by-compiler \
- --disable-portaudio \
- --with-default-tmpdir=/dev/shm \
- --program-prefix= \
- --program-suffix= \
- --build=$ARCH-slackware-linux \
+ --libdir32=/usr/lib \
+ --mandir=/usr/man/man1 \
+ --dbus \
+ --classic \
2>&1 | tee $OUTPUT/configure-${PRGNAM}.log
- # the above has '--disable-portaudio' because we want the reverse:
- # - add support for jack in portaudio
-make 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
-make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PRGNAM}.log
+./waf build 2>&1 | tee $OUTPUT/make-${PRGNAM}.log
+./waf install --destdir=$PKG 2>&1 |tee $OUTPUT/install-${PRGNAM}.log
# Create a post installation script:
mkdir -p $PKG/install
cat <<EOINS > $PKG/install/doinst.sh
+if [ -x /sbin/setcap ]; then
+ /sbin/setcap cap_ipc_lock,cap_sys_nice=ep usr/bin/jackd
+fi
+
# Write an entry into fstab for the RAM-based tmpfs that jack wants to
# see mounted on /dev/shm (for the low-latency!!!).
if ! grep -q "/dev/shm" etc/fstab ; then
@@ -180,11 +202,7 @@ EOINS
# Add documentation:
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION || true
-cat $SRCDIR/$(basename $0) | sed \
- -e "/^VERSION=/s/:-.*}/:-$VERSION}/" \
- -e "/^ARCH=/s/:-.*}/:-$ARCH}/" \
- -e "/^BUILD=/s/:-.*}/:-$BUILD}/" \
- > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+cat $SRCDIR/$(basename $0) > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
chown -R root:root $PKG/usr/doc/$PRGNAM-$VERSION
find $PKG/usr/doc -type f -exec chmod 644 {} \;
@@ -201,21 +219,17 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
# Add a package description:
mkdir -p $PKG/install
cat $SRCDIR/slack-desc > $PKG/install/slack-desc
-if [ -f $SRCDIR/doinst.sh ]; then
- cat $SRCDIR/doinst.sh >> $PKG/install/doinst.sh
-fi
-if [ -f $SRCDIR/slack-required ]; then
- cat $SRCDIR/slack-required > $PKG/install/slack-required
-fi
+cat $SRCDIR/slack-required > $PKG/install/slack-required
# Build the package:
cd $PKG
-makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
+makepkg --linkadd y --chown n $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz 2>&1 | tee $OUTPUT/makepkg-${PRGNAM}.log
cd $OUTPUT
-md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.tgz.md5
+md5sum ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz > ${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txz.md5
cd -
cat $PKG/install/slack-desc | grep "^${PRGNAM}" > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.txt
-if [ -f $PKG/install/slack-required ]; then
- cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep
-fi
+cat $PKG/install/slack-required > $OUTPUT/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.dep
+
+# Restore the original umask:
+umask ${_UMASK_}