summaryrefslogtreecommitdiff
path: root/community/sauerbraten
diff options
context:
space:
mode:
Diffstat (limited to 'community/sauerbraten')
-rw-r--r--community/sauerbraten/PKGBUILD73
-rw-r--r--community/sauerbraten/fix-indirect-linking.diff20
-rw-r--r--community/sauerbraten/license.txt34
-rwxr-xr-xcommunity/sauerbraten/sauerbraten-client14
-rwxr-xr-xcommunity/sauerbraten/sauerbraten-server22
-rw-r--r--community/sauerbraten/sauerbraten.confd7
-rw-r--r--community/sauerbraten/sauerbraten.install22
-rw-r--r--community/sauerbraten/sauerbraten.pngbin0 -> 9313 bytes
-rw-r--r--community/sauerbraten/sauerbraten.rcd37
-rw-r--r--community/sauerbraten/sauerbraten.service13
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
new file mode 100644
index 000000000..5ec7606bc
--- /dev/null
+++ b/community/sauerbraten/sauerbraten.png
Binary files differ
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
+