aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2014-02-25 09:09:49 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2014-02-25 09:10:49 +0700
commit5bc3c29c1021f3db774d3c85d90fd739e017ccc8 (patch)
treecd3b7c789c53b0dbcf6ff3089ef129a90d4eb090
parentcf82cee1bbc257fbeed5f76a09f0c390cb3c48b7 (diff)
audio/jalv: Added (host for LV2 plugins).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--audio/jalv/README25
-rw-r--r--audio/jalv/jalv.SlackBuild90
-rw-r--r--audio/jalv/jalv.info10
-rw-r--r--audio/jalv/remove_experimental_uis.diff124
-rw-r--r--audio/jalv/setcap.sh5
-rw-r--r--audio/jalv/slack-desc19
6 files changed, 273 insertions, 0 deletions
diff --git a/audio/jalv/README b/audio/jalv/README
new file mode 100644
index 0000000000000..bc86f22d825cc
--- /dev/null
+++ b/audio/jalv/README
@@ -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.
diff --git a/audio/jalv/jalv.SlackBuild b/audio/jalv/jalv.SlackBuild
new file mode 100644
index 0000000000000..12012c6fe4485
--- /dev/null
+++ b/audio/jalv/jalv.SlackBuild
@@ -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}
diff --git a/audio/jalv/jalv.info b/audio/jalv/jalv.info
new file mode 100644
index 0000000000000..8062de6dc541d
--- /dev/null
+++ b/audio/jalv/jalv.info
@@ -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"
diff --git a/audio/jalv/remove_experimental_uis.diff b/audio/jalv/remove_experimental_uis.diff
new file mode 100644
index 0000000000000..9b6ef597a8fee
--- /dev/null
+++ b/audio/jalv/remove_experimental_uis.diff
@@ -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'))
+
diff --git a/audio/jalv/setcap.sh b/audio/jalv/setcap.sh
new file mode 100644
index 0000000000000..f9f44f5621e9f
--- /dev/null
+++ b/audio/jalv/setcap.sh
@@ -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
diff --git a/audio/jalv/slack-desc b/audio/jalv/slack-desc
new file mode 100644
index 0000000000000..5554c5aad3dad
--- /dev/null
+++ b/audio/jalv/slack-desc
@@ -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: