aboutsummaryrefslogtreecommitdiff
path: root/audio/rplay/rplay.SlackBuild
blob: 2cbeeb4455e8dd429b96dab15a79fd4d8446a016 (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
#!/bin/bash

# Slackware build script for rplay

# Written by Andrew Rowland <darowland@ieee.org>

# 20220410 bkw: Modified by SlackBuilds.org, BUILD=2:
# - do not install headers executable in /usr/include.
# - remove useless INSTALL.generic from doc dir, rename
#   useful INSTALL to something more descriptive.

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

PRGNAM=rplay
VERSION=${VERSION:-3.3.2}
BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

# Set the user for the rplay daemon.
RPLAYUSER=${RPLAYUSER:-rplayd}
RPLAYGROUP=${RPLAYGROUP:-rplayd}
RPLAYUID=${RPLAYUID:-258}
RPLAYGID=${RPLAYGID:-258}

# Bail out if user or group isn't valid on your system
# For slackbuilds.org, assigned rplayd uid/gid are 258/258
# See http://slackbuilds.org/uid_gid.txt
if [ "$(grep ^$RPLAYUSER: /etc/passwd)" = "" -o "$(grep ^$RPLAYGROUP: /etc/group)" = "" ] ; then
  echo "  You must have a \"$RPLAYGROUP\" group and user to run this script."
  echo "    # groupadd -g $RPLAYGID $RPLAYGROUP"
  echo "    # useradd -u $RPLAYUID -g $RPLAYGROUP -d /dev/null -s /bin/false $RPLAYUSER"
  exit 1
fi

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

# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
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 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
 -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
 -exec chmod 644 {} \;

patch -Np1 -i $CWD/$PRGNAM-$VERSION-destdir-1.patch

# Teach this to accept --libdir
sed -i "s/^\(libdir=\).*/\1@libdir@/" Makefile.config.in
sed -i "s/^\(libdir = \).*/\1@libdir@/" rx/Makefile.in

CFLAGS="$SLKCFLAGS -D_GNU_SOURCE" \
CXXFLAGS="$SLKCFLAGS -D_GNU_SOURCE" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc/rplay \
  --localstatedir=/var \
  --mandir=/usr/man \
  --enable-rplayd-user=$RPLAYER \
  --enable-rplayd-group=$RPLAYER

make
make install DESTDIR=$PKG

# Remove the static library.  There is no configure option to suppress the
# static library and this is easier than hacking the script.
rm -f $PKG/usr/lib$LIBDIRSUFFIX/librplay.a

find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/*.info* $PKG/usr/man/man*/*

# 20220410 bkw: C headers shouldn't be executable.
chmod 0644 $PKG/usr/include/*.h

# 20220410 bkw: normally, INSTALL is useless to package users.
# This one actually has useful config info and a FAQ, so it should
# be installed... but give it a different name.
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a INSTALL $PKG/usr/doc/$PRGNAM-$VERSION/install-config-faq.txt
cp -a \
  COPYING NEWS PORTING README README.linux 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

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