summaryrefslogtreecommitdiffstats
path: root/audio/ecasound/ecasound.SlackBuild
blob: 3ae97b9f24cde6bc8150ce752ec1a907fed6e9b0 (about) (plain) (blame)
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
#!/bin/bash

# Slackware build script for ecasound

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

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

# 20211128 bkw: BUILD=2, add python3 support.
# 20200117 bkw: Updated for v2.9.3.
# 20191202 bkw:
# - Updated for v2.9.2.
# - removed python_module_dir.diff and ruby2.patch from 2.9.1,
#   they're no longer needed. This means you can no longer build
#   2.9.1 with this script.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=ecasound
VERSION=${VERSION:-2.9.3}
BUILD=${BUILD:-2}
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

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 {} \+

# --disable-static and --enable-shared are accepted, but ignored.
# This is deliberate: upstream doesn't want shared libs. See:
# http://www.eca.cx/ecasound-list/2002/10/0031.html

setpyver() {
  PYVER=$( python -c 'import sys; print("%d.%d" % sys.version_info[0:2])' )
  echo "=== PYVER='$PYVER'"
}

conf() {
  CFLAGS="$SLKCFLAGS" \
  CXXFLAGS="$SLKCFLAGS" \
  ./configure \
    --disable-arts \
    --prefix=/usr \
    --libdir=/usr/lib${LIBDIRSUFFIX} \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/man \
    --docdir=/usr/doc/$PRGNAM-$VERSION \
    --with-python-modules=/usr/lib$LIBDIRSUFFIX/python$PYVER \
    --enable-python-force-site-packages \
    --disable-all-static \
    --build=$ARCH-slackware-linux
}

# first time around, build everything, with python2 support.
setpyver
conf
make
make install-strip DESTDIR=$PKG

# 2nd build, python3 support only. configure has "python" hardcoded as
# the executable (can't pass python3), so fake it out with $PATH.
mkdir pytmp
ln -s /usr/bin/python3 pytmp/python
export PATH=$(pwd)/pytmp:$PATH

setpyver
make clean
conf
make -C pyecasound install DESTDIR=$PKG

# Per -current guidelines (and does no harm on 14.2):
rm -f $PKG/usr/lib$LIBDIRSUFFIX/*.la

# Kind of a twist for a SlackBuild: bunch of identical man pages are getting
# installed, and we want them to be symlinks instead of copies.
cd $PKG/usr/man/man1
toolsum="$( cat ecatools.1 | md5sum )"
for manpage in $( /bin/ls * | grep -v ecatools ); do
  if [ "$toolsum" = "$( cat $manpage | md5sum )" ]; then
    rm -f $manpage
    ln -s ecatools.1 $manpage
  fi
done
cd -

find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS BUGS COPYING* INSTALL README RELNOTES TODO \
      $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

# Only add capability stuff if not disabled:
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

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