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
|
#!/bin/bash
# Slackware build script for maelstrom
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20211020 bkw: upstream's first update since 2002! ported to SDL2!
# - update for v3.0.7.
# - new-style icons.
# - update URLs in perl script and man page.
# 20180627 bkw: fix compile with gcc 8 (for -current).
# 20160730 bkw:
# - Fix compile with gcc 5 (for Slack 14.2). Also fix some
# compiler warnings while I'm at it.
# - Remove warnings about multiplayer not working on 64-bit, it
# works now.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=maelstrom
VERSION=${VERSION:-3.0.7}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=Maelstrom
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 $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
cd $SRCNAM-$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 {} \+
# Look for game data in /usr/share/games/Maelstrom, not /usr/games/Maelstrom
sed -i '/GAME_INSTALLDIR=.*games/s,/games,/share/games,' configure
# 20180627 bkw: It seems structs and typedefs now share a namespace
# in gcc-8.1's g++. So rename this struct to keep the compiler happy
# on -current (and it does no harm on 14.2 either):
sed -i 's,struct *button,struct b_utton,g' buttonlist.h
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--bindir=/usr/games \
--build=$ARCH-slackware-linux
make
# 20211020 bkw: 3.0.7's make install is hard to deal with, do without.
GAMEDIR=$PKG/usr/share/games/$SRCNAM
mkdir -p $PKG/usr/games $GAMEDIR
cp -a Images Maelstrom_{Fonts,Sounds,Sprites} icon.* $GAMEDIR
rm $GAMEDIR/Images/Makefile*
install -s -m0755 $SRCNAM $SRCNAM-netd $PKG/usr/games
# CLI users would probably prefer to type 'maelstrom', not 'Maelstrom'
( cd $PKG/usr/games && ln -s $SRCNAM $PRGNAM )
install -m0755 -o root -g root $CWD/maelstrom_addon_package.pl $PKG/usr/games
mkdir -p $PKG/usr/share/applications
cp $CWD/$PRGNAM.desktop $PKG/usr/share/applications
# upstream's icon is 48x48, resize
for i in 16 32 48 64; do
px=$( basename $i | cut -d. -f1 )
size=${px}x${px}
dir=$PKG/usr/share/icons/hicolor/$size/apps
mkdir -p $dir
convert -resize $size icon.xpm $dir/$PRGNAM.png
done
mkdir -p $PKG/usr/share/pixmaps
( cd $PKG/usr/share/pixmaps ; ln -s ../games/$SRCNAM/icon.xpm $PRGNAM.xpm )
mkdir -p $PKG/usr/man/man6
gzip -9c $CWD/$SRCNAM.6 > $PKG/usr/man/man6/$SRCNAM.6.gz
( cd $PKG/usr/man/man6
ln -s $SRCNAM.6.gz $PRGNAM.6.gz
ln -s $SRCNAM.6.gz $SRCNAM-netd.6.gz )
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a Changelog *.txt Docs $PKGDOC
rm -f $PKGDOC/Docs/Makefile*
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|