audio/jalv: Added (host for LV2 plugins).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
B. Watson 2014-02-25 09:09:49 +07:00 committed by Willy Sudiarto Raharjo
parent cf82cee1bb
commit 5bc3c29c10
6 changed files with 273 additions and 0 deletions

25
audio/jalv/README Normal file
View file

@ -0,0 +1,25 @@
jalv (host for LV2 plugins)
Jalv is a simple but fully featured LV2 host for Jack. It runs LV2
plugins and exposes their ports as Jack ports, essentially making any
LV2 plugin function as a Jack application.
Jalv is a small program which is useful, but also intended to be an
appropriate test host for plugin development. It runs plugins from the
command line with no user interaction, is light enough to run in valgrind,
and is capable of dumping all plugin to/from UI communication in a human
readable format.
For testing with various host toolkits, there are several Jalv
executables: jalv, jalv.gtk, jalv.gtkmm, and jalv.qt. The jalv and
jalv.gtk programs are suitable for production use by users, the others
are less complete and intended for developer testing only. By default,
this SlackBuild only builds jalv (text) and jalv.gtk (gtk+-2.0). If you
really want to build the other UIs, pass ALL_UIS=yes in the script's
environment (and make sure you have gtkmm installed).
This package uses POSIX filesystem capabilities to execute with
elevated privileges (required for realtime audio processing). This
may be considered a security/stability risk. Please read
http://www.slackbuilds.org/caps/ for more information. To disable
capabilities, pass SETCAP=no to the script.

View file

@ -0,0 +1,90 @@
#!/bin/sh
# Slackware build script for jalv
# Written by B. Watson (yalhcru@gmail.com)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
PRGNAM=jalv
VERSION=${VERSION:-1.4.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# only the textmode and gtk+2 UIs are considered stable by upstream,
# no point building the others
if [ "${ALL_UIS:-no}" = "no" ]; then
patch -p1 < $CWD/remove_experimental_uis.diff
fi
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./waf configure \
--prefix=/usr \
--mandir=/usr/man
./waf build
./waf install --destdir=$PKG
strip $PKG/usr/bin/*
gzip -9 $PKG/usr/man/man1/*.1
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING INSTALL NEWS README $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# Only add capability stuff if not disabled:
if [ "${SETCAP:-yes}" = "yes" ]; then
cat $CWD/setcap.sh >> $PKG/install/doinst.sh
# Only allow execution by audio group
chown root:audio $PKG/usr/bin/*
chmod 0750 $PKG/usr/bin/*
fi
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

10
audio/jalv/jalv.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="jalv"
VERSION="1.4.4"
HOMEPAGE="http://drobilla.net/software/jalv/"
DOWNLOAD="http://download.drobilla.net/jalv-1.4.4.tar.bz2"
MD5SUM="56aea296a43b2906cc930c1727b3835c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="jack-audio-connection-kit lilv suil"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

View file

@ -0,0 +1,124 @@
diff -Naur jalv-1.4.4/doc/jalv.gtkmm.1 jalv-1.4.4.patched/doc/jalv.gtkmm.1
--- jalv-1.4.4/doc/jalv.gtkmm.1 2012-04-19 18:12:54.000000000 -0400
+++ jalv-1.4.4.patched/doc/jalv.gtkmm.1 1969-12-31 19:00:00.000000000 -0500
@@ -1,25 +0,0 @@
-.TH JALV.GTKMM 1 "19 Apr 2012"
-
-.SH NAME
-.B jalv.gtkmm \- Run an LV2 plugin as a JACK application (Gtkmm version).
-
-.SH SYNOPSIS
-.B jalv.gtkmm PLUGIN_URI
-
-.SH DESCRIPTION
-
-This is a versionm of Jalv with a GUI implemented in Gtkmm. It is mainly for
-developer testing purposes, for a production ready program use jalv.gtk.
-
-.SH SEE ALSO
-.BR jalv(1),
-.BR jalv.gtk(1),
-.BR jalv.qt(2),
-.BR lv2ls(1),
-.BR jackd(1)
-
-.SH AUTHOR
-jalv was written by David Robillard <d@drobilla.net>
-.PP
-This manual page was written by Jaromír Mikes <mira.mikes@seznam.cz>
-and David Robillard <d@drobilla.net>
diff -Naur jalv-1.4.4/doc/jalv.qt.1 jalv-1.4.4.patched/doc/jalv.qt.1
--- jalv-1.4.4/doc/jalv.qt.1 2012-04-19 18:12:43.000000000 -0400
+++ jalv-1.4.4.patched/doc/jalv.qt.1 1969-12-31 19:00:00.000000000 -0500
@@ -1,25 +0,0 @@
-.TH JALV.QT 1 "19 Apr 2012"
-
-.SH NAME
-.B jalv.qt \- Run an LV2 plugin as a JACK application (Qt version).
-
-.SH SYNOPSIS
-.B jalv.qt PLUGIN_URI
-
-.SH DESCRIPTION
-
-This is a versionm of Jalv with a GUI implemented in Qt. It is mainly for
-developer testing purposes, for a production ready program use jalv.gtk.
-
-.SH SEE ALSO
-.BR jalv(1),
-.BR jalv.gtkmm(1),
-.BR jalv.qt(2),
-.BR lv2ls(1),
-.BR jackd(1)
-
-.SH AUTHOR
-jalv was written by David Robillard <d@drobilla.net>
-.PP
-This manual page was written by Jaromír Mikes <mira.mikes@seznam.cz>
-and David Robillard <d@drobilla.net>
diff -Naur jalv-1.4.4/wscript jalv-1.4.4.patched/wscript
--- jalv-1.4.4/wscript 2014-01-04 16:18:19.000000000 -0500
+++ jalv-1.4.4.patched/wscript 2014-02-08 01:08:11.000000000 -0500
@@ -45,12 +45,6 @@
atleast_version='0.120.0', mandatory=True)
autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK2',
atleast_version='2.18.0', mandatory=False)
- autowaf.check_pkg(conf, 'gtk+-3.0', uselib_store='GTK3',
- atleast_version='3.0.0', mandatory=False)
- autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM2',
- atleast_version='2.20.0', mandatory=False)
- autowaf.check_pkg(conf, 'QtGui', uselib_store='QT4',
- atleast_version='4.0.0', mandatory=False)
conf.check(function_name='jack_port_type_get_buffer_size',
header_name='jack/jack.h',
@@ -66,12 +60,6 @@
autowaf.display_msg(conf, "Gtk 2.0 support",
conf.is_defined('HAVE_GTK2'))
- autowaf.display_msg(conf, "Gtk 3.0 support",
- conf.is_defined('HAVE_GTK3'))
- autowaf.display_msg(conf, "Gtkmm 2.0 support",
- conf.is_defined('HAVE_GTKMM2'))
- autowaf.display_msg(conf, "Qt 4.0 support",
- conf.is_defined('HAVE_QT4'))
print('')
def build(bld):
@@ -98,36 +86,6 @@
install_path = '${BINDIR}')
autowaf.use_lib(bld, obj, libs + ' GTK2')
- # Gtk3 version
- if bld.is_defined('HAVE_GTK3'):
- obj = bld(features = 'c cprogram',
- source = source + ' src/jalv_gtk.c',
- target = 'jalv.gtk3',
- includes = ['.', 'src'],
- lib = ['pthread', 'm'],
- install_path = '${BINDIR}')
- autowaf.use_lib(bld, obj, libs + ' GTK3')
-
- # Gtkmm version
- if bld.is_defined('HAVE_GTKMM2'):
- obj = bld(features = 'c cxx cxxprogram',
- source = source + ' src/jalv_gtkmm2.cpp',
- target = 'jalv.gtkmm',
- includes = ['.', 'src'],
- lib = ['pthread'],
- install_path = '${BINDIR}')
- autowaf.use_lib(bld, obj, libs + ' GTKMM2')
-
- # Qt version
- if bld.is_defined('HAVE_QT4'):
- obj = bld(features = 'c cxx cxxprogram',
- source = source + ' src/jalv_qt4.cpp',
- target = 'jalv.qt',
- includes = ['.', 'src'],
- lib = ['pthread'],
- install_path = '${BINDIR}')
- autowaf.use_lib(bld, obj, libs + ' QT4')
-
# Man pages
bld.install_files('${MANDIR}/man1', bld.path.ant_glob('doc/*.1'))

5
audio/jalv/setcap.sh Normal file
View file

@ -0,0 +1,5 @@
if [ -x /sbin/setcap ]; then
for BIN in jalv jalv.gtk jalv.gtk3 jalv.gtkmm jalv.qt; do
[ -e usr/bin/$BIN ] && /sbin/setcap cap_ipc_lock,cap_sys_nice=ep usr/bin/$BIN
done
fi

19
audio/jalv/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
jalv: jalv (host for LV2 plugins)
jalv:
jalv: Jalv is a simple but fully featured LV2 host for Jack. It runs LV2
jalv: plugins and exposes their ports as Jack ports, essentially making
jalv: any LV2 plugin function as a Jack application.
jalv:
jalv:
jalv:
jalv:
jalv:
jalv: