games/etlegacy: Added (collaborative FPS).

Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Matteo Bernardini 2014-11-15 15:52:37 +01:00 committed by Willy Sudiarto Raharjo
parent e995ee9711
commit 153516fb03
9 changed files with 397 additions and 0 deletions

31
games/etlegacy/README Normal file
View file

@ -0,0 +1,31 @@
Wolfenstein Enemy Territory: Legacy is a project that aims to create
a fully compatible client and server for the popular online FPS game
Wolfenstein: Enemy Territory.
It's based on its source code released under the GPLv3 license.
The main goal of this project is to fix bugs, remove old dependencies
and make it playable on all major operating systems while still
remaining compatible with the ET 2.60b version and as many of its mods
as possible.
This script builds the server with omni-bot support (x86 32bit only).
(http://www.omni-bot.com/)
This command line switches are available:
- RENDERER2=yes (default: no) enable the new renderer (it performs
better but needs an OpenGL 3.0+ capable GPU; also it's still WIP,
so enable at your own risk, may cause incompatibilities with some
maps);
- FREETYPE=yes (default: no) enables freetype support;
- OPENAL=yes (default: no) enables OpenAL support
(for this you need the optional dependency OpenAL);
- CROUCH=yes (default: no) enables sticky crouching (during game).
To play you *need* also the data files from the original game
(etlegacy-data).
* WARNING *
To have a client/server compatible with the existing ones (to play
on the existing online servers), build it on/for a 32bit platform.

3
games/etlegacy/doinst.sh Normal file
View file

@ -0,0 +1,3 @@
if [ -x /usr/bin/update-desktop-database ]; then
/usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
fi

View file

@ -0,0 +1,177 @@
#!/bin/sh
# Slackware build script for etlegacy
# Copyright 2013-2014 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=etlegacy
VERSION=${VERSION:-20141115_3a6dbd5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i*86) ARCH=i686 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
w_omnibot=1
if [ "$ARCH" = "i386" ]; then
SLKCFLAGS="-O2 -march=i386 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=core2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
w_omnibot=0
else
SLKCFLAGS="-O2"
w_omnibot=0
fi
# The new renderer performs better but needs an OpenGL 3.0+ capable GPU;
# also it's still WIP, so enable at your own risk, may cause incompatibilities
# with some maps
if [ "${RENDERER2:-no}" = "yes" ]; then w_renderer=1; else w_renderer=0; fi
if [ "${FREETYPE:-no}" = "yes" ]; then w_freetype=1; else w_freetype=0; fi
if [ "${OPENAL:-no}" = "yes" ]; then w_openal=1; else w_openal=0; fi
if [ "${CROUCH:-no}" = "yes" ]; then w_crouch=1; else w_crouch=0; fi
if [ "${MULTIVIEW:-no}" = "yes" ]; then w_multiview=1; else w_multiview=0; fi
set -e # Exit on most errors
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.?z*
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 {} \;
# Fix location of the omnibot.zip, man install path
# and leave the relative path to binaries off
sed -i "s|share/man|man|" CMakeLists.txt
sed -i "s|^\.\/etl|etl|" misc/etl_bot.sh misc/etlded_bot.sh
mkdir -p build/legacy
cd build
ln -s $CWD/omnibot-linux-latest.tar.gz legacy/
# We have to use bundled lua and sdl
cmake \
-DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
-DCMAKE_INSTALL_PREFIX="/usr" \
-DINSTALL_DEFAULT_BINDIR="bin" \
-DINSTALL_DEFAULT_MODDIR="share/$PRGNAM" \
-DINSTALL_DEFAULT_BASEDIR="/usr/share/$PRGNAM" \
-DBUILD_CLIENT=1 \
-DBUILD_SERVER=1 \
-DBUILD_MOD=1 \
-DBUILD_MOD_PK3=1 \
-DBUILD_PAK3_PK3=1 \
-DFEATURE_ANTICHEAT=1 \
-DFEATURE_CURL=1 \
-DFEATURE_LUA=1 \
-DFEATURE_TRACKER=1 \
-DFEATURE_OMNIBOT=$w_omnibot \
-DINSTALL_OMNIBOT=$w_omnibot \
-DFEATURE_MULTIVIEW=0 \
-DFEATURE_CURSES=0 \
-DCROSS_COMPILE32=0 \
-DFEATURE_OGG_VORBIS=1 \
-DFEATURE_FREETYPE=$w_freetype \
-DFEATURE_OPENAL=$w_openal \
-DFEATURE_AUTOUPDATE=0 \
-DFEATURE_IPV6=0 \
-DFEATURE_GETTEXT=1 \
-DFEATURE_RENDERER2=$w_renderer \
-DFEATURE_CROUCH=$w_crouch \
-DFEATURE_MULTIVIEW=$w_multiview \
-DRENDERER_DYNAMIC=0 \
-DBUNDLED_LIBS=1 \
-DBUNDLED_SDL=1 \
-DBUNDLED_LUA=1 \
-DBUNDLED_CURL=0 \
-DBUNDLED_JPEG=0 \
-DBUNDLED_OGG_VORBIS=0 \
-DBUNDLED_GLEW=0 \
-DBUNDLED_FREETYPE=0 \
-DBUNDLED_JANSSON=1 \
-DCMAKE_BUILD_TYPE=Release ..
# JIC, sanitize the just-uncompressed omnibot stuff
chown -R root:root legacy
find -L legacy \
\( -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 {} \;
make
make install DESTDIR=$PKG
cd ..
# Move man pages in the proper place
mv $PKG/usr/share/man $PKG/usr/man
# Install a script to open urls, and move two scripts to launch the client and
# the dedicated server with omnibot support in the binaries folder
install -m 0755 $CWD/files/openurl.sh $PKG/usr/bin/openurl.sh
mv $PKG/usr/share/$PRGNAM/etl*.sh $PKG/usr/bin/
chmod 755 $PKG/usr/bin/etl*.sh
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
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
# Install an icon, a desktop file and man pages
install -m 0644 -D $CWD/files/$PRGNAM.svg \
$PKG/usr/share/pixmaps/$PRGNAM.svg
install -m 0644 -D $CWD/files/$PRGNAM.desktop \
$PKG/usr/share/applications/$PRGNAM.desktop
mkdir -p $PKG/usr/man/man6
gzip -9 -c docs/linux/man/man6/etl.6 > $PKG/usr/man/man6/etl.6.gz
gzip -9 -c docs/linux/man/man6/etlded.6 > $PKG/usr/man/man6/etlded.6.gz
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
mv \
$PKG/usr/share/$PRGNAM/README.md \
$PKG/usr/share/$PRGNAM/COPYING.txt \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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:-tgz}

View file

@ -0,0 +1,12 @@
PRGNAM="etlegacy"
VERSION="20141115_3a6dbd5"
HOMEPAGE="http://www.etlegacy.com"
DOWNLOAD="http://ponce.cc/slackware/sources/repo/etlegacy-20141115_3a6dbd5.tar.xz \
http://ponce.cc/slackware/sources/repo/omnibot-linux-latest.tar.gz"
MD5SUM="9a4ac962170e7a9d0d7b9ac995917546 \
b355b2d25a6812fda61725d45a51f049"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README% etlegacy-data zenity"
MAINTAINER="Matteo Bernardini"
EMAIL="ponce@slackbuilds.org"

View file

@ -0,0 +1,9 @@
[Desktop Entry]
Name=ETLegacy
Comment=ET: Legacy (Collaborative online FPS)
Exec=etl
Icon=etl
Terminal=false
Type=Application
Categories=Game;
StartupNotify=false

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,31 @@
rm -fR /tmp/tmp-etlegacy
mkdir -p /tmp/tmp-etlegacy
cd /tmp/tmp-etlegacy
git clone git://github.com/etlegacy/etlegacy.git
cd etlegacy
git submodule init
git submodule update
cd libs
git archive master > ../../libs.tar
cd ..
cd scripts
git archive master > ../../scripts.tar
cd ..
COMMIT=$( git log -1 | head -1 | cut -c 8-14 )
COMMDATE=$( git log -1 --date=short | grep ^Date | awk '{print $2}' | sed 's/-//g' )
rm -f /tmp/etlegacy-${COMMDATE}_${COMMIT}.tar.xz
git archive master > ../src.tar
cd ..
mkdir etlegacy-${COMMDATE}_${COMMIT}
cd etlegacy-${COMMDATE}_${COMMIT}
tar xf ../src.tar
cd libs
tar xf ../../libs.tar
cd ..
cd scripts
tar xf ../../scripts.tar
cd ..
cd ..
rm -f src.tar libs.tar scripts.tar
tar Jcf /tmp/etlegacy-${COMMDATE}_${COMMIT}.tar.xz etlegacy-${COMMDATE}_${COMMIT}
echo "/tmp/etlegacy-${COMMDATE}_${COMMIT}.tar.xz done."

View file

@ -0,0 +1,15 @@
#!/bin/sh
# use this script to customize the way the engine should open URLs
for test_browser in firefox seamonkey opera
do
browser=`which $test_browser`
if [ "x$browser" != "x" ]
then
$browser -remote "openURL($1,new-window)" || $browser "$1"
exit
fi
done
# xterm -e lynx "$1"
exit 0

19
games/etlegacy/slack-desc Normal file
View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
etlegacy: etlegacy (collaborative FPS)
etlegacy:
etlegacy: Wolfenstein Enemy Territory : Legacy is a project that aims to create
etlegacy: a fully compatible client and server for the popular online FPS game
etlegacy: Wolfenstein: Enemy Territory.
etlegacy: It's based on its source code released under the GPLv3 license.
etlegacy: The main goal of this project is to fix bugs, remove old dependencies
etlegacy: and make it playable on all major operating systems while still
etlegacy: remaining compatible with the ET 2.60b version and as many of its mods
etlegacy: as possible.
etlegacy: homepage: http://www.etlegacy.com/