From 5bc3c29c1021f3db774d3c85d90fd739e017ccc8 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Tue, 25 Feb 2014 09:09:49 +0700 Subject: audio/jalv: Added (host for LV2 plugins). Signed-off-by: Willy Sudiarto Raharjo --- audio/jalv/README | 25 +++++++ audio/jalv/jalv.SlackBuild | 90 +++++++++++++++++++++++ audio/jalv/jalv.info | 10 +++ audio/jalv/remove_experimental_uis.diff | 124 ++++++++++++++++++++++++++++++++ audio/jalv/setcap.sh | 5 ++ audio/jalv/slack-desc | 19 +++++ 6 files changed, 273 insertions(+) create mode 100644 audio/jalv/README create mode 100644 audio/jalv/jalv.SlackBuild create mode 100644 audio/jalv/jalv.info create mode 100644 audio/jalv/remove_experimental_uis.diff create mode 100644 audio/jalv/setcap.sh create mode 100644 audio/jalv/slack-desc (limited to 'audio') diff --git a/audio/jalv/README b/audio/jalv/README new file mode 100644 index 0000000000..bc86f22d82 --- /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 0000000000..12012c6fe4 --- /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 0000000000..8062de6dc5 --- /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 0000000000..9b6ef597a8 --- /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 +-.PP +-This manual page was written by Jaromír Mikes +-and David Robillard +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 +-.PP +-This manual page was written by Jaromír Mikes +-and David Robillard +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 0000000000..f9f44f5621 --- /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 0000000000..5554c5aad3 --- /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: -- cgit v1.2.3