summaryrefslogtreecommitdiffstats
path: root/audio/synthv1/synthv1.SlackBuild
blob: e0b083f5f4f8468154f5bc8ba05a7d77ccec6b6e (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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#!/bin/bash

# Slackware build script for synthv1

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

# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.

# 20201106 bkw: update for v0.9.18
# 20200114 bkw: update for v0.9.12
# 20191210 bkw: update for v0.9.11, document optional liblo dep, have slack-desc
#               tell user whether or not optional deps are included.
# 20181216 bkw: updated for v0.9.4, qt5 now required
# 20180828 bkw: updated for v0.9.2
# 20180702 bkw: updated for v0.9.1, install French man page correctly.
# 20180615 bkw: updated for v0.9.0
# 20180101 bkw: updated for v0.8.6
# 20171220 bkw: updated for v0.8.5. Skipped 0.8.4 due to compile errors.
# 20170627 bkw: updated for v0.8.3
# 20170614 bkw: updated for v0.8.2. build with qt4, remove qt5 requirement
#               not sure how I missed this the first time around...
# 20170324 bkw: updated for v0.8.1

PRGNAM=synthv1
VERSION=${VERSION:-0.9.18}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

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

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
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 {} \+

# This thing can't be told to use qmake-qt5, and keeps choking on
# /usr/bin/qmake. The --with-qt option doesn't help, only putting
# qt5's bin/ before /usr/bin in $PATH will do.
export PATH=/usr/lib$LIBDIRSUFFIX/qt5/bin:$PATH

LDFLAGS="-Wl,-s" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --localstatedir=/var \
  --mandir=/usr/man \
  --docdir=/usr/doc/$PRGNAM-$VERSION \
  --build=$ARCH-slackware-linux

make
make install DESTDIR=$PKG

# I dunno what this is actually for, but as of 0.8.5 it got moved. Move
# it back to where it belongs, for Slack 14.2.
[ -d $PKG/usr/share/metainfo ] && \
  mv $PKG/usr/share/metainfo $PKG/usr/share/appdata

# 20180702 bkw: big long block of notes-to-self (and hopefully others):

# Upstream ships a French man page, but installs it in the wrong place.

# The Slackware situation with character sets and man pages confusing to
# begin with, and is in flux because post-14.2 -current has switched to
# using man-db. A lot of Slackware packages (not just SBo ones) get this
# stuff wrong.

# For 14.2, using old-school man, the man page has to be in ISO-8859-1,
# in the /usr/man/fr/ directory. This works for LANG=fr_FR (page is
# used as-is) and also LANG=fr_FR.UTF-8 (man command converts it to
# UTF-8 for displaying). Old-school man doesn't even look for a
# /usr/man/fr.UTF-8/ dir at all.

# 15.0, using man-db, works the opposite way: the man page should be
# in UTF-8, stored in /usr/man/fr.UTF-8/, and will be used as-is if
# LANG=fr_FR.UTF-8. If LANG=fr_FR, man-db will convert it to ISO-8859-1
# for display.

# The situation is even worse if you speak e.g. Japanese: I haven't found
# a way to make 14.2's man display Japanese at all (which is one of the
# reasons 15.0 will be using man-db actually).

# For this build, upstream's French man page is UTF-8, so for 14.2 we have
# to convert it to ISO-8859-1 here. When updating this script for 15.0,
# we'll be able to get rid of the conversion (and most of this comment
# block!) and ship only the UTF-8 man page. For now, include both,
# to be -current-friendly.

mkdir -p $PKG/usr/man/fr.UTF-8/man1
mv $PKG/usr/man/fr/man1/$PRGNAM.1.gz $PKG/usr/man/fr.UTF-8/man1/$PRGNAM.1.gz
zcat $PKG/usr/man/fr.UTF-8/man1/$PRGNAM.1.gz | \
  iconv -f UTF-8 -t ISO-8859-1 | \
  gzip -9c \
  > $PKG/usr/man/fr/man1/$PRGNAM.1.gz

# binaries already stripped, man page already gzipped. make symlink
# to man page, to match the actual name of the binary.
for i in man1 fr/man1 fr.UTF-8/man1; do
  ln -s $PRGNAM.1.gz $PKG/usr/man/$i/${PRGNAM}_jack.1.gz
done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS COPYING ChangeLog README TODO $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

LIBLO=no
LV2=no
ldd $PKG/usr/bin/${PRGNAM}_jack | grep -q liblo && LIBLO=yes
[ -e $PKG/usr/lib$LIBDIRSUFFIX/lv2/$PRGNAM.lv2 ] && LV2=yes

mkdir -p $PKG/install
sed -e "s,@LIBLO@,$LIBLO," -e "s,@LV2@,$LV2," $CWD/slack-desc \
  > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

if [ "${SETCAP:-yes}" = "yes" ]; then
  cat $CWD/setcap.sh >> $PKG/install/doinst.sh
  chown root:audio $PKG/usr/bin/${PRGNAM}_jack
  chmod 0750 $PKG/usr/bin/${PRGNAM}_jack
fi

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}