summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Ospald <hasufell@gentoo.org>2013-07-17 15:08:40 +0000
committerJulian Ospald <hasufell@gentoo.org>2013-07-17 15:08:40 +0000
commit521d743f7c8fbe2e57e52f873ec08aeabe94c5d7 (patch)
tree3289b76110fdc848ce7cc281e2274d742fead290 /games-fps
parentVersion bump. (diff)
downloadgentoo-2-521d743f7c8fbe2e57e52f873ec08aeabe94c5d7.tar.gz
gentoo-2-521d743f7c8fbe2e57e52f873ec08aeabe94c5d7.tar.bz2
gentoo-2-521d743f7c8fbe2e57e52f873ec08aeabe94c5d7.zip
version bump wrt #465432
(Portage version: 2.2.0_alpha188/cvs/Linux x86_64, signed Manifest commit with key E73C35B3)
Diffstat (limited to 'games-fps')
-rw-r--r--games-fps/doomsday/ChangeLog8
-rw-r--r--games-fps/doomsday/doomsday-1.10.2.ebuild171
-rw-r--r--games-fps/doomsday/files/doomsday-1.10.2-openal-link.patch158
-rw-r--r--games-fps/doomsday/metadata.xml6
4 files changed, 340 insertions, 3 deletions
diff --git a/games-fps/doomsday/ChangeLog b/games-fps/doomsday/ChangeLog
index 82b487543060..89d54d6b5126 100644
--- a/games-fps/doomsday/ChangeLog
+++ b/games-fps/doomsday/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for games-fps/doomsday
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-fps/doomsday/ChangeLog,v 1.51 2013/03/02 21:15:56 hwoarang Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-fps/doomsday/ChangeLog,v 1.52 2013/07/17 15:08:40 hasufell Exp $
+
+*doomsday-1.10.2 (17 Jul 2013)
+
+ 17 Jul 2013; Julian Ospald <hasufell@gentoo.org> +doomsday-1.10.2.ebuild,
+ +files/doomsday-1.10.2-openal-link.patch:
+ version bump wrt #465432
02 Mar 2013; Markos Chandras <hwoarang@gentoo.org> doomsday-1.9.8-r1.ebuild,
doomsday-1.9.8.ebuild:
diff --git a/games-fps/doomsday/doomsday-1.10.2.ebuild b/games-fps/doomsday/doomsday-1.10.2.ebuild
new file mode 100644
index 000000000000..704593984cdb
--- /dev/null
+++ b/games-fps/doomsday/doomsday-1.10.2.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/games-fps/doomsday/doomsday-1.10.2.ebuild,v 1.1 2013/07/17 15:08:40 hasufell Exp $
+
+# TODO: fmod support broken (deng_fmod)
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_5 python2_6 python2_7 )
+inherit python-r1 confutils eutils qt4-r2 games
+
+DESCRIPTION="A modern gaming engine for Doom, Heretic, and Hexen"
+HOMEPAGE="http://www.dengine.net/"
+SRC_URI="mirror://sourceforge/deng/Doomsday%20Engine/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="dedicated fluidsynth openal snowberry +doom demo freedoom heretic hexen resources tools"
+REQUIRED_USE="snowberry? ( ${PYTHON_REQUIRED_USE} !dedicated )
+ demo? ( doom ) freedoom? ( doom ) resources? ( doom )
+ doom? ( !dedicated )"
+
+DEPEND="
+ dev-qt/qtcore:4
+ dev-qt/qtopengl:4
+ dev-qt/qtgui:4
+ net-misc/curl
+ sys-libs/zlib
+ !dedicated? (
+ media-libs/libsdl[joystick,audio]
+ media-libs/sdl-mixer
+ media-libs/libpng:0
+ virtual/opengl
+ virtual/glu
+ x11-libs/libX11
+ x11-libs/libXrandr
+ x11-libs/libXxf86vm
+ )
+ fluidsynth? ( media-sound/fluidsynth )
+ openal? ( media-libs/openal )
+ snowberry? ( ${PYTHON_DEPS} )
+ tools? ( sys-libs/ncurses )"
+RDEPEND="${DEPEND}
+ snowberry? ( dev-python/wxpython )"
+PDEPEND="
+ demo? ( games-fps/doom-data )
+ freedoom? ( games-fps/freedoom )
+ resources? ( games-fps/doomsday-resources )"
+
+S=${S}/${PN}
+
+pkg_setup() {
+ games_pkg_setup
+ python_export_best
+}
+
+src_prepare() {
+ sed -i \
+ -e '/readme.path/s#$$PREFIX#/usr#' \
+ client/client.pro || die "fixing docdir failed!"
+
+ sed -i \
+ -e "/^DENG_BASE_DIR =/s:\$\$PREFIX/share:${GAMES_DATADIR}:" \
+ config_unix.pri || die
+ echo "CONFIG += nostrip" > config_user.pri
+ echo "PREFIX=/usr/games" >> config_user.pri
+ use snowberry &&
+ echo "CONFIG += deng_snowberry" >> config_user.pri || \
+ echo "CONFIG += deng_nosnowberry" >> config_user.pri
+
+ use fluidsynth &&
+ echo "CONFIG += deng_fluidsynth" >> config_user.pri
+
+ use tools ||
+ echo "CONFIG += deng_notools" >> config_user.pri
+
+ use dedicated &&
+ echo "CONFIG += deng_noclient" >> config_user.pri
+
+ if use openal; then
+ echo "CONFIG += deng_openal" >> config_user.pri
+ sed -i \
+ -e 's:\# Generic Unix.:LIBS += -lopenal:' \
+ dep_openal.pri || die
+ epatch "${FILESDIR}"/${P}-openal-link.patch
+ fi
+
+ qt4-r2_src_prepare
+}
+
+#Usage: doom_make_wrapper <name> <game> <icon> <desktop entry title> [args]
+doom_make_wrapper() {
+ local name=$1 game=$2 icon=$3 de_title=$4
+ shift 4
+ games_make_wrapper $name \
+ "doomsday -game ${game} $@"
+ make_desktop_entry $name "${de_title}" ${icon}
+}
+
+src_configure() {
+ qt4-r2_src_configure
+}
+
+src_install() {
+ qt4-r2_src_install
+
+ dodoc "${WORKDIR}"/${P}/README.md
+
+ mv "${D}/${GAMES_DATADIR}"/{${PN}/data/jdoom,doom-data} || die
+ dosym "${GAMES_DATADIR}"/doom-data "${GAMES_DATADIR}"/${PN}/data/jdoom
+
+ if use snowberry; then
+ python_replicate_script "${D}"/"${GAMES_BINDIR}"/launch-doomsday
+
+ installmodules() {
+ # relocate snowberry module directory recursively into site-packages
+ python_domodule "${D}/${GAMES_DATADIR}"/${PN}/snowberry
+ # hack around improper path handling
+ sed -i \
+ -e "s:os.chdir.*$:os.chdir('$(python_get_sitedir)/snowberry'):" \
+ "${D}"/"${GAMES_BINDIR}"/launch-doomsday-${EPYTHON} || die
+ }
+ python_foreach_impl installmodules
+ # remove old module dir
+ rm -r "${D}/${GAMES_DATADIR}"/${PN}/snowberry || die
+
+ make_desktop_entry launch-doomsday "Snowberry DoomsDay" snowberry
+ doicon ../snowberry/graphics/snowberry.png
+ fi
+
+ if use doom; then
+ local res_arg
+ if use resources; then
+ res_arg="-def \"${GAMES_DATADIR}\"/${PN}/defs/jdoom/jDRP.ded"
+ fi
+
+ doicon ../snowberry/graphics/orb-doom.png
+ doom_make_wrapper jdoom doom1 orb-doom "DoomsDay Engine: Doom 1" "${res_arg}"
+ elog "Created jdoom launcher. To play Doom place your doom.wad to"
+ elog "\"${GAMES_DATADIR}\"/doom-data"
+ elog
+
+ if use demo; then
+ doom_make_wrapper jdoom-demo doom1-share orb-doom "DoomsDay Engine: Doom 1 Demo" \
+ "-iwad \"${GAMES_DATADIR}\"/doom-data/doom1.wad ${res_arg}"
+ fi
+ if use freedoom; then
+ doom_make_wrapper jdoom-freedoom doom1-share orb-doom "DoomsDay Engine: FreeDoom" \
+ "-iwad \"${GAMES_DATADIR}\"/doom-data/freedoom/doom1.wad"
+ fi
+ fi
+ if use hexen; then
+ doicon ../snowberry/graphics/orb-hexen.png
+ doom_make_wrapper jhexen hexen orb-hexen "DoomsDay Engine: Hexen"
+
+ elog "Created jhexen launcher. To play Hexen place your hexen.wad to"
+ elog "\"${GAMES_DATADIR}\"/${PN}/data/jhexen"
+ elog
+ fi
+ if use heretic; then
+ doicon ../snowberry/graphics/orb-heretic.png
+ doom_make_wrapper jheretic heretic orb-heretic "DoomsDay Engine: Heretic"
+
+ elog "Created jheretic launcher. To play Heretic place your heretic.wad to"
+ elog "\"${GAMES_DATADIR}\"/${PN}/data/jheretic"
+ elog
+ fi
+
+ prepgamesdirs
+}
diff --git a/games-fps/doomsday/files/doomsday-1.10.2-openal-link.patch b/games-fps/doomsday/files/doomsday-1.10.2-openal-link.patch
new file mode 100644
index 000000000000..c59c48ac7aef
--- /dev/null
+++ b/games-fps/doomsday/files/doomsday-1.10.2-openal-link.patch
@@ -0,0 +1,158 @@
+--- doomsday/plugins/openal/src/driver_openal.cpp 2012-05-15 06:01:38.000000000 +0200
++++ doomsday/plugins/openal/src/driver_openal.cpp 2012-05-29 07:37:21.170639342 +0200
+@@ -66,6 +66,7 @@ ALenum(*EAXGet) (const struct _GUID* pro
+ ALenum(*EAXSet) (const struct _GUID* propertySetID, ALuint prop, ALuint source, ALvoid* value, ALuint size);
+ #endif
+
++extern "C" {
+ int DS_Init(void);
+ void DS_Shutdown(void);
+ void DS_Event(int type);
+@@ -83,6 +84,7 @@ void DS_SFX_Setv(sfxbuffer_t* buf, int p
+ void DS_SFX_Listener(int prop, float value);
+ void DS_SFX_Listenerv(int prop, float* values);
+ int DS_SFX_Getv(int prop, void* values);
++}
+
+ #ifdef WIN32
+ // EAX 2.0 GUIDs
+@@ -134,14 +136,14 @@ static void loadExtensions(void)
+ #endif
+ }
+
+-int DS_Init(void)
++extern "C" int DS_Init(void)
+ {
+ // Already initialized?
+ if(initOk) return true;
+
+ // Open a playback device.
+ /// @todo Shouldn't we use the system default device?
+- device = alcOpenDevice((ALCchar*) "DirectSound3D");
++ device = alcOpenDevice((ALCchar*) NULL);
+ if(!device)
+ {
+ Con_Message("OpenAL init failed (device: DirectSound3D).\n");
+@@ -167,7 +169,7 @@ int DS_Init(void)
+ return true;
+ }
+
+-void DS_Shutdown(void)
++extern "C" void DS_Shutdown(void)
+ {
+ if(!initOk) return;
+
+@@ -185,12 +187,12 @@ void DS_Event(int /*type*/)
+ // Not supported.
+ }
+
+-int DS_SFX_Init(void)
++extern "C" int DS_SFX_Init(void)
+ {
+ return true;
+ }
+
+-sfxbuffer_t* DS_SFX_CreateBuffer(int flags, int bits, int rate)
++extern "C" sfxbuffer_t* DS_SFX_CreateBuffer(int flags, int bits, int rate)
+ {
+ sfxbuffer_t* buf;
+ ALuint bufName, srcName;
+@@ -236,7 +238,7 @@ sfxbuffer_t* DS_SFX_CreateBuffer(int fla
+ return buf;
+ }
+
+-void DS_SFX_DestroyBuffer(sfxbuffer_t* buf)
++extern "C" void DS_SFX_DestroyBuffer(sfxbuffer_t* buf)
+ {
+ ALuint srcName, bufName;
+
+@@ -251,7 +253,7 @@ void DS_SFX_DestroyBuffer(sfxbuffer_t* b
+ Z_Free(buf);
+ }
+
+-void DS_SFX_Load(sfxbuffer_t* buf, struct sfxsample_s* sample)
++extern "C" void DS_SFX_Load(sfxbuffer_t* buf, struct sfxsample_s* sample)
+ {
+ if(!buf || !sample) return;
+
+@@ -277,7 +279,7 @@ void DS_SFX_Load(sfxbuffer_t* buf, struc
+ /**
+ * Stops the buffer and makes it forget about its sample.
+ */
+-void DS_SFX_Reset(sfxbuffer_t* buf)
++extern "C" void DS_SFX_Reset(sfxbuffer_t* buf)
+ {
+ if(!buf) return;
+
+@@ -285,7 +287,7 @@ void DS_SFX_Reset(sfxbuffer_t* buf)
+ buf->sample = NULL;
+ }
+
+-void DS_SFX_Play(sfxbuffer_t* buf)
++extern "C" void DS_SFX_Play(sfxbuffer_t* buf)
+ {
+ ALuint source;
+
+@@ -310,7 +312,7 @@ void DS_SFX_Play(sfxbuffer_t* buf)
+ buf->flags |= SFXBF_PLAYING;
+ }
+
+-void DS_SFX_Stop(sfxbuffer_t* buf)
++extern "C" void DS_SFX_Stop(sfxbuffer_t* buf)
+ {
+ if(!buf || !buf->sample) return;
+
+@@ -318,7 +320,7 @@ void DS_SFX_Stop(sfxbuffer_t* buf)
+ buf->flags &= ~SFXBF_PLAYING;
+ }
+
+-void DS_SFX_Refresh(sfxbuffer_t* buf)
++extern "C" void DS_SFX_Refresh(sfxbuffer_t* buf)
+ {
+ ALint state;
+
+@@ -368,7 +370,7 @@ static void setPan(ALuint source, float
+ alSourcefv(source, AL_POSITION, pos);
+ }
+
+-void DS_SFX_Set(sfxbuffer_t* buf, int prop, float value)
++extern "C" void DS_SFX_Set(sfxbuffer_t* buf, int prop, float value)
+ {
+ ALuint source;
+
+@@ -411,7 +413,7 @@ void DS_SFX_Set(sfxbuffer_t* buf, int pr
+ }
+ }
+
+-void DS_SFX_Setv(sfxbuffer_t* buf, int prop, float* values)
++extern "C" void DS_SFX_Setv(sfxbuffer_t* buf, int prop, float* values)
+ {
+ ALuint source;
+
+@@ -435,7 +437,7 @@ void DS_SFX_Setv(sfxbuffer_t* buf, int p
+ }
+ }
+
+-void DS_SFX_Listener(int prop, float value)
++extern "C" void DS_SFX_Listener(int prop, float value)
+ {
+ switch(prop)
+ {
+@@ -451,7 +453,7 @@ void DS_SFX_Listener(int prop, float val
+ }
+ }
+
+-void DS_SFX_Listenerv(int prop, float* values)
++extern "C" void DS_SFX_Listenerv(int prop, float* values)
+ {
+ float ori[6];
+
+@@ -489,7 +491,7 @@ void DS_SFX_Listenerv(int prop, float* v
+ }
+ }
+
+-int DS_SFX_Getv(int /*prop*/, void* /*values*/)
++extern "C" int DS_SFX_Getv(int /*prop*/, void* /*values*/)
+ {
+ // Stub.
+ return 0;
diff --git a/games-fps/doomsday/metadata.xml b/games-fps/doomsday/metadata.xml
index 1bb8e628bcb1..1a220b18ce09 100644
--- a/games-fps/doomsday/metadata.xml
+++ b/games-fps/doomsday/metadata.xml
@@ -3,12 +3,14 @@
<pkgmetadata>
<herd>games</herd>
<use>
- <flag name="snowberry">Install Snowberry doomsday front-end</flag>
- <flag name="doom">Install launcher for jdoom game</flag>
<flag name="demo">Install launcher dor doom1.wad from <pkg>games-fps/doom-data</pkg></flag>
+ <flag name="doom">Install launcher for jdoom game</flag>
+ <flag name="fluidsynth">Build the FluidSynth sound driver</flag>
<flag name="freedoom">Install launcher for doom1.wad from <pkg>games-fps/freefoom</pkg></flag>
<flag name="heretic">Install launcher for jheretic game</flag>
<flag name="hexen">Install launcher for jhexen game</flag>
<flag name="resources">Enable support for <pkg>games-fps/doomsday-resources</pkg> in jdoom launcher</flag>
+ <flag name="snowberry">Install Snowberry doomsday front-end</flag>
+ <flag name="tools">Build additional tools such as doomsday-shell, md2tool and texc</flag>
</use>
</pkgmetadata>