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
|
#!/bin/bash
# Slackware build script for open-adventure
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20240925 bkw: update for v1.20.
# 20240814 bkw: update for v1.19.
# 20240229 bkw: BUILD=2, naughty upstream changed the tarball after release.
# 20240211 bkw: update for v1.18.
# 20230906 bkw: update for v1.16.
# 20230107 bkw: Update for v1.11.
# 20211024 bkw: BUILD=2, new-style icons, HTML docs.
# 20201024 bkw: Update for v1.9.
# 20191211 bkw: Update for v1.8.
# 20181203 bkw: Update for v1.6.
# 20180114 bkw:
# - Update for v1.4.
# - Include upstream's icon and .desktop.
# - New dependencies in .info file :(
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=open-adventure
VERSION=${VERSION:-1.20}
BUILD=${BUILD:-1}
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"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
else
SLKCFLAGS="-O2"
fi
# Actual name of the program:
EXE=advent
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION-*
# Download URL uses content disposition to set the filename, so we have to
# handle both possibilities here. I know how to avoid this with github
# downloads, but not gitlab. Also, notice the * in the 2nd filename
# (and in the 'cd' below): I'm *not* hard-coding the full git hash here.
tar xvf $CWD/archive.tar.bz2\?ref=$VERSION ||
tar xvf $CWD/$PRGNAM-$VERSION*.tar.bz2
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 {} \+
# As of v1.9, upstream carelessly checked a prebuilt binary into the repo.
# Or maybe it was on purpose? Anyway don't use.
make clean
# It'd be nice if I could pass my own CFLAGS without editing the Makefile...
sed -i "s,-O2,$SLKCFLAGS," Makefile
# 20240210 bkw: fix a typo in the man page.
sed -i 's,emdianness,endianness,' $EXE.adoc
# 20201024 bkw: Parallel make causes ./make_dungeon.py to run
# twice. This doesn't seem to hurt anything, but I can see how it
# might someday. So -j1.
make -j1
make $EXE.6
make html notes.html
# no 'make install' target:
mkdir -p $PKG/usr/games $PKG/usr/man/man6
install -s -m0755 $EXE $PKG/usr/games/$EXE
gzip -9c < $EXE.6 > $PKG/usr/man/man6/$EXE.6.gz
# principle of least surprise:
ln -s $EXE.6.gz $PKG/usr/man/man6/$PRGNAM.6.gz
ln -s $EXE $PKG/usr/games/$PRGNAM
mkdir -p $PKG/usr/share/applications $PKG/usr/share/pixmaps
sed 's,Exec=,&/usr/games/,' $EXE.desktop > $PKG/usr/share/applications/$EXE.desktop
# The icon doesn't look that great when scaled down; shrug.
# 20230906 bkw: use rsvg-convert rather than ImageMagick's convert,
# for more reproducible builds (IM uses inkscape if installed, or rsvg
# if not). Also avoids inkscape writing to /root/.config/...
for px in 16 32 48 64 128; do
size=${px}x${px}
dir=$PKG/usr/share/icons/hicolor/$size/apps
mkdir -p $dir
rsvg-convert --output=$dir/$EXE.png --width=$px --height=$px $EXE.svg
done
ln -s ../icons/hicolor/48x48/apps/$EXE.png $PKG/usr/share/pixmaps/$EXE.png
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/html
rm -f INSTALL*
cp -a COPYING *.adoc $PKG/usr/doc/$PRGNAM-$VERSION
cp -a *.html $PKG/usr/doc/$PRGNAM-$VERSION/html
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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
|