diff options
Diffstat (limited to 'community/sauerbraten')
-rw-r--r-- | community/sauerbraten/PKGBUILD | 73 | ||||
-rw-r--r-- | community/sauerbraten/fix-indirect-linking.diff | 20 | ||||
-rw-r--r-- | community/sauerbraten/license.txt | 34 | ||||
-rwxr-xr-x | community/sauerbraten/sauerbraten-client | 14 | ||||
-rwxr-xr-x | community/sauerbraten/sauerbraten-server | 22 | ||||
-rw-r--r-- | community/sauerbraten/sauerbraten.confd | 7 | ||||
-rw-r--r-- | community/sauerbraten/sauerbraten.install | 22 | ||||
-rw-r--r-- | community/sauerbraten/sauerbraten.png | bin | 0 -> 9313 bytes | |||
-rw-r--r-- | community/sauerbraten/sauerbraten.rcd | 37 | ||||
-rw-r--r-- | community/sauerbraten/sauerbraten.service | 13 |
10 files changed, 242 insertions, 0 deletions
diff --git a/community/sauerbraten/PKGBUILD b/community/sauerbraten/PKGBUILD new file mode 100644 index 000000000..ed3520ba6 --- /dev/null +++ b/community/sauerbraten/PKGBUILD @@ -0,0 +1,73 @@ +# $Id: PKGBUILD 75284 2012-08-17 21:27:10Z lcarlier $ +# Maintainer: Laurent Carlier <lordheavym@gmail.com> +# Contributor: Jaroslaw Swierczynski <swiergot@aur.archlinux.org> +# Contributor: Roman Kyrylych <Roman.Kyrylych@gmail.com> +# Contributor: Christoph Siegenthaler <csi@gmx.ch> +# Contributor: Jesse Young <jesse@eon.jlyo.org> + +pkgname=sauerbraten +pkgver=2010_07_28_justice_edition +pkgrel=5 +pkgdesc="FPS that uses an improved version of the Cube engine" +arch=('i686' 'x86_64') +url="http://www.sauerbraten.org/" +license=('ZLIB') +makedepends=('sdl_mixer' 'sdl_image' 'libgl' 'mesa' 'gendesk') +install=sauerbraten.install +backup=('etc/conf.d/sauerbraten') +source=(http://downloads.sourceforge.net/$pkgname/${pkgname}_${pkgver}_linux.tar.bz2 + sauerbraten-client + sauerbraten-server + sauerbraten.confd + sauerbraten.rcd + sauerbraten.png + sauerbraten.install + sauerbraten.service + license.txt + fix-indirect-linking.diff) +md5sums=('0947cb37b628873063270be1fcce27f6' + 'ac66ef9e80d6fc1b4b047df1c36c07c0' + '4a42c314d01ccdc4c76fad38d18c7434' + '8e26aeba1ef178c24e22723d3c48d7e1' + 'e0a2e0679c34b39623964ee68e6fae1e' + '3e602f421f7342cf8c3ed16314523d6f' + '2f7b423f49491359ff776a91414db4d8' + '3c964cdd0906461c0404641b1eb52d96' + 'cf46cd0148f03b7477f7c54aec865abe' + 'a9a9b658affd933ad354be45da998354') +_exec=('sauerbraten-client %u') + +build() { + cd "$srcdir" + gendesk + + cd "$pkgname/src" + + patch -Np1 -i ../../fix-indirect-linking.diff + + make + + # remove cvs directories + find ${srcdir}/$pkgname -type d -name CVS -exec rm -rf '{}' \; 2> /dev/null +} + +package() { + depends=('sdl_mixer' 'sdl_image' 'libgl' 'sauerbraten-data') + + cd ${srcdir}/$pkgname/src + + make DESTDIR="${pkgdir}" install + + cd .. + install -D bin_unix/native_client ${pkgdir}/opt/sauerbraten/bin/linux_client + install -D bin_unix/native_server ${pkgdir}/opt/sauerbraten/bin/linux_server + + install -Dm755 ${srcdir}/sauerbraten-client ${pkgdir}/usr/bin/sauerbraten-client + install -Dm755 ${srcdir}/sauerbraten-server ${pkgdir}/usr/sbin/sauerbraten-server + install -Dm644 ${srcdir}/sauerbraten.confd ${pkgdir}/etc/conf.d/sauerbraten + install -Dm755 ${srcdir}/sauerbraten.rcd ${pkgdir}/etc/rc.d/sauerbraten + install -Dm644 ${srcdir}/sauerbraten.service ${pkgdir}/usr/lib/systemd/system/sauerbraten.service + install -Dm644 ${srcdir}/sauerbraten.desktop ${pkgdir}/usr/share/applications/sauerbraten.desktop + install -Dm644 ${srcdir}/sauerbraten.png ${pkgdir}/usr/share/pixmaps/sauerbraten.png + install -Dm644 ${srcdir}/license.txt ${pkgdir}/usr/share/licenses/sauerbraten/license.txt +} diff --git a/community/sauerbraten/fix-indirect-linking.diff b/community/sauerbraten/fix-indirect-linking.diff new file mode 100644 index 000000000..56ed8825b --- /dev/null +++ b/community/sauerbraten/fix-indirect-linking.diff @@ -0,0 +1,20 @@ +Index: sauerbraten/Makefile +=================================================================== +--- sauerbraten.orig/Makefile 2010-07-29 21:24:21.000000000 -0400 ++++ sauerbraten/Makefile 2010-07-29 21:26:15.717746486 -0400 +@@ -21,11 +21,14 @@ + CLIENT_LIBS= -mwindows -Llib -lSDL -lSDL_image -lSDL_mixer -lzdll -lopengl32 -lenet -lws2_32 -lwinmm + else + CLIENT_INCLUDES= $(INCLUDES) -I/usr/X11R6/include `sdl-config --cflags` +-CLIENT_LIBS= -Lenet/.libs -lenet -L/usr/X11R6/lib `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL ++CLIENT_LIBS= -Lenet/.libs -lenet -L/usr/X11R6/lib `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL -lX11 + endif + ifeq ($(PLATFORM),Linux) + CLIENT_LIBS+= -lrt + endif ++ifeq ($(PLATFORM),GNU/kFreeBSD) ++CLIENT_LIBS+= -lrt ++endif + CLIENT_OBJS= \ + shared/crypto.o \ + shared/geom.o \ diff --git a/community/sauerbraten/license.txt b/community/sauerbraten/license.txt new file mode 100644 index 000000000..f38792c76 --- /dev/null +++ b/community/sauerbraten/license.txt @@ -0,0 +1,34 @@ +LICENSE +======= + +Sauerbraten game engine source code, any release. + +Copyright (C) 2001-2006 Wouter van Oortmerssen. + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + + +LICENSE NOTES +============= +The license covers the source code found in the "src" directory of this +archive, the included enet network library which sauerbraten uses is covered by +an MIT-style license, which is however compatible with the above license for all +practical purposes. + +Game media included in the game (maps, textures, sounds, models etc.) +are NOT covered by this license, and may have individual copyrights and +distribution restrictions (see individual readmes). diff --git a/community/sauerbraten/sauerbraten-client b/community/sauerbraten/sauerbraten-client new file mode 100755 index 000000000..8a9b354f3 --- /dev/null +++ b/community/sauerbraten/sauerbraten-client @@ -0,0 +1,14 @@ +#!/bin/sh + +WIDTH=1024 +HEIGHT=768 +[ -f /etc/conf.d/sauerbraten ] && . /etc/conf.d/sauerbraten + +cd /opt/sauerbraten +if [ -f /usr/bin/aoss ]; then + aoss bin/linux_client -w$WIDTH -h$HEIGHT -q${HOME}/.config/sauerbraten -r +else + bin/linux_client -w$WIDTH -h$HEIGHT -q${HOME}/.config/sauerbraten -r +fi + + diff --git a/community/sauerbraten/sauerbraten-server b/community/sauerbraten/sauerbraten-server new file mode 100755 index 000000000..b4c79cb7f --- /dev/null +++ b/community/sauerbraten/sauerbraten-server @@ -0,0 +1,22 @@ +#!/bin/sh + +SAUER_USER=nobody +LOGDIR=/var/log/sauerbraten +[ -f /etc/conf.d/sauerbraten ] && . /etc/conf.d/sauerbraten + +cd /opt/sauerbraten + +if [ "$(id -u)" == "0" ]; then + if [ ! -d "$LOGDIR" ]; then + mkdir -p "$LOGDIR" + chown "$SAUER_USER:log" "$LOGDIR" + fi + + sudo -Hu "$SAUER_USER" \ + nohup /opt/sauerbraten/bin/linux_server \ + >> "$LOGDIR/main.log" \ + 2>> "$LOGDIR/error.log" \ + < /dev/null & +else + bin/linux_server +fi diff --git a/community/sauerbraten/sauerbraten.confd b/community/sauerbraten/sauerbraten.confd new file mode 100644 index 000000000..93cd32de7 --- /dev/null +++ b/community/sauerbraten/sauerbraten.confd @@ -0,0 +1,7 @@ +# Client options +WIDTH=1024 +HEIGHT=768 + +# Server options +SAUER_USER=sauerbraten +LOGDIR=/var/log/sauerbraten diff --git a/community/sauerbraten/sauerbraten.install b/community/sauerbraten/sauerbraten.install new file mode 100644 index 000000000..2ee7689ab --- /dev/null +++ b/community/sauerbraten/sauerbraten.install @@ -0,0 +1,22 @@ +# arg 1: the new package version +post_install() { + getent group sauerbraten >/dev/null 2>&1 || groupadd -r sauerbraten + if getent passwd sauerbraten > /dev/null 2>&1; then + usr/sbin/usermod -d /var/spool/sauerbraten -c 'Sauerbraten' -s /sbin/nologin sauerbraten > /dev/null 2>&1 + else + usr/sbin/useradd -c 'Sauerbraten' -r -g sauerbraten -d /opt/sauerbraten -s /sbin/nologin sauerbraten + fi + passwd -l sauerbraten > /dev/null +} + +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + post_install $1 +} + +# arg 1: the old package version +pre_remove() { + getent passwd sauerbraten >/dev/null 2>&1 && userdel sauerbraten +} + diff --git a/community/sauerbraten/sauerbraten.png b/community/sauerbraten/sauerbraten.png Binary files differnew file mode 100644 index 000000000..5ec7606bc --- /dev/null +++ b/community/sauerbraten/sauerbraten.png diff --git a/community/sauerbraten/sauerbraten.rcd b/community/sauerbraten/sauerbraten.rcd new file mode 100644 index 000000000..fb95aae16 --- /dev/null +++ b/community/sauerbraten/sauerbraten.rcd @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +case "$1" in + start) + stat_busy "Starting sauerbraten-server" + [ ! -f /var/run/daemons/sauerbraten ] && /usr/sbin/sauerbraten-server + if [ $? -gt 0 ]; then + stat_fail + else + pgrep -of "/opt/sauerbraten/bin/linux_server" > /var/run/sauerbraten.pid + add_daemon sauerbraten + stat_done + fi + ;; + + stop) + stat_busy "Stopping sauerbraten-server" + [ -f /var/run/sauerbraten.pid ] && kill `cat /var/run/sauerbraten.pid` + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon sauerbraten + stat_done + fi + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community/sauerbraten/sauerbraten.service b/community/sauerbraten/sauerbraten.service new file mode 100644 index 000000000..a3982a50c --- /dev/null +++ b/community/sauerbraten/sauerbraten.service @@ -0,0 +1,13 @@ +[Unit] +Description=Sauerbraten dedicated server +After=network.target + +[Service] +User=nobody +ExecStart=/opt/sauerbraten/bin/linux_server +Restart=on-abort +StandardOutput=syslog + +[Install] +WantedBy=multi-user.target + |