summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gentoo.org>2011-05-06 22:21:19 +0000
committerMatt Turner <mattst88@gentoo.org>2011-05-06 22:21:19 +0000
commitdc19c2985ba542cb782df96767678cd4e97e88c0 (patch)
tree30559367acd43136d03b1272cef9ab5c88e5f70e /games-fps/quake3
parentVersion bump. (diff)
downloadgentoo-2-dc19c2985ba542cb782df96767678cd4e97e88c0.tar.gz
gentoo-2-dc19c2985ba542cb782df96767678cd4e97e88c0.tar.bz2
gentoo-2-dc19c2985ba542cb782df96767678cd4e97e88c0.zip
rewritten ebuild, fixes bugs 222005 and 250080
(Portage version: 2.1.9.41/cvs/Linux x86_64)
Diffstat (limited to 'games-fps/quake3')
-rw-r--r--games-fps/quake3/ChangeLog9
-rw-r--r--games-fps/quake3/metadata.xml2
-rw-r--r--games-fps/quake3/quake3-1.36.ebuild157
-rw-r--r--games-fps/quake3/quake3-9999.ebuild157
4 files changed, 210 insertions, 115 deletions
diff --git a/games-fps/quake3/ChangeLog b/games-fps/quake3/ChangeLog
index 5af7054c38c4..57db162c9138 100644
--- a/games-fps/quake3/ChangeLog
+++ b/games-fps/quake3/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for games-fps/quake3
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/ChangeLog,v 1.56 2011/01/31 00:30:47 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/ChangeLog,v 1.57 2011/05/06 22:21:19 mattst88 Exp $
+
+ 06 May 2011; Matt Turner <mattst88@gentoo.org> quake3-1.36.ebuild,
+ quake3-9999.ebuild, metadata.xml:
+ Rewritten ebuild from Andrey Vihrov. Adds curl, mumble, opengl, openal,
+ voice, and vorbis USE flags (Bug 222005). Removes bundled openal, curl,
+ speex, sdl, zlib, and jpeg in favor of using system libraries and headers
+ (Bug 250080). Huge thanks to Andrey Vihrov!
31 Jan 2011; Michael Sterrett <mr_bones_@gentoo.org> quake3-1.36.ebuild,
+files/quake3-1.36-bots.patch:
diff --git a/games-fps/quake3/metadata.xml b/games-fps/quake3/metadata.xml
index 1532777984a0..360c025739d2 100644
--- a/games-fps/quake3/metadata.xml
+++ b/games-fps/quake3/metadata.xml
@@ -16,6 +16,8 @@ interested in checking out the technology behind Quake III, then
"emerge quake3-demo" to get the playable demo.
</longdescription>
<use>
+ <flag name="mumble">Adds player-location (positional audio) support to VoIP</flag>
<flag name="teamarena">Adds support for Team Arena expansion pack</flag>
+ <flag name="voice">Adds VoIP support</flag>
</use>
</pkgmetadata>
diff --git a/games-fps/quake3/quake3-1.36.ebuild b/games-fps/quake3/quake3-1.36.ebuild
index 5f6be5b7f168..6906af3be103 100644
--- a/games-fps/quake3/quake3-1.36.ebuild
+++ b/games-fps/quake3/quake3-1.36.ebuild
@@ -1,102 +1,145 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/quake3-1.36.ebuild,v 1.3 2011/01/31 00:30:47 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/quake3-1.36.ebuild,v 1.4 2011/05/06 22:21:19 mattst88 Exp $
# quake3-9999 -> latest svn
# quake3-9999.REV -> use svn REV
# quake3-VER_alphaREV -> svn snapshot REV for version VER
# quake3-VER -> normal quake release
-EAPI=2
-if [[ ${PV} == 9999* ]] ; then
- [[ ${PV} == 9999.* ]] && ESVN_UPDATE_CMD="svn up -r ${PV/9999./}"
- ESVN_REPO_URI="svn://svn.icculus.org/quake3/trunk"
- inherit subversion flag-o-matic toolchain-funcs eutils games
+EAPI="2"
- SRC_URI=""
- KEYWORDS=""
- S=${WORKDIR}/trunk
-else
- inherit flag-o-matic toolchain-funcs eutils games
- SRC_URI="http://ioquake3.org/files/${PV}/ioquake3-${PV}.tar.bz2"
- KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
- S=${WORKDIR}/io${P}
-fi
+inherit eutils flag-o-matic games toolchain-funcs
+[[ "${PV}" == 9999* ]] && inherit subversion
+
+MY_PN="ioquake3"
+MY_PV="${PV}"
+MY_P="${MY_PN}-${MY_PV}"
DESCRIPTION="Quake III Arena - 3rd installment of the classic id 3D first-person shooter"
HOMEPAGE="http://ioquake3.org/"
+[[ "${PV}" != 9999* ]] && SRC_URI="http://ioquake3.org/files/${MY_PV}/${MY_P}.tar.bz2"
+ESVN_REPO_URI="svn://svn.icculus.org/quake3/trunk"
LICENSE="GPL-2"
SLOT="0"
-IUSE="dedicated teamarena"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
+# "smp" is omitted, because currently it does not work.
+IUSE="dedicated opengl teamarena +openal curl vorbis voice mumble"
-DEPEND="!dedicated? (
- virtual/opengl
- media-libs/openal
- media-libs/libsdl[joystick,opengl]
- )"
+UIDEPEND="virtual/opengl
+ media-libs/libsdl[audio,video,joystick,X,opengl]
+ openal? ( media-libs/openal )
+ vorbis? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ voice? ( media-libs/speex )
+ curl? ( net-misc/curl )"
+DEPEND="opengl? ( ${UIDEPEND} )
+ !dedicated? ( ${UIDEPEND} )"
+UIRDEPEND="voice? ( mumble? ( media-sound/mumble ) )"
RDEPEND="${DEPEND}
+ opengl? ( ${UIRDEPEND} )
+ !dedicated? ( ${UIRDEPEND} )
games-fps/quake3-data
teamarena? ( games-fps/quake3-teamarena )"
-src_unpack() {
- if [[ ${PV} == 9999* ]] ; then
- subversion_src_unpack
- else
- unpack ${A}
- fi
+if [[ "${PV}" == 9999* ]] ; then
+ S="${WORKDIR}/trunk"
+else
+ S="${WORKDIR}/${MY_P}"
+fi
+
+my_arch() {
+ case "${ARCH}" in
+ x86) echo "i386" ;;
+ amd64) echo "x86_64" ;;
+ *) tc-arch-kernel ;;
+ esac
+}
+
+my_platform() {
+ case "${ARCH}" in
+ alpha|amd64|ppc|x86) echo "linux" ;;
+ x86-fbsd) echo "freebsd" ;;
+ esac
}
src_prepare() {
- sed -i -e '/INSTALL/s: -s : :' Makefile || die
- if [[ ${PV} != 9999* ]] ; then
+ if [[ "${PV}" == 9999* ]] ; then
+ # Workaround for the version string
+ ln -s "${ESVN_WC_PATH}/.svn" .svn || die "ln ${ESVN_WC_PATH}/.svn"
+ else
epatch "${FILESDIR}"/${P}-bots.patch
fi
+
+ einfo "Fixing libspeex linking..."
+ sed -i -e 's/\(-lspeex\)/\1 -lspeexdsp/' Makefile || die "sed failed"
}
src_compile() {
- filter-flags -mfpmath=sse
+
buildit() { use $1 && echo 1 || echo 0 ; }
+
+ # This is the easiest way to pass CPPFLAGS to the build system, which
+ # are otherwise ignored.
+ append-flags ${CPPFLAGS}
+
+ # OPTIMIZE is disabled in favor of CFLAGS.
+ #
+ # TODO: BUILD_CLIENT_SMP=$(buildit smp)
emake \
- V=1 \
- BUILD_SERVER=1 \
- BUILD_CLIENT=$(( $(buildit !dedicated) )) \
- TEMPDIR="${T}" \
- CC="$(tc-getCC)" \
- ARCH=$(tc-arch-kernel) \
- OPTIMIZE="${CFLAGS}" \
- DEFAULT_BASEDIR="${GAMES_DATADIR}/quake3" \
- DEFAULT_LIBDIR="$(games_get_libdir)/quake3" \
- Q3ASM_CFLAGS="${CFLAGS}" \
- || die
+ ARCH="$(my_arch)" \
+ BUILD_CLIENT=$(( $(buildit opengl) | $(buildit !dedicated) )) \
+ BUILD_GAME_QVM=0 \
+ BUILD_GAME_SO=0 \
+ BUILD_SERVER=$(buildit dedicated) \
+ DEFAULT_BASEDIR="${GAMES_DATADIR}/${PN}" \
+ GENERATE_DEPENDENCIES=0 \
+ OPTIMIZE="" \
+ PLATFORM="$(my_platform)" \
+ USE_CODEC_VORBIS=$(buildit vorbis) \
+ USE_CURL=$(buildit curl) \
+ USE_CURL_DLOPEN=0 \
+ USE_INTERNAL_SPEEX=0 \
+ USE_INTERNAL_ZLIB=0 \
+ USE_LOCAL_HEADERS=0 \
+ USE_MUMBLE=$(buildit mumble) \
+ USE_OPENAL=$(buildit openal) \
+ USE_OPENAL_DLOPEN=0 \
+ USE_VOIP=$(buildit voice) \
+ || die "emake failed"
}
src_install() {
- dodoc id-readme.txt TODO README BUGS ChangeLog
+ dodoc BUGS ChangeLog id-readme.txt md4-readme.txt NOTTODO README TODO || die
+ if use voice ; then
+ dodoc voip-readme.txt || die
+ fi
- if ! use dedicated ; then
- doicon misc/quake3.png
+ if use opengl || ! use dedicated ; then
+ doicon misc/quake3.svg || die
make_desktop_entry quake3 "Quake III Arena"
+ #use smp && make_desktop_entry quake3-smp "Quake III Arena (SMP)"
fi
- cd build/release*
- local old_x x
- for old_x in ioq* ; do
- x=${old_x%.*}
- newgamesbin ${old_x} ${x} || die "newgamesbin ${x}"
- dosym ${x} "${GAMES_BINDIR}"/${x/io}
+ cd build/release-$(my_platform)-$(my_arch) || die
+ local exe target
+ for exe in {ioquake3,ioquake3-smp,ioq3ded}.$(my_arch) ; do
+ if [[ -x ${exe} ]] ; then
+ target=${exe%.*}
+ newgamesbin ${exe} ${target} || die "newgamesbin ${target}"
+ dosym ${target} "${GAMES_BINDIR}/${target/io}" || die "dosym ${target}"
+ fi
done
- exeinto "$(games_get_libdir)"/${PN}/baseq3
- doexe baseq3/*.so || die "baseq3 .so"
- exeinto "$(games_get_libdir)"/${PN}/missionpack
- doexe missionpack/*.so || die "missionpack .so"
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
- ewarn "The source version of Quake 3 will not work with Punk Buster."
- ewarn "If you need pb support, then use the quake3-bin package."
- echo
+
+ ewarn "The source version of Quake III Arena will not work with PunkBuster."
+ ewarn "If you need PB support, then use the games-fps/quake3-bin package."
}
diff --git a/games-fps/quake3/quake3-9999.ebuild b/games-fps/quake3/quake3-9999.ebuild
index d3271ff7ffab..3911284ad4b0 100644
--- a/games-fps/quake3/quake3-9999.ebuild
+++ b/games-fps/quake3/quake3-9999.ebuild
@@ -1,99 +1,142 @@
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/quake3-9999.ebuild,v 1.19 2011/02/09 22:24:16 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/games-fps/quake3/quake3-9999.ebuild,v 1.20 2011/05/06 22:21:19 mattst88 Exp $
# quake3-9999 -> latest svn
# quake3-9999.REV -> use svn REV
# quake3-VER_alphaREV -> svn snapshot REV for version VER
# quake3-VER -> normal quake release
-EAPI=2
-if [[ ${PV} == 9999* ]] ; then
- [[ ${PV} == 9999.* ]] && ESVN_UPDATE_CMD="svn up -r ${PV/9999./}"
- ESVN_REPO_URI="svn://svn.icculus.org/quake3/trunk"
- inherit subversion flag-o-matic toolchain-funcs eutils games
+EAPI="2"
- SRC_URI=""
- KEYWORDS=""
- S=${WORKDIR}/trunk
-else
- inherit flag-o-matic toolchain-funcs eutils games
- SRC_URI="http://ioquake3.org/files/${PV}/ioquake3-${PV}.tar.bz2"
- KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
- S=${WORKDIR}/io${P}
-fi
+inherit eutils flag-o-matic games toolchain-funcs
+[[ "${PV}" == 9999* ]] && inherit subversion
+
+MY_PN="ioquake3"
+MY_PV="${PV}"
+MY_P="${MY_PN}-${MY_PV}"
DESCRIPTION="Quake III Arena - 3rd installment of the classic id 3D first-person shooter"
HOMEPAGE="http://ioquake3.org/"
+[[ "${PV}" != 9999* ]] && SRC_URI="http://ioquake3.org/files/${MY_PV}/${MY_P}.tar.bz2"
+ESVN_REPO_URI="svn://svn.icculus.org/quake3/trunk"
LICENSE="GPL-2"
SLOT="0"
-IUSE="dedicated teamarena"
+KEYWORDS=""
+# "smp" is omitted, because currently it does not work.
+IUSE="dedicated opengl teamarena +openal curl vorbis voice mumble"
-DEPEND="!dedicated? (
- virtual/opengl
- media-libs/openal
- media-libs/libsdl[joystick,opengl]
- )"
+UIDEPEND="virtual/opengl
+ media-libs/libsdl[audio,video,joystick,X,opengl]
+ virtual/jpeg
+ openal? ( media-libs/openal )
+ vorbis? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ voice? ( media-libs/speex )
+ curl? ( net-misc/curl )"
+DEPEND="opengl? ( ${UIDEPEND} )
+ !dedicated? ( ${UIDEPEND} )"
+UIRDEPEND="voice? ( mumble? ( media-sound/mumble ) )"
RDEPEND="${DEPEND}
+ opengl? ( ${UIRDEPEND} )
+ !dedicated? ( ${UIRDEPEND} )
games-fps/quake3-data
teamarena? ( games-fps/quake3-teamarena )"
-src_unpack() {
- if [[ ${PV} == 9999* ]] ; then
- subversion_src_unpack
- else
- unpack ${A}
- fi
+if [[ "${PV}" == 9999* ]] ; then
+ S="${WORKDIR}/trunk"
+else
+ S="${WORKDIR}/${MY_P}"
+fi
+
+my_arch() {
+ case "${ARCH}" in
+ x86) echo "i386" ;;
+ amd64) echo "x86_64" ;;
+ *) tc-arch-kernel ;;
+ esac
+}
+
+my_platform() {
+ case "${ARCH}" in
+ alpha|amd64|ppc|x86) echo "linux" ;;
+ x86-fbsd) echo "freebsd" ;;
+ esac
}
src_prepare() {
- sed -i -e '/INSTALL/s: -s : :' Makefile || die
+ if [[ "${PV}" == 9999* ]] ; then
+ # Workaround for the version string
+ ln -s "${ESVN_WC_PATH}/.svn" .svn || die "ln ${ESVN_WC_PATH}/.svn"
+ fi
}
src_compile() {
- filter-flags -mfpmath=sse
+
buildit() { use $1 && echo 1 || echo 0 ; }
+
+ # This is the easiest way to pass CPPFLAGS to the build system, which
+ # are otherwise ignored.
+ append-flags ${CPPFLAGS}
+
+ # OPTIMIZE is disabled in favor of CFLAGS.
+ #
+ # TODO: BUILD_CLIENT_SMP=$(buildit smp)
emake \
- V=1 \
- BUILD_SERVER=1 \
- BUILD_CLIENT=$(( $(buildit !dedicated) )) \
- TEMPDIR="${T}" \
- CC="$(tc-getCC)" \
- ARCH=$(tc-arch-kernel) \
- OPTIMIZE="${CFLAGS}" \
- DEFAULT_BASEDIR="${GAMES_DATADIR}/quake3" \
- DEFAULT_LIBDIR="$(games_get_libdir)/quake3" \
- Q3ASM_CFLAGS="${CFLAGS}" \
- || die
+ ARCH="$(my_arch)" \
+ BUILD_CLIENT=$(( $(buildit opengl) | $(buildit !dedicated) )) \
+ BUILD_GAME_QVM=0 \
+ BUILD_GAME_SO=0 \
+ BUILD_SERVER=$(buildit dedicated) \
+ DEFAULT_BASEDIR="${GAMES_DATADIR}/${PN}" \
+ FULLBINEXT="" \
+ GENERATE_DEPENDENCIES=0 \
+ OPTIMIZE="" \
+ PLATFORM="$(my_platform)" \
+ USE_CODEC_VORBIS=$(buildit vorbis) \
+ USE_CURL=$(buildit curl) \
+ USE_CURL_DLOPEN=0 \
+ USE_INTERNAL_JPEG=0 \
+ USE_INTERNAL_SPEEX=0 \
+ USE_INTERNAL_ZLIB=0 \
+ USE_LOCAL_HEADERS=0 \
+ USE_MUMBLE=$(buildit mumble) \
+ USE_OPENAL=$(buildit openal) \
+ USE_OPENAL_DLOPEN=0 \
+ USE_VOIP=$(buildit voice) \
+ || die "emake failed"
}
src_install() {
- dodoc id-readme.txt TODO README BUGS ChangeLog
+ dodoc BUGS ChangeLog id-readme.txt md4-readme.txt NOTTODO README TODO || die
+ if use voice ; then
+ dodoc voip-readme.txt || die
+ fi
- if ! use dedicated ; then
- doicon misc/quake3.png
+ if use opengl || ! use dedicated ; then
+ doicon misc/quake3.svg || die
make_desktop_entry quake3 "Quake III Arena"
+ #use smp && make_desktop_entry quake3-smp "Quake III Arena (SMP)"
fi
- cd build/release*
- local old_x x
- for old_x in ioq* ; do
- x=${old_x%.*}
- newgamesbin ${old_x} ${x} || die "newgamesbin ${x}"
- dosym ${x} "${GAMES_BINDIR}"/${x/io}
+ cd build/release-$(my_platform)-$(my_arch) || die
+ local exe
+ for exe in ioquake3 ioquake3-smp ioq3ded ; do
+ if [[ -x ${exe} ]] ; then
+ dogamesbin ${exe} || die "dogamesbin ${exe}"
+ dosym ${exe} "${GAMES_BINDIR}/${exe/io}" || die "dosym ${exe}"
+ fi
done
- exeinto "$(games_get_libdir)"/${PN}/baseq3
- doexe baseq3/*.so || die "baseq3 .so"
- exeinto "$(games_get_libdir)"/${PN}/missionpack
- doexe missionpack/*.so || die "missionpack .so"
prepgamesdirs
}
pkg_postinst() {
games_pkg_postinst
- ewarn "The source version of Quake 3 will not work with Punk Buster."
- ewarn "If you need pb support, then use the quake3-bin package."
- echo
+
+ ewarn "The source version of Quake III Arena will not work with PunkBuster."
+ ewarn "If you need PB support, then use the games-fps/quake3-bin package."
}