games/eduke32: Updated for version 20160704_5811.

This commit is contained in:
B. Watson 2016-08-08 17:18:53 -04:00 committed by Willy Sudiarto Raharjo
parent 867b39f1ca
commit e6b5b84db5
No known key found for this signature in database
GPG key ID: 887B8374D7333381
6 changed files with 118 additions and 22 deletions

View file

@ -8,8 +8,13 @@ Nukem 3D. For convenience, the shareware GRP file has been packaged
as eduke32_shareware_data, also available from slackbuilds.org.
See README_game_data.txt
eduke32 is an SDL application. It can be built with either SDL 1.2
(included in Slackware), or SDL 2 (from SlackBuilds.org). By default, SDL
2 is used if it's installed, otherwise SDL 1.2 is used. To force building
with SDL 1.2, export SDL2=no in the environment before building eduke32.
If you want to play the HRP (High Resolution Pack), get the
eduke32_hires_pack package from slackbuilds.org
eduke32_hires_pack package from slackbuilds.org.
To hear the in-game music, either use the Music Pack (see
eduke32_hires_pack), or else install a set of MIDI patches (either

View file

@ -0,0 +1,12 @@
diff -Naur eduke32_20160704-5811.orig/build/src/util/generateicon.c eduke32_20160704-5811/build/src/util/generateicon.c
--- eduke32_20160704-5811.orig/build/src/util/generateicon.c 2013-10-06 03:50:16.000000000 -0400
+++ eduke32_20160704-5811/build/src/util/generateicon.c 2016-08-07 23:58:35.091530858 -0400
@@ -64,7 +64,7 @@
memset(&icon, 0, sizeof(icon));
- kpzload(argv[1], (intptr_t*)&icon.pixels, (int32_t*)&bpl, (int32_t*)&icon.width, (int32_t*)&icon.height);
+ kpzload(argv[1], (intptr_t*)&icon.pixels, (int32_t*)&icon.width, (int32_t*)&icon.height);
if (!icon.pixels) {
Bfprintf(stderr, "Failure loading %s\n", argv[1]);
return 1;

View file

@ -6,8 +6,21 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# 20160808 bkw:
# - update for 20160704_5811
# - install samples/ to the doc dir, not the game data dir
# - rework wrapper script to let mods like bloodcm be installed
# system-wide in /usr/share/games/eduke32
# - add compilefix.diff to get the tools to build
# - support SDL2 build, add SDL2=no to force SDL1
# - use OPTIMIZATIONS instead of ARCH for $SLKCFLAGS, upstream
# changed the build a bit
# - undocumented VPX flag now defaults to "yes", since libvpx is a
# core Slackware 14.2 package
# - slack-desc shows SDL version and whether or not libvpx was used.
PRGNAM=eduke32
VERSION=${VERSION:-20150510_5182}
VERSION=${VERSION:-20160704_5811}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@ -18,14 +31,14 @@ OUTPUT=${OUTPUT:-/tmp}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
@ -52,10 +65,16 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
if [ "${VPX:-no}" != "yes" ]; then
# this was always undocumented, defaulted to "no" in Slack <= 14.1.
# should be safe to default to "yes" now that 14.2 has libvpx.
if [ "${VPX:-yes}" != "yes" ]; then
VPXFLAG="USE_LIBVPX=0"
else
ANDVPX=" and libvpx"
fi
patch -p1 < $CWD/compilefix.diff
# On some systems, the game spits out tons of warnings:
# Error: glGetTexLevelParameteriv returned GL_FALSE!
# These don't seem to actually hurt anything (the game looks
@ -63,12 +82,31 @@ fi
# the log output.
sed -i '/"Error: glGetTexLevelParameteriv/d' build/src/texcache.c
# SDL2 might be preferred for some users. Specifically, those of us
# who use a left-handed mouse (SDL1 gets the button mappings backwards).
SDL2=${SDL2:-auto}
if [ "$SDL2" = "auto" ]; then
sdl2-config --version >/dev/null && SDL_TARGET=2
elif [ "$SDL2" = "yes" ]; then
SDL_TARGET=2
else
SDL_TARGET=1
fi
# Mildly confusing: the Makefile uses ARCH for arch-specific cflags
make ARCH="$SLKCFLAGS" $VPXFLAG SDL_TARGET=1
make \
ARCH="" \
OPTIMIZATIONS="$SLKCFLAGS" \
SDL_TARGET=$SDL_TARGET \
$VPXFLAG
# Build the utilities, if requested.
if [ "${BUILD_UTILS:-yes}" = "yes" ]; then
make utils ARCH="$SLKCFLAGS" $VPXFLAG SDL_TARGET=1
make utils \
OPTIMIZATIONS="$SLKCFLAGS" \
ARCH="" \
$VPXFLAG \
SDL_TARGET=$SDL_TARGET \
for i in kextract kgroup transpal wad2art wad2map; do
install -s -D -m0755 $i $PKG/usr/games/$i
@ -92,7 +130,6 @@ install -D -m0755 $CWD/$PRGNAM.wrapper $PKG/usr/games/$PRGNAM
mkdir -p $PKG/usr/share/games/$PRGNAM
cd package/sdk
cp *.hlp *.HLP names.h tiles.cfg $PKG/usr/share/games/$PRGNAM
cp -r samples $PKG/usr/share/games/$PRGNAM/samples
cd -
mkdir -p $PKG/usr/share/applications
@ -104,13 +141,16 @@ cp $CWD/$PRGNAM.png $PKG/usr/share/pixmaps
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp build/buildlic.txt source/gpl-2.0.txt $CWD/README_game_data.txt \
$PKG/usr/doc/$PRGNAM-$VERSION
cp -r package/sdk/samples $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
( cd $PKG/usr/share/games/$PRGNAM
ln -s ../../../doc/$PRGNAM-$VERSION/README_game_data.txt . )
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
sed -e "s,@SDL_TARGET@,$SDL_TARGET," \
-e "s,@ANDVPX@,$ANDVPX," \
$CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG

View file

@ -1,8 +1,8 @@
PRGNAM="eduke32"
VERSION="20150510_5182"
VERSION="20160704_5811"
HOMEPAGE="http://www.eduke32.com/"
DOWNLOAD="http://dukeworld.duke4.net/eduke32/synthesis/20150510-5182/eduke32_src_20150510-5182.tar.xz"
MD5SUM="b5b0ba822d9e1fffdd7132374bb36540"
DOWNLOAD="http://dukeworld.duke4.net/eduke32/synthesis/20160704-5811/eduke32_src_20160704-5811.tar.xz"
MD5SUM="979df7dfbe3584f88b40cdab88e37f4a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""

View file

@ -1,24 +1,63 @@
#!/bin/sh
# Wrapper script for eduke32 and mapster32
# Ensure ~/.eduke32 exists, populate with a symlink forest
# (Need this because the game normally expects to run from its own dir)
# Wrapper script for eduke32 and mapster32.
# Ensure ~/.eduke32 exists, populate with a symlink forest.
# Need this because the game normally expects to run from its own dir.
# This version supports game mods. Currently only tested with bloodcm.
SHAREDIR=/usr/share/games/eduke32
BINDIR=/usr/libexec/eduke32
USERDIR=$HOME/.eduke32
PROG="`echo $0 | sed 's/.*\///'`"
mkdir -p ~/.eduke32
PROG="$( basename $0 )"
mkdir -p $USERDIR
if ! cd ~/.eduke32; then
echo 2>&1 "$PROG: Can't create ~/.eduke32 directory"
if ! cd $USERDIR; then
echo 2>&1 "$PROG: Can't create $USERDIR directory"
exit 1
fi
for i in samples autoload m32help.hlp SEHELP.HLP STHELP.HLP names.h tiles.cfg; do
# These files need to be present, but not writable, symlinks
# to /usr/share are OK.
for i in m32help.hlp SEHELP.HLP STHELP.HLP names.h tiles.cfg; do
if [ -e $SHAREDIR/$i -a ! -e $i ]; then
ln -s $SHAREDIR/$i $i
fi
done
# For directories, it's more complex.
# We don't know in advance what directories might be present, since
# packages can install game mods (e.g. bloodcm). So link them all.
# Unfortunately it can't be a simple symlink, because the *.cfg files
# inside mod directories need to really exist in $USERDIR, writable by
# the user, so he can save his settings.
# The autoload subdir isn't a mod, but it's treated the same way so
# individual users can have different autoload stuff. If you install
# eduke32_hires_pack, this means users can disable it by removing their
# symlink in ~/.eduke32/autoload (without disturbing anything else they
# might have in autoload).
# I wish there were a simpler way to do this. The only other solution
# would be to patch the eduke32 source, to make it save .cfg files in a
# different location than the game data dirs... but I'd rather handle it
# with a wrapper script because it's easier to debug.
# So, here's how we handle the directories:
for i in $SHAREDIR/*/; do
dir=$( basename $i )
if [ ! -e $dir ]; then
mkdir $dir
ln -s $SHAREDIR/$dir/* $dir
rm -f $dir/*.cfg
cp $SHAREDIR/$dir/*.cfg $dir
fi
done
# If this is left over in $USERDIR, it's from a previous version of this
# script, and it doesn't belong there. samples/ isn't a mod, it's actually
# documentation, and is now installed in /usr/doc/eduke32-$VERSION.
rm -f samples
exec $BINDIR/$PROG "$@"

View file

@ -15,5 +15,5 @@ eduke32:
eduke32: To play the game, you will need the DUKE3D.GRP file from either the
eduke32: Duke Nukem 3D CD-ROM, or from the shareware version of Duke Nukem 3D.
eduke32:
eduke32:
eduke32: This package built with SDL @SDL_TARGET@@ANDVPX@.
eduke32: