summaryrefslogtreecommitdiff
path: root/games-fps/sauerbraten
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /games-fps/sauerbraten
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'games-fps/sauerbraten')
-rw-r--r--games-fps/sauerbraten/Manifest7
-rw-r--r--games-fps/sauerbraten/files/sauerbraten-2013.02.03-QA.patch50
-rw-r--r--games-fps/sauerbraten/files/sauerbraten-2013.02.03-system-enet.patch64
-rw-r--r--games-fps/sauerbraten/files/sauerbraten.conf28
-rw-r--r--games-fps/sauerbraten/files/sauerbraten.init74
-rw-r--r--games-fps/sauerbraten/metadata.xml14
-rw-r--r--games-fps/sauerbraten/sauerbraten-2013.02.03.ebuild123
7 files changed, 360 insertions, 0 deletions
diff --git a/games-fps/sauerbraten/Manifest b/games-fps/sauerbraten/Manifest
new file mode 100644
index 000000000000..0119d453acde
--- /dev/null
+++ b/games-fps/sauerbraten/Manifest
@@ -0,0 +1,7 @@
+AUX sauerbraten-2013.02.03-QA.patch 2037 BLAKE2B e9311a8bb64dcd67355767f57261fd5ef11955ce899dedfcb97cf863f7a9b35617169c24286d5ce3074c233a453364efb56477c6de48009bb8106a73c7e50daf SHA512 1725945f0373f03e5ae81b8e9eee4e2a9260d9362ad424e4198bb71af2e69055439268197f784d2acbd9e17ff977e8b1a7f5193d378a036488ff758d0ead4b5a
+AUX sauerbraten-2013.02.03-system-enet.patch 1880 BLAKE2B 57c35e0d15344fdb226f829460d1c15cb163a103911b4d63d544c786f8cb4fe10a0624749e0d3b6fce5a643d2c8285001a8a63f3c700441971a9597f11deb776 SHA512 b53e7db4e6b7ce012ee292a24cbf6e84e1c6bce01cde1a41985d0b471a68c1d2978f8272bc359a81beb317b5ab2ff88a13a1e73aaeb7f5c643e778ffe9861c7a
+AUX sauerbraten.conf 605 BLAKE2B 454045423be96b14debca64e6f65fc3c335f3428affae889727f9bd598b7d3c4084f2d50b48a26f8571f8774f79a99705479ed73b68058c527f7d44bf5ad8a18 SHA512 685b7358ad7267b1b19ac00f879a82205f346b32fda8cb460c4f8c50e9f20263c102b0fca62ab437dabe67ebbdd281f130f28f3b8ef2bcf064ae45fbd23cce67
+AUX sauerbraten.init 1951 BLAKE2B 48402bfcc32caf16491886c6ccb7395628b2c067a5126d59908fe676311bfc781b9aec89aceda8920cedbd3c2c5477e9b404c29a0f6f7c64fd29263432076d1c SHA512 9a96557cb2822f30693900b1dc9ecad9f1eab9e8a3d75432667bfba784ee86754649cf08ccab5f9cbff6be7ab584f3325b9c40c947005cdee425716a888d5c40
+DIST sauerbraten_2013_02_03_collect_edition_linux.tar.bz2 589941180 BLAKE2B b8a1c929dcf7a32bc289262fffcbcd4e7bbab3a9030c12bce7d086d63aaddee0c573c5d38f9ac845b3080aeac38d1b548aa9d243b462c3c682b158a379fe8cc2 SHA512 7864e346cc2bc86d78973db1b341fd8256cc2e1953be51263ef91a5374f9ec00276ba2940850e6d5bba7a57c71190b670dc7ba97021be2935c31f8694fed4897
+EBUILD sauerbraten-2013.02.03.ebuild 3202 BLAKE2B 158a7d5d4a66582b57cbbbc0478154d5488e9f92d29e397093b1fc6ed17c20393014701335db7f9fed9b14d0cc4f4271625e673a63a4cb7ed6531d5b96d23e44 SHA512 f00b9644c6d3cc3867e315a37da362ee23af17ca0e499daffdc16b9aa9ce2a05bbcac77092c39e70567ea4a5a22faa62c25c6afb956e22f14fdbd6df46bda83e
+MISC metadata.xml 401 BLAKE2B 0447e0bdea4cbb8ea99d24ac4f854ff4aefd0e62c4fb1e349485a5ec8429239c95299f5f26736e5458525787d6ef54bda400441ac5b6de920a2ddf949d2cab20 SHA512 1087c8ed886c5066a8bd600cbc9878e6bf21c41f163939daf22c503ce1e9095aff13b8986959aadaaaaf04cd2f314bb664042829deb30196b88a8c2608ce8266
diff --git a/games-fps/sauerbraten/files/sauerbraten-2013.02.03-QA.patch b/games-fps/sauerbraten/files/sauerbraten-2013.02.03-QA.patch
new file mode 100644
index 000000000000..21f1b13c7a2a
--- /dev/null
+++ b/games-fps/sauerbraten/files/sauerbraten-2013.02.03-QA.patch
@@ -0,0 +1,50 @@
+applied on top of sauerbraten-2013.01.04-system-enet.patch
+
+respect LDFLAGS, CXXFLAGS and CPPFLAGS
+--- sauerbraten/src/Makefile
++++ sauerbraten/src/Makefile
+@@ -1,4 +1,4 @@
+-CXXFLAGS= -O3 -fomit-frame-pointer
++CXXFLAGS ?= -O3 -fomit-frame-pointer
+ override CXXFLAGS+= -Wall -fsigned-char -fno-exceptions -fno-rtti
+
+ PLATFORM= $(shell uname -s)
+@@ -139,11 +139,11 @@
+ -$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
+
+ %.h.gch: %.h
+- $(CXX) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $(subst .h.gch,.tmp.h.gch,$@) $(subst .h.gch,.h,$@)
+ $(MV) $(subst .h.gch,.tmp.h.gch,$@) $@
+
+ %-standalone.o: %.cpp
+- $(CXX) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $(subst -standalone.o,.cpp,$@)
+
+ $(CLIENT_OBJS): CXXFLAGS += $(CLIENT_INCLUDES)
+ $(filter shared/%,$(CLIENT_OBJS)): $(filter shared/%,$(CLIENT_PCH))
+@@ -168,19 +168,19 @@
+ install: all
+ else
+ client: $(CLIENT_OBJS)
+- $(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
+
+ server: $(SERVER_OBJS)
+- $(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
+
+ master: $(MASTER_OBJS)
+- $(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
+
+ shared/cube2font.o: shared/cube2font.c
+- $(CXX) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< `freetype-config --cflags`
+
+ cube2font: shared/cube2font.o
+- $(CXX) $(CXXFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o cube2font shared/cube2font.o `freetype-config --libs` -lz
+
+ install: all
+ cp sauer_client ../bin_unix/$(PLATFORM_PREFIX)_client
diff --git a/games-fps/sauerbraten/files/sauerbraten-2013.02.03-system-enet.patch b/games-fps/sauerbraten/files/sauerbraten-2013.02.03-system-enet.patch
new file mode 100644
index 000000000000..e87b280ba0c1
--- /dev/null
+++ b/games-fps/sauerbraten/files/sauerbraten-2013.02.03-system-enet.patch
@@ -0,0 +1,64 @@
+--- sauerbraten/src/Makefile
++++ sauerbraten/src/Makefile
+@@ -4,7 +4,7 @@
+ PLATFORM= $(shell uname -s)
+ PLATFORM_PREFIX= native
+
+-INCLUDES= -Ishared -Iengine -Ifpsgame -Ienet/include
++INCLUDES= -Ishared -Iengine -Ifpsgame
+
+ STRIP=
+ ifeq (,$(findstring -g,$(CXXFLAGS)))
+@@ -36,8 +36,8 @@
+ endif
+ CLIENT_LIBS= -mwindows $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lSDL -lSDL_image -lSDL_mixer -lzlib1 -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 -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
++CLIENT_INCLUDES= $(INCLUDES) `sdl-config --cflags`
++CLIENT_LIBS= -lenet -lX11 `sdl-config --libs` -lSDL_image -lSDL_mixer -lz -lGL
+ endif
+ ifeq ($(PLATFORM),Linux)
+ CLIENT_LIBS+= -lrt
+@@ -106,7 +106,7 @@
+ MASTER_LIBS= $(STD_LIBS) -L$(WINBIN) -L$(WINLIB) -lzlib1 -lenet -lws2_32 -lwinmm
+ else
+ SERVER_INCLUDES= -DSTANDALONE $(INCLUDES)
+-SERVER_LIBS= -Lenet/.libs -lenet -lz
++SERVER_LIBS= -lenet -lz
+ MASTER_LIBS= $(SERVER_LIBS)
+ endif
+ SERVER_OBJS= \
+@@ -135,15 +135,6 @@
+
+ all: client server
+
+-enet/Makefile:
+- cd enet; ./configure --enable-shared=no --enable-static=yes
+-
+-libenet: enet/Makefile
+- $(MAKE) -C enet/ all
+-
+-clean-enet: enet/Makefile
+- $(MAKE) -C enet/ clean
+-
+ clean:
+ -$(RM) $(CLIENT_PCH) $(CLIENT_OBJS) $(SERVER_OBJS) $(MASTER_OBJS) sauer_client sauer_server sauer_master
+
+@@ -176,13 +167,13 @@
+
+ install: all
+ else
+-client: libenet $(CLIENT_OBJS)
++client: $(CLIENT_OBJS)
+ $(CXX) $(CXXFLAGS) -o sauer_client $(CLIENT_OBJS) $(CLIENT_LIBS)
+
+-server: libenet $(SERVER_OBJS)
++server: $(SERVER_OBJS)
+ $(CXX) $(CXXFLAGS) -o sauer_server $(SERVER_OBJS) $(SERVER_LIBS)
+
+-master: libenet $(MASTER_OBJS)
++master: $(MASTER_OBJS)
+ $(CXX) $(CXXFLAGS) -o sauer_master $(MASTER_OBJS) $(MASTER_LIBS)
+
+ shared/cube2font.o: shared/cube2font.c
diff --git a/games-fps/sauerbraten/files/sauerbraten.conf b/games-fps/sauerbraten/files/sauerbraten.conf
new file mode 100644
index 000000000000..8d93bf62b788
--- /dev/null
+++ b/games-fps/sauerbraten/files/sauerbraten.conf
@@ -0,0 +1,28 @@
+# Config file for /etc/init.d/sauerbraten
+
+# Owner of Sauerbraten server processes (must be existing)
+USER="%GAMES_USER_DED%"
+GROUP="%GAMES_GROUP%"
+
+
+# Whether to run the dedicated server
+RUNSERVER="Yes"
+
+# Location of the dedicated server config directory
+SERVERCONFIG="%SYSCONFDIR%"
+
+# Additional command line arguments to the dedicated server
+SERVERARGS=""
+
+
+# Whether to run the master server
+RUNMASTER="No"
+
+# Location of the master server config directory
+MASTERCONFIG="%SYSCONFDIR%"
+
+# What port should the masterserver use
+MASTERPORT="28787"
+
+# What ip should the masterserver bind to
+MASTERIP=""
diff --git a/games-fps/sauerbraten/files/sauerbraten.init b/games-fps/sauerbraten/files/sauerbraten.init
new file mode 100644
index 000000000000..a5a7bb32966d
--- /dev/null
+++ b/games-fps/sauerbraten/files/sauerbraten.init
@@ -0,0 +1,74 @@
+#!/sbin/openrc-run
+
+depend() {
+ use net
+}
+
+start() {
+ [ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_master
+ [ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_server
+ true
+}
+
+start_server() {
+ ebegin "Starting Sauerbraten dedicated server"
+
+ # Make sure necessary parameters are set
+ SERVERCONFIG="${SERVERCONFIG:-%SYSCONFDIR%}"
+
+ if [ ! -d ${SERVERCONFIG} ]; then
+ einfo "No ${SERVERCONFIG} around. Creating new..."
+ mkdir ${SERVERCONFIG}
+ chown ${USER}:${GROUP} ${SERVERCONFIG}
+ fi
+
+ start-stop-daemon \
+ --quiet --start --user ${USER}:${GROUP} --chdir ${SERVERCONFIG} \
+ --make-pidfile --pidfile %GAMES_STATEDIR%/run/sauerbraten/server.pid \
+ --background --exec %LIBEXECDIR%/sauer_server -- ${SERVERARGS}
+ eend $?
+}
+
+start_master() {
+ ebegin "Starting Sauerbraten master server"
+
+ # Make sure necessary parameters are set
+ MASTERCONFIG="${MASTERCONFIG:-%SYSCONFDIR%}"
+ [ -n "${MASTERIP}" ] && MASTERPORT="${MASTERPORT:-28787}"
+ MASTERARGS="${MASTERCONFIG}/ ${MASTERPORT} ${MASTERIP}"
+
+ if [ ! -d ${MASTERCONFIG} ]; then
+ einfo "No ${MASTERCONFIG} around. Creating new..."
+ mkdir ${MASTERCONFIG}
+ chown ${USER}:${GROUP} ${MASTERCONFIG}
+ fi
+
+ start-stop-daemon \
+ --quiet --start --user ${USER}:${GROUP} \
+ --make-pidfile --pidfile %GAMES_STATEDIR%/run/sauerbraten/master.pid \
+ --background --exec %LIBEXECDIR%/sauer_master -- ${MASTERARGS}
+ eend $?
+}
+
+stop() {
+ [ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_server
+ [ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_master
+ true
+}
+
+stop_server() {
+ ebegin "Stopping Sauerbraten dedicated server"
+ start-stop-daemon --stop --retry 3 --pidfile %GAMES_STATEDIR%/run/sauerbraten/server.pid
+ eend $?
+}
+
+stop_master() {
+ ebegin "Stopping Sauerbraten master server"
+ start-stop-daemon --stop --retry 3 --pidfile %GAMES_STATEDIR%/run/sauerbraten/master.pid
+ eend $?
+}
+
+restart() {
+ svc_stop
+ svc_start
+}
diff --git a/games-fps/sauerbraten/metadata.xml b/games-fps/sauerbraten/metadata.xml
new file mode 100644
index 000000000000..ee6f39587e0e
--- /dev/null
+++ b/games-fps/sauerbraten/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="server">Compile server support</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">sauerbraten</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/games-fps/sauerbraten/sauerbraten-2013.02.03.ebuild b/games-fps/sauerbraten/sauerbraten-2013.02.03.ebuild
new file mode 100644
index 000000000000..4bb7c3603b58
--- /dev/null
+++ b/games-fps/sauerbraten/sauerbraten-2013.02.03.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+inherit eutils flag-o-matic gnome2-utils games
+
+EDITION="collect_edition"
+DESCRIPTION="Sauerbraten is a FOSS game engine (Cube 2) with freeware game data (Sauerbraten)"
+HOMEPAGE="http://sauerbraten.org/"
+SRC_URI="mirror://sourceforge/sauerbraten/sauerbraten/2013_02_03/sauerbraten_${PV//./_}_${EDITION}_linux.tar.bz2"
+
+LICENSE="ZLIB freedist"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug dedicated server"
+
+RDEPEND="
+ sys-libs/zlib
+ >=net-libs/enet-1.3.6:1.3
+ !dedicated? (
+ media-libs/libsdl[X,opengl]
+ media-libs/sdl-mixer[vorbis]
+ media-libs/sdl-image[png,jpeg]
+ virtual/opengl
+ virtual/glu
+ x11-libs/libX11 )"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/${PN}
+
+src_prepare() {
+ ecvs_clean
+ rm -rf sauerbraten_unix bin_unix src/{include,lib,vcpp}
+
+ # Patch makefile to use system enet instead of bundled
+ # respect CXXFLAGS, LDFLAGS
+ epatch "${FILESDIR}"/${P}-{system-enet,QA}.patch
+
+ # Fix links so they point to the correct directory
+ sed -i -e 's:docs/::' README.html || die
+}
+
+src_compile() {
+ use debug && append-cppflags -D_DEBUG
+ emake -C src master $(usex dedicated "server" "$(usex server "server client" "client")")
+}
+
+src_install() {
+ local LIBEXECDIR="${GAMES_PREFIX}/lib"
+ local DATADIR="${GAMES_DATADIR}/${PN}"
+ local STATEDIR="${GAMES_STATEDIR}/${PN}"
+
+ if ! use dedicated ; then
+ # Install the game data
+ insinto "${DATADIR}"
+ doins -r data packages
+
+ # Install the client executable
+ exeinto "${LIBEXECDIR}"
+ doexe src/sauer_client
+
+ # Install the client wrapper
+ games_make_wrapper "${PN}-client" "${LIBEXECDIR}/sauer_client -q\$HOME/.${PN} -r" "${DATADIR}"
+
+ # Create menu entry
+ newicon -s 256 data/cube.png ${PN}.png
+ make_desktop_entry "${PN}-client" "Cube 2: Sauerbraten"
+ fi
+
+ # Install the server config files
+ insinto "${STATEDIR}"
+ doins "server-init.cfg"
+
+ # Install the server executables
+ exeinto "${LIBEXECDIR}"
+ doexe src/sauer_master
+ use dedicated || use server && doexe src/sauer_server
+
+ games_make_wrapper "${PN}-server" \
+ "${LIBEXECDIR}/sauer_server -k${DATADIR} -q${STATEDIR}"
+ games_make_wrapper "${PN}-master" \
+ "${LIBEXECDIR}/sauer_master ${STATEDIR}"
+
+ # Install the server init script
+ keepdir "${GAMES_STATEDIR}/run/${PN}"
+ cp "${FILESDIR}"/${PN}.init "${T}" || die
+ sed -i \
+ -e "s:%SYSCONFDIR%:${STATEDIR}:g" \
+ -e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
+ -e "s:%GAMES_STATEDIR%:${GAMES_STATEDIR}:g" \
+ "${T}"/${PN}.init || die
+ newinitd "${T}"/${PN}.init ${PN}
+ cp "${FILESDIR}"/${PN}.conf "${T}" || die
+ sed -i \
+ -e "s:%SYSCONFDIR%:${STATEDIR}:g" \
+ -e "s:%LIBEXECDIR%:${LIBEXECDIR}:g" \
+ -e "s:%GAMES_USER_DED%:${GAMES_USER_DED}:g" \
+ -e "s:%GAMES_GROUP%:${GAMES_GROUP}:g" \
+ "${T}"/${PN}.conf || die
+ newconfd "${T}"/${PN}.conf ${PN}
+
+ dodoc src/*.txt docs/dev/*.txt
+ dohtml -r README.html docs/*
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ gnome2_icon_cache_update
+
+ elog "If you plan to use map editor feature copy all map data from ${DATADIR}"
+ elog "to corresponding folder in your HOME/.${PN}"
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}