public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-fps/yamagi-quake2/, games-fps/yamagi-quake2/files/
Date: Sun,  4 Mar 2018 11:38:31 +0000 (UTC)	[thread overview]
Message-ID: <1520163500.f405aa6406f2d58f628fcb4cf265fa8e863705e0.mgorny@gentoo> (raw)

commit:     f405aa6406f2d58f628fcb4cf265fa8e863705e0
Author:     Alexander Tsoy <alexander <AT> tsoy <DOT> me>
AuthorDate: Thu Jan 18 23:33:23 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Mar  4 11:38:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f405aa64

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

 games-fps/yamagi-quake2/Manifest                   |   4 +
 .../files/yamagi-quake2-addon-respect-flags.patch  |  30 +++++
 .../files/yamagi-quake2-respect-flags.patch        |  40 +++++++
 games-fps/yamagi-quake2/metadata.xml               |  21 ++++
 games-fps/yamagi-quake2/yamagi-quake2-7.10.ebuild  | 132 +++++++++++++++++++++
 5 files changed, 227 insertions(+)

diff --git a/games-fps/yamagi-quake2/Manifest b/games-fps/yamagi-quake2/Manifest
new file mode 100644
index 00000000000..d608a375340
--- /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 00000000000..d767f04d4b0
--- /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 00000000000..76ac4b60f50
--- /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 00000000000..c573477de06
--- /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 00000000000..09f38aad41c
--- /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
+}


             reply	other threads:[~2018-03-04 11:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-04 11:38 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-04-20  6:52 [gentoo-commits] repo/gentoo:master commit in: games-fps/yamagi-quake2/, games-fps/yamagi-quake2/files/ Michał Górny
2019-04-20  6:52 Michał Górny
2019-06-03 15:54 Stefan Strogin
2020-02-24  5:55 Joonas Niilola
2020-04-17 15:10 Joonas Niilola
2022-04-26  4:13 Sam James

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1520163500.f405aa6406f2d58f628fcb4cf265fa8e863705e0.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox