summaryrefslogtreecommitdiff
path: root/games-fps/yamagi-quake2
diff options
context:
space:
mode:
Diffstat (limited to 'games-fps/yamagi-quake2')
-rw-r--r--games-fps/yamagi-quake2/Manifest8
-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, 231 insertions, 0 deletions
diff --git a/games-fps/yamagi-quake2/Manifest b/games-fps/yamagi-quake2/Manifest
new file mode 100644
index 000000000000..cebfa7397dbe
--- /dev/null
+++ b/games-fps/yamagi-quake2/Manifest
@@ -0,0 +1,8 @@
+AUX yamagi-quake2-addon-respect-flags.patch 823 BLAKE2B 348115f8a35d61e9dc4a1121bb98cfe1c2d6925fc7fc3bb7965d1f10d8bc4958f222982892216ee312ec245c3e505c9e9b8c20c65539f24145af4355959a4542 SHA512 c570ea602d3d5fedc6defae5c6b8d99f079ea5562b9c864f896a97c01ca504dbbb669e9a43eb5757abca884ad39c7a2f685c3fb915d32bd8dd5ff22f6934a4fd
+AUX yamagi-quake2-respect-flags.patch 1209 BLAKE2B 757b7f1757a752871525ed397f53db8992292dde7a68fb22030ded806e64f4853ac1c2e75304afb2f88f1f2d36edc99758dee4fa6cbfe353fa5004aabb65b982 SHA512 abaa7041640556d1b7272fec820a987e02b4a7d466765a637ddc0ce39c38eafe95e46f91e5bdcf74030df2dff7674e96c8a49ca48b99400f74b85551e0d9a5c3
+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
+EBUILD yamagi-quake2-7.10.ebuild 3007 BLAKE2B 5084aa0d925ad93d3f8e27b27b8548625469ba3dfc611583657150c04541b50d3cc71a2b8f2c7ad6816771ddf0a8ada67285e17d030263178a6216db930b79ef SHA512 ecf02bc816b1913d75a4c8b8c8cd01c042f762c825252d4f797cbbe71152db376524f50a0611844cacee7b10dcc385119b5c31960f39008ec77b1997bf35fb27
+MISC metadata.xml 731 BLAKE2B 42af3854a50b6c7ef6a715af0a6d20c574a9e8ac8011f3ad3cc0d28af9834a32df3ba8b1e546b7017e634e323a4823610d6ffec111b29f4341b2a4f7bb4e7f96 SHA512 faa5df8f6af6efa7e90e17909ae8659d9b9273ad7ff6684845fde8849ad4eee4a933cd04dfd2b5578d661277da331a58076d87a8a4dde45b8f4afa7e408e4095
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
+}