diff options
Diffstat (limited to 'games-fps/sauerbraten')
-rw-r--r-- | games-fps/sauerbraten/Manifest | 9 | ||||
-rw-r--r-- | games-fps/sauerbraten/files/sauerbraten-2013.02.03-QA.patch | 50 | ||||
-rw-r--r-- | games-fps/sauerbraten/files/sauerbraten-2013.02.03-system-enet.patch | 64 | ||||
-rw-r--r-- | games-fps/sauerbraten/files/sauerbraten.conf | 28 | ||||
-rw-r--r-- | games-fps/sauerbraten/files/sauerbraten.init | 74 | ||||
-rw-r--r-- | games-fps/sauerbraten/metadata.xml | 14 | ||||
-rw-r--r-- | games-fps/sauerbraten/sauerbraten-2013.02.03.ebuild | 123 |
7 files changed, 362 insertions, 0 deletions
diff --git a/games-fps/sauerbraten/Manifest b/games-fps/sauerbraten/Manifest new file mode 100644 index 000000000000..2c474609adfc --- /dev/null +++ b/games-fps/sauerbraten/Manifest @@ -0,0 +1,9 @@ +AUX sauerbraten-2013.02.03-QA.patch 2037 SHA256 baddf2bb64ad33df6ad11bbdfaf7d7c918a4f6c26f62bd641d43633051be83c4 SHA512 1725945f0373f03e5ae81b8e9eee4e2a9260d9362ad424e4198bb71af2e69055439268197f784d2acbd9e17ff977e8b1a7f5193d378a036488ff758d0ead4b5a WHIRLPOOL 312c17a2fa83a8fa73cdba080c8d74291f5572098ab05ee29e5238b672ad2e7540949e4f0a78e557ae96c9062e584e313dfb82d8e1b9d5aa72d6a207db0b316f +AUX sauerbraten-2013.02.03-system-enet.patch 1880 SHA256 3dddd4fca0c0176121b72d180f9046a28a026a68666a228503b1a4cebb44f597 SHA512 b53e7db4e6b7ce012ee292a24cbf6e84e1c6bce01cde1a41985d0b471a68c1d2978f8272bc359a81beb317b5ab2ff88a13a1e73aaeb7f5c643e778ffe9861c7a WHIRLPOOL 38d88521ab507735d744b4f186a495fd25b73cbbd24d8b0b0adaca4219cabf56342e25bc12e55c782e6a86c418bcf54cf3802752a41009ff2dd641dc8b123067 +AUX sauerbraten.conf 605 SHA256 6e0694718370b126034bc569229d91b63cbfbd87f86af0a03d20e08833069811 SHA512 685b7358ad7267b1b19ac00f879a82205f346b32fda8cb460c4f8c50e9f20263c102b0fca62ab437dabe67ebbdd281f130f28f3b8ef2bcf064ae45fbd23cce67 WHIRLPOOL c1f4de209300898333856a027e5587a2b1d5f978b653f8085b47b40f72ef533462e5810d79757675742998206c9db445ca94d904aea3563807d3300b872a47b1 +AUX sauerbraten.init 1951 SHA256 7dca7e0580c19180d6d6ef9e3f86aa991ac29da28e16412b866da74d2bf26dda SHA512 9a96557cb2822f30693900b1dc9ecad9f1eab9e8a3d75432667bfba784ee86754649cf08ccab5f9cbff6be7ab584f3325b9c40c947005cdee425716a888d5c40 WHIRLPOOL 0e55a53a41db5e3bdfba9b2f779950d15f0dc58576ca1cc3061243773b5a5f3eefdf3c25982c72a0b23f4c38871cfbaa31ceb63f3a2c02c234bad414ab9e701c +DIST sauerbraten_2013_02_03_collect_edition_linux.tar.bz2 589941180 SHA256 45c20521e3e56374490b2d9112a211538e801cf0161197f35476b30b7b58a78e SHA512 7864e346cc2bc86d78973db1b341fd8256cc2e1953be51263ef91a5374f9ec00276ba2940850e6d5bba7a57c71190b670dc7ba97021be2935c31f8694fed4897 WHIRLPOOL 47a21e233dc90b5284027dbe47d13e891a434e0e550c6102a456e6300e6d5f9daba23c27fc100428161641ba276fa13faac12b935ac590a108c516b9b7987f4e +EBUILD sauerbraten-2013.02.03.ebuild 3216 SHA256 95ccb8dc7801bedcce3f7f38bc30d33625025a84c7c8b28db47156dfe1820464 SHA512 76c29d5964008d484bdd95d0ac491cca082eab0b20efa4bf16321db39eb29b3e96ffc648538d5ae2fe578a51ca712932caff391c9c2c7209d7438a10a62279af WHIRLPOOL a0b53781127f74739883faad347f5aac131cad90def53900f24cac3dad60c81180438bd85261cd0c76fb4172c968f80a84c036f31fd20c59bf88b0b7539c044d +MISC ChangeLog 4033 SHA256 a4f4cad0ef43d79487afa1861cf46e3bdeeb9761f98009b3b9dc69bd90f0fbd1 SHA512 f67b1bb752aab87c2849e70d1089ddc711f43ca00359be9c61237235c61e7e2560ff291b4fd894c628ff02b5fe4e6af4cad76f1e434cfd07bb44a0d8d035458b WHIRLPOOL 1493ee19bd32f5772370609915549fa680e4be8b8aa8d7547afbaef3b4aff23c324968f3680589cd16187ea84481cb4939ae5c4ee06ea0e866bc3d3bb3af9d18 +MISC ChangeLog-2015 3701 SHA256 fb5f3f405ccc81fb6293c4c761fc2e63415563cb341f598faa0e45e9eefb090b SHA512 8e8bae3bde223491da99f6992903ca0a74879adadb9f0cd1caf7f90464ce7ab622785848fee5c832e8b8b50da142b6cebd03df6b65b1b0ef2a0462782ee109e6 WHIRLPOOL 357d0d5b4821d9e014253918a997f18124a67f7cf67abd740c8926895553f609956d13c93f1499b7b3739e3d028040695047e965f0c26912b492d59b31ef6e10 +MISC metadata.xml 401 SHA256 eab42e84d9b6ed8e8af05cf41638db192c0a0d7d0c08133173883bdb49f0e3cb SHA512 1087c8ed886c5066a8bd600cbc9878e6bf21c41f163939daf22c503ce1e9095aff13b8986959aadaaaaf04cd2f314bb664042829deb30196b88a8c2608ce8266 WHIRLPOOL ab1e976065985111279db54e01a3e0629644c41b394dd21db496abc8b01b772af0c1c524f963ab0a765b847f9d06a6498ef3f65c57aebeb750c5c71effdb39ab 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..2954fb16c859 --- /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="Cube 2: Sauerbraten is an open source 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 +} |