#!/bin/bash # Slackware build script for jamulus # Written by B. Watson (urchlay@slackware.uk) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 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.9.1} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi 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} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -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 # Check this before doing anything else. if [ "${SERVERONLY:-no}" = "yes" ]; then EXTRACONF="CONFIG+=nosound CONFIG+=headless" elif ! pkg-config --exists jack; then cat < $PKG/usr/man/man1/$PRGNAM.1x.gz rm -rf $PKG/usr/share/man # original page (in wrong place) 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... and nonexistent in 3.9.1 mkdir -p $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 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: if [ "${SERVERONLY:-no}" != "yes" ]; then 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/$PRGNAM chmod 0750 $PKG/usr/bin/$PRGNAM fi fi cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE