From 9b343c9658105bbe3e200fac4525aa3d19bb0fef Mon Sep 17 00:00:00 2001 From: Matteo Bernardini Date: Sat, 31 Oct 2020 17:40:51 +0100 Subject: games/etlegacy-from-source: Added (collaborative FPS). Signed-off-by: Matteo Bernardini --- games/etlegacy-from-source/README | 25 +++ games/etlegacy-from-source/doinst.sh | 3 + .../etlegacy-from-source.SlackBuild | 186 +++++++++++++++++++++ .../etlegacy-from-source/etlegacy-from-source.info | 16 ++ games/etlegacy-from-source/files/etlegacy.desktop | 9 + games/etlegacy-from-source/files/etlegacy.svg | 100 +++++++++++ .../files/get_tarball_from_git.sh | 25 +++ games/etlegacy-from-source/files/openurl.sh | 15 ++ games/etlegacy-from-source/slack-desc | 19 +++ 9 files changed, 398 insertions(+) create mode 100644 games/etlegacy-from-source/README create mode 100644 games/etlegacy-from-source/doinst.sh create mode 100644 games/etlegacy-from-source/etlegacy-from-source.SlackBuild create mode 100644 games/etlegacy-from-source/etlegacy-from-source.info create mode 100644 games/etlegacy-from-source/files/etlegacy.desktop create mode 100644 games/etlegacy-from-source/files/etlegacy.svg create mode 100644 games/etlegacy-from-source/files/get_tarball_from_git.sh create mode 100644 games/etlegacy-from-source/files/openurl.sh create mode 100644 games/etlegacy-from-source/slack-desc diff --git a/games/etlegacy-from-source/README b/games/etlegacy-from-source/README new file mode 100644 index 0000000000..4d6185212f --- /dev/null +++ b/games/etlegacy-from-source/README @@ -0,0 +1,25 @@ +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/) + +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. + +This version of the game is built from source: the resulting package +conflicts with the etlegacy SlackBuild you can find on SBo so install +only one of the two. diff --git a/games/etlegacy-from-source/doinst.sh b/games/etlegacy-from-source/doinst.sh new file mode 100644 index 0000000000..5fb28930db --- /dev/null +++ b/games/etlegacy-from-source/doinst.sh @@ -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 diff --git a/games/etlegacy-from-source/etlegacy-from-source.SlackBuild b/games/etlegacy-from-source/etlegacy-from-source.SlackBuild new file mode 100644 index 0000000000..a5ebca6e9e --- /dev/null +++ b/games/etlegacy-from-source/etlegacy-from-source.SlackBuild @@ -0,0 +1,186 @@ +#!/bin/sh + +# Slackware build script for etlegacy-from-source +# Copyright 2013-2020 Matteo Bernardini , 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-from-source +SRCNAM=etlegacy +VERSION=${VERSION:-20201029_886f0ef} +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 + +set -e # Exit on most errors + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* +cd $SRCNAM-$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 + cp -a $CWD/omnibot-linux-latest.tar.gz legacy/ + cp -a $CWD/wolfadmin.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/$SRCNAM" \ + -DINSTALL_DEFAULT_BASEDIR="/usr/share/$SRCNAM" \ + -DBUILD_CLIENT=1 \ + -DBUILD_SERVER=1 \ + -DBUILD_MOD=1 \ + -DBUILD_MOD_PK3=1 \ + -DBUILD_PAK3_PK3=1 \ + -DFEATURE_CURL=1 \ + -DFEATURE_OGG_VORBIS=1 \ + -DFEATURE_THEORA=1 \ + -DFEATURE_OPENAL=1 \ + -DFEATURE_FREETYPE=1 \ + -DFEATURE_TRACKER=0 \ + -DFEATURE_GETTEXT=1 \ + -DFEATURE_JANSSON=0 \ + -DFEATURE_DBMS=1 \ + -DFEATURE_LUA=1 \ + -DFEATURE_MULTIVIEW=1 \ + -DFEATURE_EDV=1 \ + -DFEATURE_ANTICHEAT=1 \ + -DFEATURE_RATING=1 \ + -DFEATURE_AUTOUPDATE=0 \ + -DFEATURE_LUASQL=1 \ + -DFEATURE_OMNIBOT=$w_omnibot \ + -DINSTALL_EXTRA=1 \ + -DINSTALL_OMNIBOT=$w_omnibot \ + -DINSTALL_GEOIP=1 \ + -DINSTALL_WOLFADMIN=1 \ + -DCROSS_COMPILE32=0 \ + -DFEATURE_OGG_VORBIS=1 \ + -DFEATURE_FREETYPE=1 \ + -DFEATURE_AUTOUPDATE=0 \ + -DFEATURE_IPV6=0 \ + -DFEATURE_GETTEXT=1 \ + -DFEATURE_RENDERER2=1 \ + -DFEATURE_RENDERER_GLES=0 \ + -DRENDERER_DYNAMIC=1 \ + -DBUNDLED_LIBS=1 \ + -DBUNDLED_SDL=1 \ + -DBUNDLED_LUA=1 \ + -DBUNDLED_OGG_VORBIS=1 \ + -DBUNDLED_THEORA=1 \ + -DBUNDLED_SQLITE3=1 \ + -DBUNDLED_JANSSON=0 \ + -DBUNDLED_ZLIB=1 \ + -DBUNDLED_MINIZIP=1 \ + -DBUNDLED_CURL=1 \ + -DBUNDLED_OPENAL=1 \ + -DBUNDLED_JPEG=1 \ + -DBUNDLED_GLEW=0 \ + -DBUNDLED_FREETYPE=1 \ + -DCMAKE_BUILD_TYPE=Release .. + + # JIC, sanitize the just-uncompressed 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/$SRCNAM/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/$SRCNAM.svg \ + $PKG/usr/share/pixmaps/$SRCNAM.svg +install -m 0644 -D $CWD/files/$SRCNAM.desktop \ + $PKG/usr/share/applications/$SRCNAM.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/$SRCNAM/*.txt \ + $PKG/usr/doc/$PRGNAM-$VERSION +cp README* $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} diff --git a/games/etlegacy-from-source/etlegacy-from-source.info b/games/etlegacy-from-source/etlegacy-from-source.info new file mode 100644 index 0000000000..901378e2a2 --- /dev/null +++ b/games/etlegacy-from-source/etlegacy-from-source.info @@ -0,0 +1,16 @@ +PRGNAM="etlegacy" +VERSION="20201029_886f0ef" +HOMEPAGE="http://www.etlegacy.com" +DOWNLOAD="http://ponce.cc/slackware/sources/repo/etlegacy-20201029_886f0ef.tar.xz \ + http://ponce.cc/slackware/sources/repo/omnibot-linux-latest.tar.gz \ + http://ponce.cc/slackware/sources/repo/wolfadmin.tar.gz \ + http://ponce.cc/slackware/sources/repo/GeoIP.dat.gz" +MD5SUM="e3104a3206e1d1ae0f02466e31df3bca \ + eddeb7d4033cebc269d00e06bbccbfb6 \ + c919afd544c1a0e9a08d5a0128247214 \ + 5ac81d5de50c557be104e4c43f851c36" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="%README% etlegacy-data zenity" +MAINTAINER="Matteo Bernardini" +EMAIL="ponce@slackbuilds.org" diff --git a/games/etlegacy-from-source/files/etlegacy.desktop b/games/etlegacy-from-source/files/etlegacy.desktop new file mode 100644 index 0000000000..2618c0c13e --- /dev/null +++ b/games/etlegacy-from-source/files/etlegacy.desktop @@ -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 diff --git a/games/etlegacy-from-source/files/etlegacy.svg b/games/etlegacy-from-source/files/etlegacy.svg new file mode 100644 index 0000000000..51754d1889 --- /dev/null +++ b/games/etlegacy-from-source/files/etlegacy.svg @@ -0,0 +1,100 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/games/etlegacy-from-source/files/get_tarball_from_git.sh b/games/etlegacy-from-source/files/get_tarball_from_git.sh new file mode 100644 index 0000000000..a0f1819819 --- /dev/null +++ b/games/etlegacy-from-source/files/get_tarball_from_git.sh @@ -0,0 +1,25 @@ +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 .. +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 .. +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." diff --git a/games/etlegacy-from-source/files/openurl.sh b/games/etlegacy-from-source/files/openurl.sh new file mode 100644 index 0000000000..274f12d08d --- /dev/null +++ b/games/etlegacy-from-source/files/openurl.sh @@ -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 diff --git a/games/etlegacy-from-source/slack-desc b/games/etlegacy-from-source/slack-desc new file mode 100644 index 0000000000..e6866b09b8 --- /dev/null +++ b/games/etlegacy-from-source/slack-desc @@ -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-from-source: etlegacy-from-source (collaborative FPS) +etlegacy-from-source: +etlegacy-from-source: Wolfenstein Enemy Territory : Legacy is a project that aims to create +etlegacy-from-source: a fully compatible client and server for the popular online FPS game +etlegacy-from-source: Wolfenstein: Enemy Territory. +etlegacy-from-source: It's based on its source code released under the GPLv3 license. +etlegacy-from-source: The main goal of this project is to fix bugs, remove old dependencies +etlegacy-from-source: and make it playable on all major operating systems while still +etlegacy-from-source: remaining compatible with the ET 2.60b version and as many of its mods +etlegacy-from-source: as possible. This version is built from source. +etlegacy-from-source: homepage: http://www.etlegacy.com/ -- cgit v1.2.3