summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Tsoy <alexander@tsoy.me>2018-01-19 02:33:23 +0300
committerMichał Górny <mgorny@gentoo.org>2018-03-04 12:38:20 +0100
commitf405aa6406f2d58f628fcb4cf265fa8e863705e0 (patch)
tree8fbe35a33a94b8347485f99efb5ded680f2d8473 /games-fps
parentsys-kernel/gentoo-sources-4.4.111-r1: alpha stable (diff)
downloadgentoo-f405aa6406f2d58f628fcb4cf265fa8e863705e0.tar.gz
gentoo-f405aa6406f2d58f628fcb4cf265fa8e863705e0.tar.bz2
gentoo-f405aa6406f2d58f628fcb4cf265fa8e863705e0.zip
games-fps/yamagi-quake2: new package
This is the Yamagi Quake II Client, an enhanced version of id Software's Quake II with focus on offline and coop gameplay. Both the gameplay and the graphics are unchanged, but many bugs in the last official release were fixed and some nice to have features like widescreen support and a modern OpenGL 3.2 renderer were added. Unlike most other Quake II source ports Yamagi Quake II is fully 64 bit clean and is still actively maintained. Closes: https://bugs.gentoo.org/314751
Diffstat (limited to 'games-fps')
-rw-r--r--games-fps/yamagi-quake2/Manifest4
-rw-r--r--games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags.patch30
-rw-r--r--games-fps/yamagi-quake2/files/yamagi-quake2-respect-flags.patch40
-rw-r--r--games-fps/yamagi-quake2/metadata.xml21
-rw-r--r--games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild132
5 files changed, 227 insertions, 0 deletions
diff --git a/games-fps/yamagi-quake2/Manifest b/games-fps/yamagi-quake2/Manifest
new file mode 100644
index 000000000000..d608a375340c
--- /dev/null
+++ b/games-fps/yamagi-quake2/Manifest
@@ -0,0 +1,4 @@
+DIST quake2-7.10.tar.xz 1792748 BLAKE2B 853d6db1eec46ce40952fd413a259653275081599a940941fc883921b310f436be62b80a1d911a0d8f95a33e540e60bd6db2377370cc443cbaa9c3eec6ae055f SHA512 46247c3e2c8e6dcb056dfc7785dd63bf4f896719894a1c5467f2eb313cc3d8a892fda9bafc2ca760a9ac96f6b8e23485a8740b03e118cf9a524f68657183fbb9
+DIST quake2-ctf-1.05.tar.xz 134872 BLAKE2B eb987004b1c1b1743ec532b6bea96a257957377cbdb0571d6c6e7b2dae6c1b7abc154233d4f9d3af6fb546d7810e5c041b8e9293de2e409a7cace88aa455f526 SHA512 9eb951f4a9d7abc5f9a2ca53d886f68b745c1efdf3fea14db2e071b8d1592d33579c5fa56326aa583269a4810e16a7eda8dcd8930e36782cb4fcb8578c44951b
+DIST quake2-rogue-2.04.tar.xz 240436 BLAKE2B e7c3660378fe40b3f514b6e1de8714e3d3550baa244897b98bb81f362fa2b0aa57e3abceb5a38ea77cfec7621e2fcfab342a45bf9b66ccd0e44cc70292888fc2 SHA512 546deb74175c60ed7e5600a3d4b1c983fc0b1fae5922ebdb8fc3cdc5584931a0a5e34914ec2cd4ef9815323ba82cb56d427986d5c91dc040d6b68baff68ca5a8
+DIST quake2-xatrix-2.05.tar.xz 189888 BLAKE2B 9d884af6033d529ce8cca7a70a36608e45db47dab74ab0d88c04f4d928425cf22901b1299a69330bfa83810034c9f1eff2d9618b222db68564d81d569f0596cd SHA512 f7e14bb870eaf4515405f5f1162057669351a334993410101973b75e52d6d576c35c91112911f961ad122ebe664b294649e94e88a2f62b79f51e28d02f50487a
diff --git a/games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags.patch b/games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags.patch
new file mode 100644
index 000000000000..d767f04d4b09
--- /dev/null
+++ b/games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags.patch
@@ -0,0 +1,30 @@
+--- a/Makefile 2017-05-25 12:45:51.000000000 +0300
++++ b/Makefile 2018-01-14 17:38:34.540167879 +0300
+@@ -64,11 +64,11 @@
+ #
+ # -MMD to generate header dependencies.
+ ifeq ($(OSTYPE), Darwin)
+-CFLAGS := -O2 -fno-strict-aliasing -fomit-frame-pointer \
+- -Wall -pipe -g -fwrapv -arch i386 -arch x86_64
++CFLAGS += -fno-strict-aliasing -fomit-frame-pointer \
++ -Wall -fwrapv -arch i386 -arch x86_64
+ else
+-CFLAGS := -O2 -fno-strict-aliasing -fomit-frame-pointer \
+- -Wall -pipe -g -MMD -fwrapv
++CFLAGS += -fno-strict-aliasing -fomit-frame-pointer \
++ -Wall -MMD -fwrapv
+ endif
+
+ # ----------
+@@ -80,9 +80,9 @@
+
+ # Base LDFLAGS.
+ ifeq ($(OSTYPE), Darwin)
+-LDFLAGS := -shared -arch i386 -arch x86_64
++LDFLAGS += -shared -arch i386 -arch x86_64
+ else
+-LDFLAGS := -shared
++LDFLAGS += -shared
+ endif
+
+ # ----------
diff --git a/games-fps/yamagi-quake2/files/yamagi-quake2-respect-flags.patch b/games-fps/yamagi-quake2/files/yamagi-quake2-respect-flags.patch
new file mode 100644
index 000000000000..76ac4b60f503
--- /dev/null
+++ b/games-fps/yamagi-quake2/files/yamagi-quake2-respect-flags.patch
@@ -0,0 +1,40 @@
+--- a/Makefile 2017-12-08 12:22:59.000000000 +0300
++++ b/Makefile 2018-01-14 15:42:56.804047742 +0300
+@@ -165,12 +165,12 @@
+ # -MMD to generate header dependencies. (They cannot be
+ # generated if building universal binaries on OSX)
+ ifeq ($(YQ2_OSTYPE), Darwin)
+-CFLAGS := -O2 -fno-strict-aliasing -fomit-frame-pointer \
+- -Wall -pipe -g -fwrapv
++CFLAGS += -fno-strict-aliasing -fomit-frame-pointer \
++ -Wall -fwrapv
+ CFLAGS += $(OSX_ARCH)
+ else
+-CFLAGS := -std=gnu99 -O2 -fno-strict-aliasing \
+- -Wall -pipe -g -ggdb -MMD -fwrapv
++CFLAGS += -std=gnu99 -fno-strict-aliasing \
++ -Wall -MMD -fwrapv
+ endif
+
+ # ----------
+@@ -263,15 +263,15 @@
+
+ # Base LDFLAGS.
+ ifeq ($(YQ2_OSTYPE),Linux)
+-LDFLAGS := -L/usr/lib -lm -ldl -rdynamic
++LDFLAGS += -lm -ldl -rdynamic
+ else ifeq ($(YQ2_OSTYPE),FreeBSD)
+-LDFLAGS := -L/usr/local/lib -lm
++LDFLAGS += -lm
+ else ifeq ($(YQ2_OSTYPE),OpenBSD)
+-LDFLAGS := -L/usr/local/lib -lm
++LDFLAGS += -lm
+ else ifeq ($(YQ2_OSTYPE),Windows)
+-LDFLAGS := -L/usr/lib -lws2_32 -lwinmm -static-libgcc
++LDFLAGS += -lws2_32 -lwinmm -static-libgcc
+ else ifeq ($(YQ2_OSTYPE), Darwin)
+-LDFLAGS := $(OSX_ARCH) -lm
++LDFLAGS += $(OSX_ARCH) -lm
+ endif
+
+ CFLAGS += -fvisibility=hidden
diff --git a/games-fps/yamagi-quake2/metadata.xml b/games-fps/yamagi-quake2/metadata.xml
new file mode 100644
index 000000000000..c573477de061
--- /dev/null
+++ b/games-fps/yamagi-quake2/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>alexander@tsoy.me</email>
+ <name>Alexander Tsoy</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">yquake2/yquake2</remote-id>
+ </upstream>
+ <use>
+ <flag name="client">Build client</flag>
+ <flag name="ctf">Build support for the 'Capture The Flag' addon</flag>
+ <flag name="rogue">Build support for the 'Ground Zero' Mission Pack</flag>
+ <flag name="xatrix">Build support for the 'The Reckoning' Mission Pack</flag>
+ </use>
+</pkgmetadata>
diff --git a/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild b/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild
new file mode 100644
index 000000000000..09f38aad41cf
--- /dev/null
+++ b/games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit desktop eutils
+
+CTF_V=1.05
+ROGUE_V=2.04
+XATRIX_V=2.05
+
+DESCRIPTION="Quake 2 engine focused on single player"
+HOMEPAGE="https://www.yamagi.org/quake2/"
+SRC_URI="https://deponie.yamagi.org/quake2/quake2-${PV}.tar.xz
+ ctf? ( https://deponie.yamagi.org/quake2/quake2-ctf-${CTF_V}.tar.xz )
+ rogue? ( https://deponie.yamagi.org/quake2/quake2-rogue-${ROGUE_V}.tar.xz )
+ xatrix? ( https://deponie.yamagi.org/quake2/quake2-xatrix-${XATRIX_V}.tar.xz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+client ctf dedicated ogg openal rogue xatrix"
+REQUIRED_USE="|| ( client dedicated )"
+
+RDEPEND="sys-libs/zlib:0=
+ client? (
+ media-libs/libsdl2[opengl,video]
+ virtual/opengl
+ ogg? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ openal? ( media-libs/openal )
+ !openal? ( media-libs/libsdl2[sound] )
+ )
+"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/quake2-${PV}"
+
+PATCHES=( "${FILESDIR}"/${PN}-respect-flags.patch )
+DOCS=( CHANGELOG CONTRIBUTE README.md )
+
+mymake() {
+ emake \
+ VERBOSE=1 \
+ DLOPEN_OPENAL=no \
+ WITH_CDA=no \
+ WITH_SYSTEMWIDE=yes \
+ WITH_SYSTEMDIR="${EPREFIX}"/usr/share/games/quake2 \
+ WITH_ZIP=yes \
+ WITH_OGG=$(usex ogg) \
+ WITH_OPENAL=$(usex openal) \
+ "$@"
+}
+
+src_prepare() {
+ local addon
+ for addon in ctf rogue xatrix; do
+ use ${addon} || continue
+
+ pushd "${WORKDIR}"/quake2-${addon}-* >/dev/null || die
+ eapply -l -- "${FILESDIR}"/${PN}-addon-respect-flags.patch
+ popd >/dev/null || die
+ done
+
+ default
+}
+
+src_compile() {
+ local targets=( game )
+ use client && targets+=( client ref_gl1 ref_gl3 )
+ use dedicated && targets+=( server )
+
+ mymake config
+ mymake "${targets[@]}"
+
+ local addon
+ for addon in ctf rogue xatrix; do
+ use ${addon} || continue
+ emake -C "${WORKDIR}"/quake2-${addon}-* VERBOSE=1
+ done
+}
+
+src_install() {
+ insinto /usr/lib/yamagi-quake2
+ # Yamagi Quake II expects all binaries to be in the same directory
+ # See stuff/packaging.md for more info
+ exeinto /usr/lib/yamagi-quake2
+ doins -r release/.
+
+ if use client; then
+ doexe release/quake2
+ dosym ../lib/yamagi-quake2/quake2 /usr/bin/yquake2
+
+ newicon stuff/icon/Quake2.svg "yamagi-quake2.svg"
+ make_desktop_entry "yquake2" "Yamagi Quake II"
+ fi
+
+ if use dedicated; then
+ doexe release/q2ded
+ dosym ../lib/yamagi-quake2/q2ded /usr/bin/yq2ded
+ fi
+
+ insinto /usr/lib/yamagi-quake2/baseq2
+ doins stuff/yq2.cfg
+
+ local addon
+ for addon in ctf rogue xatrix; do
+ use ${addon} || continue
+
+ insinto /usr/lib/yamagi-quake2/${addon}
+ doins "${WORKDIR}"/quake2-${addon}-*/release/game.so
+
+ local addon_name
+ case ${addon} in
+ ctf) addon_name="CTF" ;;
+ rogue) addon_name="Ground Zero" ;;
+ xatrix) addon_name="The Reckoning" ;;
+ esac
+
+ make_wrapper "yquake2-${addon}" "yquake2 +set game ${addon}"
+ make_desktop_entry "yquake2-${addon}" "Yamagi Quake II: ${addon_name}"
+ done
+
+ einstalldocs
+ if use client; then
+ docinto examples
+ dodoc stuff/cdripper.sh
+ fi
+}