summaryrefslogtreecommitdiffstats
path: root/games/SLADE/SLADE.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'games/SLADE/SLADE.SlackBuild')
-rw-r--r--games/SLADE/SLADE.SlackBuild114
1 files changed, 95 insertions, 19 deletions
diff --git a/games/SLADE/SLADE.SlackBuild b/games/SLADE/SLADE.SlackBuild
index 35c37ca39c..10dd631409 100644
--- a/games/SLADE/SLADE.SlackBuild
+++ b/games/SLADE/SLADE.SlackBuild
@@ -1,8 +1,9 @@
-#!/bin/sh
+#!/bin/bash
# Slackware build script for SLADE
# Copyright 2015 Dugan Chen Canada
+# Copyright 2020 B. Watson
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,10 +23,36 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 20230716 bkw: update for v3.2.4.
+# 20220616 bkw: update for v3.2.1.
+
+# 20220208 bkw:
+# - grr. add missing 'fmt' dep. my bad.
+# - autodetect wxWebView support in wxGTK3. also my bad.
+
+# 20211118 bkw:
+# - update for v3.2.0_b3. normally won't package a beta, but
+# 3.1.12a and 3.1.13 won't build, and life is too short.
+# - our wxGTK3 now has wxWebView, get rid of -DNO_WEBVIEW.
+# - /usr/share/slade3 moved to /usr/share/games/slade3.
+# - new- and old-style icons.
+# - add p7zip dep (the build process recompresses the .pk3).
+
+# 20201109 bkw: update for v3.1.12a
+# 20200416 bkw:
+# - take over maintenance
+# - update for v3.1.11
+# - binary in /usr/games
+# - install icon in right place, symlink to old location
+# - get rid of our .desktop file (upstream provides one now)
+
+cd $(dirname $0) ; CWD=$(pwd)
+
PRGNAM=SLADE
-VERSION=${VERSION:-3.1.1.5}
+VERSION=${VERSION:-3.2.4}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -35,7 +62,11 @@ if [ -z "$ARCH" ]; then
esac
fi
-CWD=$(pwd)
+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}
@@ -60,37 +91,82 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$VERSION.tar.gz || tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+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 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+# 20200416 bkw: game binaries do not belong in /usr/bin.
+sed -i 's,\<bin\>,games,' src/CMakeLists.txt
+
+# 20211118 bkw: pk3 file belongs in /usr/share/games/slade3.
+sed -i '/auto *dir_slade_pk3/s,=.*,= string("/usr/share/games/slade3/slade.pk3");,' \
+ src/Archive/ArchiveManager.cpp
+sed -i 's,share/slade3,share/games/slade3,' src/CMakeLists.txt
+
+# 20211118 bkw: I was gonna change the category in the .desktop file,
+# but looking at the spec, I don't see a GameEditor or similar.
+sed -i -e 's, *$,,' -e 's,^Exec=,&/usr/games/,' *.desktop
+
+# 20200416 bkw: don't depend on unstable /usr/bin/wx-config symlink.
+# stupid thing insists on searching for wx-config in PATH, instead of
+# allowing us to explicitly give a full path and name for the script, so:
+WXCONF=/usr/lib$LIBDIRSUFFIX/wx/config/gtk3-unicode-3.0
+WXTMP=$( pwd )/wxtmp
+mkdir -p $WXTMP
+ln -s $WXCONF $WXTMP/wx-config
+
+# Note to self: don't try this:
+# -DCMAKE_C_COMPILER=clang \
+# -DCMAKE_CXX_COMPILER=clang++ \
+# It might compile OK but it will fail to run due to C++ ABI
+# version differences between the slade binary and the wx libraries.
+# We'd have to compile wxGTK3 with clang++ to make it work (and that
+# would break everything else using g++ and wxGTK3!)
+
+# Also, this build isn't ccache-able due to using precompiled headers
+# with g++ (see overly detailed discussion in games/mame). It's possible
+# to disable PCH, thus:
+# -DNO_COTIRE=ON \
+# but this makes the build take 3x as long, if it's not cached. Since
+# a non-ccached build with cotire only takes me 5 minutes, I won't go
+# to extreme lengths here like I did for mame.
+
+# 20220208 bkw: I screwed up: I forgot wxGTK3 isn't always built with
+# webkit2gtk (so it doesn't always have wxWebView). slade doesn't
+# autodetect this, so detect it ourselves:
+NO_WEBVIEW_OPT="ON"
+$WXTMP/wx-config --libs | grep -q webview && NO_WEBVIEW_OPT="OFF"
+echo "=== NO_WEBVIEW_OPT='$NO_WEBVIEW_OPT'"
mkdir -p build
cd build
cmake \
+ -DWITH_WXPATH=$WXTMP \
+ -DNO_WEBVIEW=$NO_WEBVIEW_OPT \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release ..
- make
- make install DESTDIR=$PKG
+ make VERBOSE=1
+ make install/strip DESTDIR=$PKG
cd ..
-mkdir -p $PKG/usr/share/applications
-cp $CWD/SLADE.desktop $PKG/usr/share/applications
+iconname=$( grep '^Icon=' $PKG/usr/share/applications/*.desktop | cut -d= -f2 )
+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 dist/res/logo_icon.png $dir/$iconname.png
+done
mkdir -p $PKG/usr/share/pixmaps
-convert dist/res/slade.ico[3] $PKG/usr/share/pixmaps/${PRGNAM}.ico
-
-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
+ln -s ../icons/hicolor/48x48/apps/$iconname.png $PKG/usr/share/pixmaps/$PRGNAM.png
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
-cp -a README* *.txt $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a README.md LICENSE* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
@@ -98,4 +174,4 @@ 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:-tgz}
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE