summaryrefslogtreecommitdiffstats
path: root/audio/jamulus/jamulus.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'audio/jamulus/jamulus.SlackBuild')
-rw-r--r--audio/jamulus/jamulus.SlackBuild122
1 files changed, 76 insertions, 46 deletions
diff --git a/audio/jamulus/jamulus.SlackBuild b/audio/jamulus/jamulus.SlackBuild
index bdecd1731e..4b997610bc 100644
--- a/audio/jamulus/jamulus.SlackBuild
+++ b/audio/jamulus/jamulus.SlackBuild
@@ -1,23 +1,27 @@
-#!/bin/sh
+#!/bin/bash
# Slackware build script for jamulus
-# Written by B. Watson (yalhcru@gmail.com)
+# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
-# Possible TODOs:
-# - write a man page
-# - have slack-desc show whether or not SERVERONLY=yes
+# 20230112 bkw: update for v3.9.1.
+# 20211207 bkw:
+# - update for v3.8.1.
+# - add 'headless' option to SERVERONLY=yes config.
+# - new-style icons.
+# - man page.
+# - dynamic slack-desc.
+
+cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=jamulus
-VERSION=${VERSION:-3.4.3}
+VERSION=${VERSION:-3.9.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
-
-# I hate capitalized package names, so:
-SRCNAM=Jamulus
+PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -27,7 +31,11 @@ if [ -z "$ARCH" ]; then
esac
fi
-CWD=$(pwd)
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
@@ -50,19 +58,19 @@ set -e
# Check this before doing anything else.
if [ "${SERVERONLY:-no}" = "yes" ]; then
- EXTRACONF="CONFIG+=nosound"
+ EXTRACONF="CONFIG+=nosound CONFIG+=headless"
elif ! pkg-config --exists jack; then
cat <<EOF
***********************************************************************
-$0: jack-audio-connection-kit not found.
+$0: jack not found.
If you want $PRGNAM to be able to make sound, you must install
-jack-audio-connection-kit before running this script.
+jack before running this script.
If you want to build a dedicated server, you don't have to install
-jack-audio-connection-kit. Instead, export SERVERONLY=yes in the
-environment. See SERVER.txt for details.
+jack. Instead, export SERVERONLY=yes in the environment. See SERVER.txt
+for details.
***********************************************************************
EOF
@@ -70,55 +78,77 @@ EOF
exit 1
fi
+TARVER=r"${VERSION//./_}"
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $SRCNAM$VERSION
-tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
-cd $SRCNAM$VERSION
+rm -rf $PRGNAM-$TARVER
+tar xvf $CWD/$PRGNAM-$TARVER.tar.gz
+cd $PRGNAM-$TARVER
chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-# permissions are gross, nonstandard find needed here:
-find -L . -type d -a -exec chmod 755 {} \+ -o \
- -type f -a \! -perm 644 -a -exec chmod 644 {} \+
-
-# jamulus can be built with either qt4 or qt5. Let's stick with
-# qt4 until Slackware starts shipping qt5... for paranoia's sake,
-# remove all references to qt5 and/or qt3 from the environment.
-unset QTDIR
-unset QT5DIR
-PATH=/bin:/sbin:/usr/bin:/usr/sbin
-source /etc/profile.d/qt4.sh
-QTDIR=$QT4DIR
-export QTDIR QT5DIR
-
-qmake "CONFIG+=noupcasename" $EXTRACONF \
+qmake-qt5 \
+ "CONFIG+=noupcasename" \
+ $EXTRACONF \
QMAKE_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" \
- $SRCNAM.pro
+ PREFIX=/usr \
+ Jamulus.pro
make clean
make
+make install INSTALL_ROOT=$PKG
+
+# binary already stripped.
-# No 'make install' target, so:
-mkdir -p $PKG/usr/bin $PKG/usr/share/applications $PKG/usr/share/pixmaps
-install -s -m0755 $PRGNAM $PKG/usr/bin/
-install -m0644 src/res/$PRGNAM.desktop $PKG/usr/share/applications/
+# Man page taken from the sourceand modified slightly.
+# Had to make the man page a "1x" instead of "1": It uses BSD macros
+# (see groff_mdoc(7)). If I made it a "1" man page, it would say
+# "BSD General Commands Manual" unconditionally (no way to force it
+# to say "SlackBuilds.org" or even "General Commands Manual").
+mkdir -p $PKG/usr/man/man1
+gzip -9c < $CWD/$PRGNAM.1x > $PKG/usr/man/man1/$PRGNAM.1x.gz
+rm -rf $PKG/usr/share/man # original page (in wrong place)
-# The png icons provided are tiny, but the OSX icon is big enough
-# to actually see, so I extracted the 256x256 version & include
-# it with the build.
-cat $CWD/$PRGNAM.png > $PKG/usr/share/pixmaps/$PRGNAM.png
+if [ "${SERVERONLY:-no}" != "yes" ]; then
+ # The only png icon provided is 512x512, ludicrously large, make smaller ones.
+ # Note to self: use rsvg-convert rather than ImageMagick's convert, because
+ # IM behaves differently depending on whether inkscape is installed. It
+ # wouldn't really hurt anything, I just want to be consistent.
+ HICOLOR=$PKG/usr/share/icons/hicolor/
+ ICNAME=io.jamulus.jamulus
+
+ for px in 16 32 48 64 128; do
+ size=${px}x${px}
+ dir=$HICOLOR/$size/apps
+ mkdir -p $dir
+ CVT="rsvg-convert --width=$px --height=$px"
+ $CVT src/res/$ICNAME.svg > $dir/$ICNAME.png
+ $CVT src/res/${ICNAME}server.svg > $dir/${ICNAME}server.png
+ done
+
+ mkdir -p $PKG/usr/share/pixmaps
+ ln -s ../icons/hicolor/48x48/apps/$ICNAME.png $PKG/usr/share/pixmaps/$PRGNAM.png
+fi
-# NEWS is a 0-byte placeholder in 3.4.3.
+# NEWS is a 0-byte placeholder in 3.4.3... and nonexistent in 3.9.1
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a AUTHORS COPYING ChangeLog $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a COPYING ChangeLog CONTRIBUTING.md README.md SECURITY.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# Include our own (hopefully) helpful hints for servers.
cat $CWD/SERVER.txt > $PKG/usr/doc/$PRGNAM-$VERSION/SERVER.txt
+if objdump -p $PKG/usr/bin/$PRGNAM | grep -q 'NEEDED.*libjack'; then
+ DESC="full client and server"
+else
+ DESC="headless server only"
+fi
+
mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+sed "s,@DESC@,$DESC," $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
# Only add capability stuff if not disabled:
@@ -132,4 +162,4 @@ if [ "${SERVERONLY:-no}" != "yes" ]; then
fi
cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE