blob: 8eac43668cd41ea141ad927ecfecc9c35b7d98d1 (
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
136
|
#!/bin/bash
# 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
cd $(dirname $0) ; CWD=$(pwd)
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
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 not found.
If you want $PRGNAM to be able to make sound, you must install
jack before running this script.
If you want to build a dedicated server, you don't have to install
jack. 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}
|