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
|
#!/bin/bash
# Slackware build script for apulse
# Originally written by: Ryan P.C. McQuen | Everett, WA | <email removed>
# Heavily modified and now maintained by B. Watson <yalhcru@gmail.com>
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20210301 bkw:
# - Take over maintenance.
# - Replace Capi X's version (submitted in 2019) with Ryan's (removed
# in 2016), since it supports multilib and by default doesn't stomp
# on the system pulseaudio libs. Add the ability to install the
# headers and .pc files, like Capi's build did, but disable it by
# default (SYSTEM variable).
# - Relicense as WTFPL, with permission from original author (Ryan).
# - i486 => i586.
# - Rewrite README to document the new stuffs.
# - Simplify the script a bit.
# - Actually use SLKCFLAGS.
# - Upstream ships a man page now, install it to /usr/man.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=apulse
VERSION=${VERSION:-0.1.13}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SYSTEM=${SYSTEM:-no}
[ "$SYSTEM" = "devel" ] && HEADERS=yes
case "$SYSTEM" in
yes|devel) AP_SUBDIR=${AP_SUBDIR:-/}
COEXIST="CONFLICTS" ;;
no) AP_SUBDIR=${AP_SUBDIR:-/apulse}
COEXIST="can safely coexist" ;;
*) echo "*** Invalid SYSTEM setting '$SYSTEM', use one of: no yes devel" 1>&2
exit 1 ;;
esac
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"
# automatically detect multilib, can override with COMPAT32=no
[ -e /lib/libc.so.6 ] && COMPAT32="${COMPAT32:-yes}"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e
buildit() {
rm -rf build
mkdir -p build
cd build
cmake \
-DAPULSEPATH=/usr/lib$2${AP_SUBDIR} \
-DAPULSE_SEARCH_PATHS=/usr/lib${AP_SUBDIR}:/usr/lib${LIBDIRSUFFIX}${AP_SUBDIR} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE="$SLKCFLAGS $1 -DNDEBUG" \
-DCMAKE_C_FLAGS_RELEASE="$SLKCFLAGS $1 -DNDEBUG" \
..
make VERBOSE=1
make install/strip DESTDIR=$PKG
cd -
}
install_pc() {
mkdir -p $PKG/usr/lib$1/pkgconfig
for i in $CWD/pc/*.pc; do
sed "s,@64@,$1,g" $i > $PKG/usr/lib$1/pkgconfig/$( basename $i )
done
}
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 {} \+
# hardcoded, can't override on cmake command line.
sed -i 's,share/man/,man/,' CMakeLists.txt
# for compat32, we assume x86_64 CPUs handle i686 instructions. also,
# unlike normal 32-bit packages, this one gets -fPIC (which won't hurt).
[ "$COMPAT32" = "yes" ] && buildit "-m32 -march=i686 -mtune=i686" ""
# either way, build the normal libraries with normal cflags.
buildit "" "$LIBDIRSUFFIX"
gzip -9 $PKG/usr/man/*/*
if [ "$HEADERS" = "yes" ]; then
mkdir -p $PKG/usr/include
cp -a 3rdparty/pulseaudio-headers/pulse $PKG/usr/include
install_pc "$LIBDIRSUFFIX"
[ "$COMPAT32" = "yes" ] && install_pc ""
fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/
cp -a LICENSE.MIT README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
sed "s,@COEXIST@,$COEXIST," $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|