summaryrefslogtreecommitdiffstats
path: root/audio/jamulus/jamulus.SlackBuild
blob: bdecd1731ea4cb09522c1f5b89ba5ebe79e73398 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#!/bin/sh

# Slackware build script for jamulus

# Written by B. Watson (yalhcru@gmail.com)

# 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

PRGNAM=jamulus
VERSION=${VERSION:-3.4.3}
BUILD=${BUILD:-1}

TAG=${TAG:-_SBo}

# I hate capitalized package names, so:
SRCNAM=Jamulus

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
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"
elif ! pkg-config --exists jack; then
  cat <<EOF

***********************************************************************
$0: jack-audio-connection-kit not found.

If you want $PRGNAM to be able to make sound, you must install
jack-audio-connection-kit 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.
***********************************************************************

EOF
  sleep 5
  exit 1
fi


rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $SRCNAM$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM$VERSION
chown -R root:root .

# 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_CFLAGS="$SLKCFLAGS" QMAKE_CXXFLAGS="$SLKCFLAGS" \
  $SRCNAM.pro
make clean
make

# 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/

# 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

# NEWS is a 0-byte placeholder in 3.4.3.
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING ChangeLog $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

mkdir -p $PKG/install
cat $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:-tgz}