Initial commit.
authorMounir Lamouri <volkmar@gentoo.org>
Thu, 25 Mar 2010 17:58:18 +0000 (17:58 +0000)
committerMounir Lamouri <volkmar@gentoo.org>
Thu, 25 Mar 2010 17:58:18 +0000 (17:58 +0000)
Fix bug 206287.
Package-Manager: portage-15511-svn/cvs/Linux i686

games-arcade/teeworlds/ChangeLog [new file with mode: 0644]
games-arcade/teeworlds/Manifest [new file with mode: 0644]
games-arcade/teeworlds/files/teeworlds-0.5.2-system-libs.patch [new file with mode: 0644]
games-arcade/teeworlds/files/teeworlds-0.5.2-wavpack.patch [new file with mode: 0644]
games-arcade/teeworlds/files/teeworlds.xpm [new file with mode: 0644]
games-arcade/teeworlds/metadata.xml [new file with mode: 0644]
games-arcade/teeworlds/teeworlds-0.5.2.ebuild [new file with mode: 0644]

diff --git a/games-arcade/teeworlds/ChangeLog b/games-arcade/teeworlds/ChangeLog
new file mode 100644 (file)
index 0000000..4057619
--- /dev/null
@@ -0,0 +1,11 @@
+# ChangeLog for games-arcade/teeworlds
+# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/games-arcade/teeworlds/ChangeLog,v 1.1 2010/03/25 17:58:18 volkmar Exp $
+
+*teeworlds-0.5.2 (25 Mar 2010)
+
+  25 Mar 2010; Mounir Lamouri <volkmar@gentoo.org> +teeworlds-0.5.2.ebuild,
+  +files/teeworlds-0.5.2-system-libs.patch,
+  +files/teeworlds-0.5.2-wavpack.patch, +files/teeworlds.xpm, +metadata.xml:
+  Initial commit. Fix bug 206287
+
diff --git a/games-arcade/teeworlds/Manifest b/games-arcade/teeworlds/Manifest
new file mode 100644 (file)
index 0000000..87f5c7a
--- /dev/null
@@ -0,0 +1,7 @@
+AUX teeworlds-0.5.2-system-libs.patch 1861 RMD160 8d60b4506440fad9907501a340e016e7f68f4385 SHA1 e8113d7f30a7e0866b6e87934f63a2e1bb2dbff7 SHA256 a748535f57b62d056c302c290dd47e29cc7a2e4d5bc345527c5ce70b97ce607b
+AUX teeworlds-0.5.2-wavpack.patch 1181 RMD160 3770042ef2670c1453e5096f64d4acfa7e0b66b1 SHA1 f4f140aff81ee6ac9709a6ff5aa42a2af55f786c SHA256 343e77a8c22315a2c7303dfa29181966bd17316d8ee5e5cad9d08c258a76ff37
+AUX teeworlds.xpm 2785 RMD160 f45531cd48dc897b02c73fee5870f703877620da SHA1 1a00d39a748ea006f71f4b7c0ed73015e34a18a0 SHA256 0b31cc3e65ca26676324a7b66de29cb91df90221e28f9e4b5adfec0e37729284
+DIST teeworlds-0.5.2-src.tar.gz 6393472 RMD160 12b3384b3059d5ec0ebb437686f613f8d9430e61 SHA1 26d8059b1ad81ca6959b96fd3ff881f9db7550ef SHA256 1811a71bf9a1470c7a69308035744492f3e850aefdd12f1bc223fb85d98cf4c0
+EBUILD teeworlds-0.5.2.ebuild 2450 RMD160 9e918761b24275b98605f5b3f8089ff18574eab9 SHA1 711e715f308200f31296d82dea1ec01152525eb9 SHA256 ce99ed43df28fa3af02a29ea1075f3fb50c156c00f66d8ede2bfeb111202e001
+MISC ChangeLog 481 RMD160 21feb20224c93eef2cdb200f227095474844ec39 SHA1 7e62ef11b8b0d33dabf85d4f1779e119b6da9264 SHA256 58eb51ef9d858e78e53e2d8f34260ec83475195dc1d3190bb912874c8780a666
+MISC metadata.xml 328 RMD160 407d842ca99912275e7cc3aed2f6a2a307b8d0c3 SHA1 4a5afab24063a9ee2e86e7c97c5b546009a95daa SHA256 c1e6f853966bca5440f8f5e887bcf4129b2f271829248cb74cbb52bba44abb7b
diff --git a/games-arcade/teeworlds/files/teeworlds-0.5.2-system-libs.patch b/games-arcade/teeworlds/files/teeworlds-0.5.2-system-libs.patch
new file mode 100644 (file)
index 0000000..2ffb3d5
--- /dev/null
@@ -0,0 +1,53 @@
+--- default.bam.orig   2010-03-24 22:16:59.000000000 +0100
++++ default.bam        2010-03-24 22:17:32.000000000 +0100
+@@ -7,6 +7,8 @@
+ config:Add(OptFindCompiler())
+ config:Add(OptTestCompileC("stackprotector", "int main(){return 0;}", "-fstack-protector -fstack-protector-all"))
+ config:Add(OptFindLibrary("zlib", "zlib.h", false))
++config:Add(OptFindLibrary("pnglite", "pnglite.h", false))
++config:Add(OptFindLibrary("wavpack", "wavpack/wavpack.h", false))
+ config:Add(SDL.OptFind("sdl", true))
+ config:Finalize("config.bam")
+ 
+@@ -150,9 +152,6 @@
+               settings.cc.includes:Add("src/engine/external/zlib")
+       end
+ 
+-      -- build the small libraries
+-      wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c"))
+-      pnglite = Compile(settings, Collect("src/engine/external/pnglite/*.c"))
+       
+       -- build game components
+       engine_settings = settings:Copy()
+@@ -160,6 +159,31 @@
+       client_settings = engine_settings:Copy()
+       launcher_settings = engine_settings:Copy()
+ 
++      -- compile pnglite if needed
++      if config.pnglite.value == 1 then
++              client_settings.link.libs:Add("pnglite")
++              if config.pnglite.include_path then
++                      client_settings.cc.includes:Add(config.pnglite.include_path)
++              end
++              pnglite = {}
++      else
++          pnglite = Compile(settings, Collect("src/engine/external/pnglite/*.c"))
++              client_settings.cc.includes:Add("src/engine/external/pnglite")
++      end
++
++      -- compile wavpack if needed
++      if config.wavpack.value == 1 then
++              client_settings.link.libs:Add("wavpack")
++              if config.wavpack.include_path then
++                      client_settings.cc.includes:Add(config.wavpack.include_path)
++              end
++              wavpack = {}
++      else
++          wavpack = Compile(settings, Collect("src/engine/external/wavpack/*.c"))
++              client_settings.cc.includes:Add("src/engine/external")
++      end
++
++
+       if family == "unix" then
+               if platform == "macosx" then
+                       client_settings.link.frameworks:Add("OpenGL")
diff --git a/games-arcade/teeworlds/files/teeworlds-0.5.2-wavpack.patch b/games-arcade/teeworlds/files/teeworlds-0.5.2-wavpack.patch
new file mode 100644 (file)
index 0000000..4cb1e5b
--- /dev/null
@@ -0,0 +1,49 @@
+diff --git a/src/engine/client/ec_snd.c b/src/engine/client/ec_snd.c
+index 034dfb2..67e819c 100644
+--- a/src/engine/client/ec_snd.c
++++ b/src/engine/client/ec_snd.c
+@@ -359,13 +359,6 @@ static void rate_convert(int sid)
+ }
+ 
+ 
+-static IOHANDLE file = NULL;
+-
+-static int read_data(void *buffer, int size)
+-{
+-      return io_read(file, buffer, size);
+-}
+-
+ int snd_load_wv(const char *filename)
+ {
+       SAMPLE *snd;
+@@ -381,19 +374,12 @@ int snd_load_wv(const char *filename)
+       if(!sound_enabled)
+               return 1;
+ 
+-      file = engine_openfile(filename, IOFLAG_READ); /* TODO: use system.h stuff for this */
+-      if(!file)
+-      {
+-              dbg_msg("sound/wv", "failed to open %s", filename);
+-              return -1;
+-      }
+-
+       sid = snd_alloc_id();
+       if(sid < 0)
+               return -1;
+       snd = &samples[sid];
+ 
+-      context = WavpackOpenFileInput(read_data, error);
++      context = WavpackOpenFileInput(filename, error, OPEN_2CH_MAX, 0);
+       if (context)
+       {
+               int samples = WavpackGetNumSamples(context);
+@@ -448,9 +434,6 @@ int snd_load_wv(const char *filename)
+               dbg_msg("sound/wv", "failed to open %s: %s", filename, error);
+       }
+ 
+-      io_close(file);
+-      file = NULL;
+-
+       if(config.debug)
+               dbg_msg("sound/wv", "loaded %s", filename);
+ 
diff --git a/games-arcade/teeworlds/files/teeworlds.xpm b/games-arcade/teeworlds/files/teeworlds.xpm
new file mode 100644 (file)
index 0000000..76e3016
--- /dev/null
@@ -0,0 +1,66 @@
+/* XPM */
+static char *teeworlds__[] = {
+/* columns rows colors chars-per-pixel */
+"48 48 12 1",
+"  c #000000",
+". c #800000",
+"X c #FF0000",
+"o c #008000",
+"O c #808000",
+"+ c #FFFF00",
+"@ c #000080",
+"# c #800080",
+"$ c #008080",
+"% c #808080",
+"& c #C0C0C0",
+"* c None",
+/* pixels */
+"*********************%%.%%%*********************",
+"*****************%            %*****************",
+"***************     .%O%OOO.     ***************",
+"*************   ..%+&++++++++&O   @*************",
+"***********%   O&&++++++++++++++%   ************",
+"**********O  .+&&+++++++++++++++++O  %**********",
+"*********@  O&&&+++++++++++++++++++%  %*********",
+"********  .O&+++++++++++++++++++++++%  %********",
+"*******%  O+&++++++++++++++++++++++++%  ********",
+"*******  O+&&+++++++++++++++++++++++++%  *******",
+"******  O+X&+++++++++++++++++++++++++++O .******",
+"*****% .OX++++++++++++++++++++++++++++++  ******",
+"*****  .++++++++++++   +++++O@ ++++++++++  *****",
+"****%  ++X+++++++++     +++O  . +++++++++  *****",
+"****  O+X++++++++++     +++     +++++++++O %****",
+"****  X++X+++++++++     +++     ++++++++++  ****",
+"****  ++X+&++++++++     +++     ++++++++++  ****",
+"***% .+X+O+++++++++     +++     ++++++++++O ****",
+"***% O++X+&++++++++     +++     ++++++++++% %***",
+"***  O+X+++++++++++     +++O    ++++++++++O %***",
+"***  OX+X+X+++++++++   +++++   +++++++++++& .***",
+"***  ++++X+&++++++++++++++++++++++++++++++O $***",
+"***  OX+X++%++++++++++++++++++++++++++++++% .***",
+"***  O+O++X+++++++++++++++++++++++++++++++% %***",
+"***  O+X+X+++++++++++++++++++++++++++++++&O %***",
+"***% .+O++X+X+++++++++++++++++++++++++++++  ****",
+"****  +X+X+++%+++++++++++++++++++++++++++&  ****",
+"****  O++O+OX+&++++++++++++++++++++++++++%  ****",
+"****% .+X+X++++&+++++++++++++++++++++++++. %****",
+"*****  O+O+X+OX+&+++++++++++++++++++++++%  *****",
+"*****  O+X++X+++++++++++++++++++++++++++@ %*****",
+"******  OO+X++X+X++++++++++++++++++++++%  ******",
+"******%  ++O+X++O+++++++++++++++++++++&  %******",
+"*******  .O o   .O.O+&+++++++++++++++&. %*******",
+"******%    O.OOO#o.  OO+&+++++++++++&.  ********",
+"*****%  .O+X&X+X+X%+.  OX++&+&+&X+X+     *******",
+"*****  .%OX+O+%O+&+X&+O oO+X+X++++O .OO   ******",
+"****% .OO+%+&X+&+X+%+X&X .+O++X+O. #%+X+.  *****",
+"****  O+X+X+X+%+X&++%+O+% O+X+OO .O+X+&OO. *****",
+"****  OX+%+O%+%+%+&X+&X+XO OO  .O%+%+%X+%O $****",
+"****  +OOX+X+X+X+X+%+X+%+.  ..O%X+X+X+%+X% .****",
+"****  OX+%+%+%+%+%+%+%+X+. O+%+O+%+%+%+X+O  ****",
+"****  OOX+X+X+X+OX+X+X+OO.OX+X+XOX+X+X+OO  %****",
+"****%  OOOOOOO+XO+OOOOO.  OOOOOO+OOOOOO.   %****",
+"*****                                     %*****",
+"*******                                .%*******",
+"***********%%%%%%%%%%%**%%%%%%%%%%%%************",
+"************************************************"
+};
diff --git a/games-arcade/teeworlds/metadata.xml b/games-arcade/teeworlds/metadata.xml
new file mode 100644 (file)
index 0000000..52f6d5e
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <herd>games</herd>
+       <maintainer>
+               <email>volkmar@gentoo.org</email>
+               <name>Mounir Lamouri</name>
+       </maintainer>
+       <use>
+               <flag name="server">Enable compilation of server</flag>
+       </use>
+</pkgmetadata>
+
diff --git a/games-arcade/teeworlds/teeworlds-0.5.2.ebuild b/games-arcade/teeworlds/teeworlds-0.5.2.ebuild
new file mode 100644 (file)
index 0000000..3812451
--- /dev/null
@@ -0,0 +1,108 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-arcade/teeworlds/teeworlds-0.5.2.ebuild,v 1.1 2010/03/25 17:58:18 volkmar Exp $
+
+EAPI=2
+
+inherit eutils python games
+
+DESCRIPTION="Online multi-player platform 2D shooter"
+HOMEPAGE="http://www.teeworlds.com/"
+SRC_URI="http://www.teeworlds.com/files/${P}-src.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE="debug dedicated server"
+
+RDEPEND="
+       !dedicated? ( media-libs/pnglite
+               media-libs/libsdl[X,audio,opengl,video]
+               media-sound/wavpack
+               virtual/opengl
+               x11-libs/libX11 )
+       sys-libs/zlib"
+DEPEND="${RDEPEND}
+       =dev-lang/python-2*
+       <=dev-util/bam-0.2.0"
+
+S=${WORKDIR}/${P}-src
+
+pkg_setup() {
+       python_set_active_version 2
+       games_pkg_setup
+}
+
+src_prepare() {
+       epatch \
+               "${FILESDIR}"/${P}-system-libs.patch \
+               "${FILESDIR}"/${P}-wavpack.patch
+
+       # fix includes
+       sed -i -e "s:.engine/external/pnglite/pnglite.h.:<pnglite.h>:" \
+               src/engine/client/ec_gfx.c src/tools/dilate.c \
+               src/tools/tileset_borderfix.c \
+               || die "sed failed"
+       sed -i -e "s:.engine/external/wavpack/wavpack.h.:<wavpack/wavpack.h>:" \
+               src/engine/client/ec_snd.c || die "sed failed"
+
+       # use ${GAMES_DATADIR} instead of ./data
+       sed -i -e \
+               "s:^\(#define DATA_DIR\) \"data\":\1 \"${GAMES_DATADIR}/${PN}\":" \
+               src/engine/e_engine.c || die "sed failed"
+}
+
+src_configure() {
+       bam config || die "bam config failed"
+}
+
+src_compile() {
+       local myopt
+
+       if use dedicated || use server; then
+               if use debug; then
+                       myopt=" server_debug"
+               else
+                       myopt=" server_release"
+               fi
+       fi
+       if ! use dedicated; then
+               if use debug; then
+                       myopt+=" client_debug"
+               else
+                       myopt+=" client_release"
+               fi
+       fi
+
+       bam ${myopt} || die "bam failed"
+}
+
+src_install() {
+       if use dedicated || use server; then
+               if use debug; then
+                       newgamesbin ${PN}_srv_d ${PN}_srv || die "newgamesbin failed"
+               else
+                       dogamesbin ${PN}_srv || die "dogamesbin failed"
+               fi
+       fi
+       if ! use dedicated; then
+               if use debug; then
+                       newgamesbin ${PN}_d ${PN} || die "newgamesbin failed"
+               else
+                       dogamesbin ${PN} || die "dogamesbin failed"
+               fi
+
+               doicon "${FILESDIR}"/${PN}.xpm || die "doicon failed"
+               make_desktop_entry ${PN} Teeworlds
+
+               insinto "${GAMES_DATADIR}"/${PN}
+               doins -r data/* || die "doins failed"
+       else
+               insinto "${GAMES_DATADIR}"/${PN}/maps
+               doins -r data/maps/* || die "doins failed"
+       fi
+
+       dodoc readme.txt || die "dodoc failed"
+
+       prepgamesdirs
+}