games/zdoom: Updated for version 2.8.1, new maintainer.

This commit is contained in:
B. Watson 2017-02-07 12:09:31 -05:00 committed by Willy Sudiarto Raharjo
parent bb1b973ce9
commit e8a1157cd2
6 changed files with 169 additions and 39 deletions

View file

@ -1,3 +1,32 @@
ZDoom is an enhanced port of the official DOOM source code.
Originally for Win32 (Windows 95/98/NT), it is now available
for Linux as well.
zdoom (an enhanced port of the official DOOM source code)
ZDoom is a family of enhanced ports of the Doom engine to modern operating
systems. It runs on Windows, Linux, and OS X, and adds new features not
found in the games as originally published by id Software. It supports
Doom, Doom II, Heretic, Hexen, Strife, and more.
zdoom is only a game engine. To actually play the game, you'll need the
game data (IWAD file) from one or more of the supported games. These
include Doom, Ultimate Doom, Final Doom, FreeDoom, Heretic, Hexen,
and Strife. Place the .wad file(s) in /usr/share/games/doom.
If you don't own any of the supported games, you can install one or more
of these slackbuilds.org packages to get a playable game:
- freedoom
- doom_shareware_data
- heretic_shareware_data
- hexen_demo_data
- chexquest3
Optional compile time dependency: OpenAL, used for audio playback
(as an alternative to fmodapi, which is always built in). It will be
autodetected at build time. If you have OpenAL installed but want to
build zdoom without it, set OPENAL=no in the script's environment. There
have been reports that various mods work better with OpenAL, while others
crash or misbehave; YMMV.
Optional runtime dependencies: fluidsynth and fluid-soundfont, and/or
TiMidity++ and eawpats (used for MIDI playback). MIDI playback is still
possible when none of these are present, just select 'OPL Synth Emulation'
from the Options -> Sound Options -> MIDI Device menu within the game.

8
games/zdoom/gitinfo.h Normal file
View file

@ -0,0 +1,8 @@
// 1a9bc53d84b5cceb567fd8246c44984aac88388a
//
// This file was automatically generated by the
// updaterevision tool. Do not edit by hand.
#define GIT_DESCRIPTION "2.8.1"
#define GIT_HASH "1a9bc53d84b5cceb567fd8246c44984aac88388a"
#define GIT_TIME "2016-02-21 20:11:13 -0600"

View file

@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
zdoom: zdoom (an enhanced port of the official DOOM source code)
zdoom:
zdoom: ZDoom is an enhanced port of the official DOOM source code.
zdoom: Originally for Win32 (Windows 95/98/NT), it is now available
zdoom: for Linux as well.
zdoom:
zdoom:
zdoom:
zdoom: ZDoom is a family of enhanced ports of the Doom engine to modern
zdoom: operating systems. It runs on Windows, Linux, and OS X, and adds
zdoom: new features not found in the games as originally published by id
zdoom: Software. It supports Doom, Doom II, Heretic, Hexen, Strife, and more.
zdoom:
zdoom: This package was compiled @WITHOPENAL@ OpenAL support.
zdoom:
zdoom:
zdoom:

View file

@ -2,16 +2,49 @@
# Slackware build script for zdoom
# Written by Pablo Santamaria (pablosantamaria@gmail.com)
# Originally written by Pablo Santamaria (email removed)
# Modified and now maintained by B. Watson <yalhcru@gmail.com>. Original
# version had no license, modified version released under the WTFPL,
# see http://www.wtfpl.net/txt/copying/ for details.
# 20170207 bkw:
# - Take over maintenance, update for v2.8.1, BUILD=1. Upstream
# says zdoom development has halted, so 2.8.1 should be the last
# version ever.
# - i486 => i586.
# - Add SDL2 to REQUIRES as upstream no longer supports SDL1.
# - Remove TiMidity++ from REQUIRES as it's no longer required (likely,
# it never was).
# - Use .tar.gz source from github rather than .7z from zdoom.org. The
# source is identical except for CRLF line endings and a generated
# gitinfo.h file.
# - Remove p7zip from REQUIRES, now that we're using .tar.gz source.
# - Fix the build so when fmodapi is built in, it'll actually *work*.
# Original version of this script required fmodapi at compile time,
# but failed to install liboutput_sdl.so, meaning fmodapi wasn't
# usable at runtime.
# - Replace crappy looking 16x16 "Z" icon with a larger higher-res version,
# the "Z" from this image: https://zdoom.org/wiki/File:Logo_phpBB.gif
# - Various cosmetic script fixes.
# Note to the purists out there: I listed fmodapi as a hard dependency and
# OpenAL as optional. Actually, they're both optional. One or the other
# is required for the game to make sound at all though. I'd say the vast
# majority of users (myself included) would consider a sound-less Doom
# engine an incomplete implementation of the game, and would get annoyed
# if a default build didn't include sound. You may disagree with this,
# but please do so quietly, as though you also had been compiled without
# sound support :)
PRGNAM=zdoom
VERSION=${VERSION:-2.6.0}
BUILD=${BUILD:-2}
VERSION=${VERSION:-2.8.1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@ -22,8 +55,8 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
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"
@ -38,22 +71,69 @@ fi
set -e
# Decide whether to build OpenAL support in.
OPENAL="${OPENAL:-auto}"
if [ "$OPENAL" = "auto" ]; then
if [ -e /usr/include/AL ]; then
OPENAL=yes
else
OPENAL=no
fi
fi
case "$OPENAL" in
y*|Y*|t*|T*|1|[oO][nN])
OPENAL=yes
OPENALOPT="-DNO_OPENAL=OFF"
WITHOPENAL=WITH
;;
*)
OPENAL=no
OPENALOPT="-DNO_OPENAL=ON"
WITHOPENAL=WITHOUT
;;
esac
# I could do the same as above for fluidsynth, but it's not necessary.
# By default, zdoom loads it dynamically at runtime, and if it's missing,
# the game runs anyway... and if fluidsynth is installed after the fact,
# it'll Just Work (no need to recompile). Also, TiMidity++ is purely an
# optional runtime dep.
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
mkdir $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
7z x $CWD/$PRGNAM-$VERSION-src.7z
chown -R root:root .
# Slight template deviation: I used \+ rather than \; (same result, but maybe
# 40x faster).
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
-exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-exec chmod 644 {} \+
# Set default directory for IWADs (share with others doom engines, ej. prboom)
sed -i 's|/usr/local/share/|/usr/share/games/doom/|' src/sdl/i_system.h
# gitinfo.h made like so:
## git clone https://github.com/rheit/zdoom.git
## git reset <commit ID, as listed on github's releases page>
## cd zdoom/tools/updaterevision
## cmake .
## make
## ./updaterevision ../../../gitinfo.h
# Without this, we get fugly <unknown version> in the window's title.
cat $CWD/gitinfo.h > src/gitinfo.h
# Set default directory for IWADs (share with other doom engines, e.g. prboom)
sed -i 's|/usr/local/share/|/usr/share/games/doom/|' src/posix/i_system.h
# fmodapi support tries to find its lib in the current dir, fix it:
sed -i \
"s,setPluginPath(progdir),setPluginPath(\"/usr/lib$LIBDIRSUFFIX/$PRGNAM\")," \
src/sound/fmodsound.cpp
mkdir release
cd release
@ -63,27 +143,40 @@ cmake \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE="Release" \
-DFMOD_LIBRARY=/usr/lib${LIBDIRSUFFIX}/libfmodex${LIBDIRSUFFIX}.so \
$OPENALOPT \
..
make
mkdir -p $PKG/usr/{games,share/{applications,pixmaps,games/doom}}
install -m755 zdoom $PKG/usr/games
install -m644 zdoom.pk3 $PKG/usr/share/games/doom/
install -m644 $CWD/zdoom.png $PKG/usr/share/pixmaps/
install -m644 $CWD/zdoom.desktop $PKG/usr/share/applications/
mkdir -p \
$PKG/usr/games \
$PKG/usr/share/applications \
$PKG/usr/share/pixmaps \
$PKG/usr/share/games/doom \
$PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM
# No 'make install' target, though there are some cmake_install.cmake files.
# Manual install is simple enough anyway.
install -s -m755 $PRGNAM $PKG/usr/games
[ -e liboutput_sdl.so ] && \
install -s -m755 liboutput_sdl.so $PKG/usr/lib$LIBDIRSUFFIX/$PRGNAM
install -m644 $PRGNAM.pk3 $PKG/usr/share/games/doom/
install -m644 $CWD/$PRGNAM.png $PKG/usr/share/pixmaps/
install -m644 $CWD/$PRGNAM.desktop $PKG/usr/share/applications/
cd ..
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
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a docs/* $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
# Get rid of CRLF endings in the docs.
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
for i in docs/*; do
sed 's,\r,,' $i > $PKGDOC/$( basename $i )
done
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
# Make slack-desc tell us whether OpenAL was built in or not.
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
sed "s,@WITHOPENAL@,$WITHOPENAL,g" $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG

View file

@ -1,10 +1,10 @@
PRGNAM="zdoom"
VERSION="2.6.0"
VERSION="2.8.1"
HOMEPAGE="http://zdoom.org/"
DOWNLOAD="http://zdoom.org/files/zdoom/2.6/zdoom-2.6.0-src.7z"
MD5SUM="26318282e8b28fe06f8a9d446d058b8c"
DOWNLOAD="https://github.com/rheit/zdoom/archive/2.8.1/zdoom-2.8.1.tar.gz"
MD5SUM="614f547f3425b282d4e398ca90514f89"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="TiMidity++ fmodapi p7zip"
MAINTAINER="Pablo Santamaria"
EMAIL="pablosantamaria@gmail.com"
REQUIRES="SDL2 fmodapi"
MAINTAINER="B. Watson"
EMAIL="yalhcru@gmail.com"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 1.7 KiB