#!/bin/bash # Slackware build script for ds-models # Written by B. Watson (urchlay@slackware.uk) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # Note to self: find and package a decent model pack that works # properly with current gzdoom versions. If such a thing exists. # Initial searching and testing indicates maybe not... # 20211103 bkw: BUILD=4 # - fix script being installed to nonexistant /usr/games. # - remove gzdoom support, since neither gzdoom nor gzdoom-legacy # works with these models. # 20160810 bkw: # - bump BUILD because: # - install scripts in /usr/games, not /usr/bin # 20140324 bkw: # Updated for version r15 # fixed typos in README # fixed .def files for recent gzdoom cd $(dirname $0) ; CWD=$(pwd) PRGNAM=ds-models VERSION=${VERSION:-r15} BUILD=${BUILD:-3} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} ARCH=noarch 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} # Which game(s) to support? # As of r15, Zandronum is also supported, but as there's no SBo build for # it, I won't bother. SKULLTAG=yes GZDOOM=no if [ "$SKULLTAG" != "yes" -a "$GZDOOM" != "yes" ]; then echo "You've set both SKULLTAG=no and GZDOOM=no; nothing to package." exit 1 fi set -e rm -rf $PKG mkdir -p $TMP $PKG/usr/{share/games/doom,games,doc/$PRGNAM-$VERSION} $OUTPUT cd $TMP rm -rf $PRGNAM-$VERSION tar xvf $CWD/$PRGNAM-$VERSION.tar.gz 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 {} \+ # The only script provided upstream is for skulltag + gzdoom in one pk3, which # will only work with skulltag. So we build our own individual skulltag and # gzdoom packages. Script code based on Build-ST-Complete.sh # gzdoom. Note that skulltag needs these too, so GZDOOM=no just means we # don't install the ds-gzdoom wrapper script. mkdir -p work/Models for DEF_FILE in \ $(find ./GZ-Models/Build -maxdepth 2 -type f -name "*.def") do cp ${DEF_FILE} work done # get rid of upstream's CRLF endings and stray NBSP characters, which # confuse recent gzdooms. perl -i -pe 's,[\xa0\r],,g' work/*.def for MODEL_DIR in \ $(find $(pwd)/GZ-Models/Build -maxdepth 2 -mindepth 2 -type d) do cp -R ${MODEL_DIR} work/Models/ done cp -R GZ-Models/Build/Hires work cd work zip -r $PKG/usr/share/games/doom/GZ-Models.pk3 ./*.def ./Hires ./Models cd - rm -rf work if [ "$GZDOOM" = "yes" ]; then install -m0755 $CWD/ds-gzdoom $PKG/usr/games fi # ST-Models if [ "$SKULLTAG" = "yes" ]; then mkdir -p work/Models for DEF_FILE in \ $(find ST-Models/Build -maxdepth 2 -type f -name "*.def") do cp ${DEF_FILE} work done perl -i -pe 's,[\xa0\r],,g' work/*.def for MODEL_DIR in \ $(find ST-Models/Build -maxdepth 2 -mindepth 2 -type d) do cp -R ${MODEL_DIR} work/Models/ done cd work zip -r $PKG/usr/share/games/doom/ST-Models.pk3 ./*.def ./Models cd - rm -rf work install -m0755 $CWD/ds-skulltag $PKG/usr/games fi mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION cp -a Readme.txt $PKG/usr/doc/$PRGNAM-$VERSION cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild # Modify the slack-desc to reflect reality: if [ "$SKULLTAG" != "yes" ]; then GAME="gzdoom only" elif [ "$GZDOOM" != "yes" ]; then GAME="skulltag only" else GAME="skulltag and gzdoom" fi mkdir -p $PKG/install sed "s/@GAME@/$GAME/" $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE