diff options
4 files changed, 42 insertions, 28 deletions
diff --git a/audio/jack-audio-connection-kit/README b/audio/jack-audio-connection-kit/README index d05ea7c72a..7d1667887d 100644 --- a/audio/jack-audio-connection-kit/README +++ b/audio/jack-audio-connection-kit/README @@ -4,16 +4,10 @@ allow them to share audio among themselves. Its clients can run in their own processes (ie. as a normal application) or they can run within a JACK server instance (i.e. as a "plugin"). -jackd has to run with realtime privileges. One way to do this on Slackware -would be to use set_rlimits. Since 12.2 there's another way - if you have -a filesystem that supports posix capabilities (reiserfs does not), you can -grant jackd the rights to run in realtime mode, even when started as a -normal user, with the following command: - - setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/jackd - -If you use qjackctl to start jack, it will need the same capabilities set -to be able to start jack as non-root user. You can use the same command -with 'qjackctl' instead of 'jackd' +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. Optional dependencies are libffado and celt. diff --git a/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild b/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild index 02c98f9559..5706465401 100644 --- a/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild +++ b/audio/jack-audio-connection-kit/jack-audio-connection-kit.SlackBuild @@ -25,14 +25,16 @@ # Modified by Robby Workman <rworkman@slackbuilds.org> # No additional license terms added :) +# Modified and now maintained by B. Watson <yalhcru@gmail.com> + PRGNAM=jack-audio-connection-kit -VERSION=${VERSION:-0.124.1} -BUILD=${BUILD:-2} +VERSION=${VERSION:-0.125.0} +BUILD=${BUILD:-1} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then case "$( uname -m )" in - i?86) ARCH=i486 ;; + i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac @@ -43,8 +45,8 @@ TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} -if [ "$ARCH" = "i486" ]; then - SLKCFLAGS="-O2 -march=i486 -mtune=i686" +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" elif [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" @@ -68,9 +70,9 @@ 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 \ + -exec chmod 755 {} \+ -o \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; + -exec chmod 644 {} \+ # respect march and mtune flags: fixes building on x86_64 sed -i 's|-march=native \-mtune=native||' configure.ac @@ -93,11 +95,7 @@ CXXFLAGS="$SLKCFLAGS" \ make make install-strip DESTDIR=$PKG -find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true - -find $PKG/usr/man -type f -exec gzip -9 {} \; -for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done +gzip -9 $PKG/usr/man/man?/*.? mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a AUTHORS COPYING* README TODO $PKG/usr/doc/$PRGNAM-$VERSION @@ -106,5 +104,13 @@ 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/jack-audio-connection-kit/jack-audio-connection-kit.info b/audio/jack-audio-connection-kit/jack-audio-connection-kit.info index c25d1388a4..215ab249b3 100644 --- a/audio/jack-audio-connection-kit/jack-audio-connection-kit.info +++ b/audio/jack-audio-connection-kit/jack-audio-connection-kit.info @@ -1,10 +1,10 @@ PRGNAM="jack-audio-connection-kit" -VERSION="0.124.1" +VERSION="0.125.0" HOMEPAGE="http://jackaudio.org" -DOWNLOAD="http://jackaudio.org/downloads/jack-audio-connection-kit-0.124.1.tar.gz" -MD5SUM="d64e90121be8a54860b870a726fb5b5d" +DOWNLOAD="http://jackaudio.org/downloads/jack-audio-connection-kit-0.125.0.tar.gz" +MD5SUM="d9b7e230aeae2d5b45c7a822b2d2dd15" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Heinz Wiesinger" -EMAIL="pprkut@liwjatan.at" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/audio/jack-audio-connection-kit/setcap.sh b/audio/jack-audio-connection-kit/setcap.sh new file mode 100644 index 0000000000..7286a60f22 --- /dev/null +++ b/audio/jack-audio-connection-kit/setcap.sh @@ -0,0 +1,14 @@ +# set realtime capabilities on all these binaries +if [ -x /sbin/setcap ]; then + for i in alsa_in alsa_out jack_alias jack_bufsize jack_connect \ + jack_disconnect jack_evmon jack_freewheel jack_impulse_grabber \ + jack_iodelay jack_latent_client jack_load jack_load_test \ + jack_lsp jack_metro jack_midi_dump jack_midiseq jack_midisine \ + jack_monitor_client jack_netsource jack_property jack_rec \ + jack_samplerate jack_server_control jack_session_notify \ + jack_showtime jack_simple_client jack_simple_session_client \ + jack_transport jack_transport_client jack_unload jack_wait jackd + do + /sbin/setcap cap_ipc_lock,cap_sys_nice=ep usr/bin/$i + done +fi |