summaryrefslogtreecommitdiff
path: root/games/doomseeker/doomseeker.SlackBuild
blob: f1b58039e7fa93c5c6a21e59164e1cc1f0fe7df7 (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
134
135
136
137
138
139
140
#!/bin/bash

# Slackware build script for doomseeker

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

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

# 20211102 bkw:
# - updated for v1.3.2.
# - new-style icons.
# - /usr/share/doomseeker => /usr/share/games/doomseeker.

# 20201030 bkw: updated for v1.3.1
# 20200122 bkw: updated for v1.3+20200119_b623ab1. Latest git fixes
# a segfault issue that normally only occurs when starting doomseeker
# without ~/.config/doomseeker/* (so the previous version worked for me,
# but wouldn't for a new user).
# 20191211 bkw: updated for v1.3. qt4 support was dropped, qt5 now required.
# 20181218 bkw: updated for v1.2. Upstream has changed things around,
# so this script won't build 1.1 any longer.

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

PRGNAM=doomseeker
VERSION=${VERSION:-1.3.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}

TARVER="$( echo "$VERSION" | cut -d+ -f1 )"

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-$TARVER
tar xvf $CWD/$PRGNAM-$TARVER.tar.xz
cd $PRGNAM-$TARVER

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

sed -i 's,Exec=,&/usr/games/,' media/*.desktop

sed -i 's,share/doomseeker,share/games/doomseeker,' src/core/datapaths.cpp

mkdir -p build
cd build
  # Buggy cmake install target looks in wrong place for icon
  ln -s ../media .
  cmake \
    -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib${LIBDIRSUFFIX} \
    -DCMAKE_BUILD_TYPE=Release ..
  make
  make install/strip DESTDIR=$PKG
cd ..

mkdir $PKG/usr/share/games
mv $PKG/usr/share/$PRGNAM $PKG/usr/share/games

# Shared lib gets installed to wrong place, easier to fix it here than patch.
[ "$LIBDIRSUFFIX" != "" ] && \
  [ -e "$PKG/usr/lib" ] && \
  mv $PKG/usr/lib $PKG/usr/lib$LIBDIRSUFFIX

# This is a game (or anyway a game utility), the binary
# belongs in /usr/games. cmake accepts and totally ignores
# "-DCMAKE_INSTALL_BINDIR=games" so just move the damn thing after
# install.
mv $PKG/usr/bin $PKG/usr/games

# cmake is also ignoring -DCMAKE_INSTALL_DOCDIR.
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
mv $PKG/usr/share/doc/$PRGNAM/* $PKGDOC
rm -rf $PKG/usr/share/doc

chmod 755 $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM/engines/*.so
strip $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM/engines/*.so

# upstream installs their *giant* icon directly in /usr/share/icons...
rm -rf $PKG/usr/share/icons
for px in 16 32 48 64 128; do
  size=${px}x${px}
  dir=$PKG/usr/share/icons/hicolor/$size/apps
  mkdir -p $dir
  convert -resize $size media/icon.png $dir/$PRGNAM.png
done

mkdir -p $PKG/usr/share/pixmaps
ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png

cp -a LICENSE *.md $PKGDOC
sed -i 's,\r,,' $PKGDOC/*
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