summaryrefslogtreecommitdiffstats
path: root/games/open-adventure/open-adventure.SlackBuild
blob: c5c438dfb12691b55856f8f24daaff1f44c350da (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
133
#!/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.

# 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.18}
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"
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