games-fps/yamagi-quake2: version bump to 7.42
authorAlexander Tsoy <alexander@tsoy.me>
Tue, 24 Dec 2019 11:20:18 +0000 (14:20 +0300)
committerJoonas Niilola <juippis@gentoo.org>
Mon, 24 Feb 2020 05:25:45 +0000 (07:25 +0200)
Closes: https://bugs.gentoo.org/708690
Signed-off-by: Alexander Tsoy <alexander@tsoy.me>
Closes: https://github.com/gentoo/gentoo/pull/14112
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
games-fps/yamagi-quake2/Manifest
games-fps/yamagi-quake2/files/yamagi-quake2-7.42-fno-common.patch [new file with mode: 0644]
games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags-r3.patch [new file with mode: 0644]
games-fps/yamagi-quake2/yamagi-quake2-7.42.ebuild [new file with mode: 0644]

index 048d8efc7a08da992901207ad67e21ebd35268c3..522c98075007643dd7c5fd11644a6930d20760d5 100644 (file)
@@ -1,4 +1,7 @@
 DIST quake2-7.41.tar.xz 1978952 BLAKE2B 9d3626f102b652c443caea294f7f66dc46869612b64d16c5f2e9b7f28a83800a0653450f8fc44ebaa83e01ddfaf2b2cd5dd9c6feb8001b5cabd7df32171e035b SHA512 fd2c991274415eb38cf3deb7562f7c51c7f8e935cf7215eba7e8ae088f25cddf95e86221fcbbb5fcc8bd97e264b147951bf5f4aecb8ee54973d46af7ef39d3af
+DIST quake2-7.42.tar.xz 1987332 BLAKE2B 63ced75746eb031faf949c6b094ec607076f481b8d97eca242f9bf6fd6325afc8dfb5f98fe4f8ba5c5e87b721392f613031fc204b775634fc5292a26fef1d76c SHA512 0f51204fcf14ecb3f1f654e6ee19207836cf4642022569ef202bc12f312f76dbd43695aa4d9f9fb70c8b023f42d1a8fcec25f472a32175ebb0a308211fa40cc0
 DIST quake2-ctf-1.06.tar.xz 135464 BLAKE2B 457ab883ba9ecfb723d890f5c9e3da710aae4ed5fa4e530c8028b0fa93186350e6ed1b483b89ddf98cbb3f3b1992a15c33af5d181073395b61e5b9a7c9987d88 SHA512 24c58f895d4056127e6f714c618d53b80bd75968758d8aa729deba750297efd5d6c40bd69afd98ebbf0d231bd59909e6438ec64b258883d8cfd33d33e928b2f9
 DIST quake2-rogue-2.05.tar.xz 241120 BLAKE2B 58be655bfcba9c6ee66616dbedaf01c4329d656c205ad99910dccb095981a8f29b09d557e76f9e43df21f36eebeb5ad0c0f2788d2bee2bc1cfe68dda824df5d1 SHA512 521860cc3c46e8679f0dee2b9bc6c3a643439f560ad2437e2961e746285a95fa118201d516eefefdd8b5fe7da8ec5ea0c9fae8910751256a0d986300497631ff
+DIST quake2-rogue-2.06.tar.xz 243872 BLAKE2B fa289bb9ecd988dd77dd4d581212fc1c2f964371109123ed77ea0a740b65bc117d787c144d9f246d091df3ff19f1c9f5ed42571cd2d450061de63f032cc3c1d6 SHA512 4f8646f6b6cc2b522291e89f63a6d0273353e27bcafed6fcd5c2e509e938ab76504bfe9e92d398c8cee708af64ffbb7d81e98ea0df1e13ba593db4dff8ddfcf6
 DIST quake2-xatrix-2.06.tar.xz 190560 BLAKE2B 945e80159cd7630280290f6930e1343fdf9dccdbd44d14cd5b36eccae9499d2cd6eddb1a3967721b61349fa60e48c720e4db66fdc1d8930628864c7fe2cd4ada SHA512 98557ed3fc4fddcd36d47dab207b8101b82f40bd976b11195b229a1073ec04216c06dc119269f287fbd9da0418671521ab6393008f2486ab113940d5fec6bfdc
+DIST quake2-xatrix-2.07.tar.xz 192404 BLAKE2B 54772f1158af82211a5c925676e1399bd9debfa8f336a566dd7c22c6f50eb488030c871a7952b9eb00a7a8498560aed332dfd388074bb5a733ed5e979d59d9dc SHA512 72400afa98faf38559dfbc6dcfd01a16902adc782065bc1bbae4d773b5c139543d79f465195db72f0dbaf33999c667c65fd3582a8029db5b50ea5295d278b2a7
diff --git a/games-fps/yamagi-quake2/files/yamagi-quake2-7.42-fno-common.patch b/games-fps/yamagi-quake2/files/yamagi-quake2-7.42-fno-common.patch
new file mode 100644 (file)
index 0000000..6dc8794
--- /dev/null
@@ -0,0 +1,92 @@
+From 60a4bd330689b2378e49f2335209bd64a653fab2 Mon Sep 17 00:00:00 2001
+From: Alexander Tsoy <alexander@tsoy.me>
+Date: Mon, 10 Feb 2020 16:09:09 +0300
+Subject: [PATCH] Fix build with -fno-common
+
+GCC 10 defaults to -fno-common.
+
+Closes #516
+---
+ src/client/cl_main.c       | 18 ------------------
+ src/client/header/client.h |  1 +
+ src/client/input/sdl.c     |  2 --
+ 3 files changed, 1 insertion(+), 20 deletions(-)
+
+diff --git a/src/client/cl_main.c b/src/client/cl_main.c
+index 135407d1..7fc1e6df 100644
+--- a/src/client/cl_main.c
++++ b/src/client/cl_main.c
+@@ -35,8 +35,6 @@ void CL_Connect_f(void);
+ void CL_Rcon_f(void);
+ void CL_CheckForResend(void);
+-cvar_t *freelook;
+-
+ cvar_t *rcon_client_password;
+ cvar_t *rcon_address;
+@@ -58,14 +56,6 @@ cvar_t *cl_showclamp;
+ cvar_t *cl_paused;
+ cvar_t *cl_loadpaused;
+-cvar_t *lookstrafe;
+-cvar_t *sensitivity;
+-
+-cvar_t *m_pitch;
+-cvar_t *m_yaw;
+-cvar_t *m_forward;
+-cvar_t *m_side;
+-
+ cvar_t *cl_lightlevel;
+ /* userinfo */
+@@ -516,14 +506,6 @@ CL_InitLocal(void)
+       cl_anglespeedkey = Cvar_Get("cl_anglespeedkey", "1.5", 0);
+       cl_run = Cvar_Get("cl_run", "0", CVAR_ARCHIVE);
+-      freelook = Cvar_Get("freelook", "1", CVAR_ARCHIVE);
+-      lookstrafe = Cvar_Get("lookstrafe", "0", CVAR_ARCHIVE);
+-      sensitivity = Cvar_Get("sensitivity", "3", CVAR_ARCHIVE);
+-
+-      m_pitch = Cvar_Get("m_pitch", "0.022", CVAR_ARCHIVE);
+-      m_yaw = Cvar_Get("m_yaw", "0.022", 0);
+-      m_forward = Cvar_Get("m_forward", "1", 0);
+-      m_side = Cvar_Get("m_side", "1", 0);
+       cl_shownet = Cvar_Get("cl_shownet", "0", 0);
+       cl_showmiss = Cvar_Get("cl_showmiss", "0", 0);
+diff --git a/src/client/header/client.h b/src/client/header/client.h
+index 1a31a1ca..b42abc02 100644
+--- a/src/client/header/client.h
++++ b/src/client/header/client.h
+@@ -302,6 +302,7 @@ extern     cvar_t  *cl_timedemo;
+ extern        cvar_t  *cl_vwep;
+ extern        cvar_t  *horplus;
+ extern        cvar_t  *cin_force43;
++extern        cvar_t  *vid_fullscreen;
+ typedef struct
+ {
+diff --git a/src/client/input/sdl.c b/src/client/input/sdl.c
+index 3c7356fa..c8055f3b 100644
+--- a/src/client/input/sdl.c
++++ b/src/client/input/sdl.c
+@@ -62,7 +62,6 @@ int sys_frame_time;
+ qboolean joy_altselector_pressed = false;
+ // Console Variables
+-cvar_t *vid_fullscreen;
+ cvar_t *freelook;
+ cvar_t *lookstrafe;
+ cvar_t *m_forward;
+@@ -1246,7 +1245,6 @@ IN_Init(void)
+       joy_axis_triggerleft_threshold = Cvar_Get("joy_axis_triggerleft_threshold", "0.15", CVAR_ARCHIVE);
+       joy_axis_triggerright_threshold = Cvar_Get("joy_axis_triggerright_threshold", "0.15", CVAR_ARCHIVE);
+-      vid_fullscreen = Cvar_Get("vid_fullscreen", "0", CVAR_ARCHIVE);
+       windowed_mouse = Cvar_Get("windowed_mouse", "1", CVAR_USERINFO | CVAR_ARCHIVE);
+       Cmd_AddCommand("+mlook", IN_MLookDown);
+-- 
+2.24.1
+
diff --git a/games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags-r3.patch b/games-fps/yamagi-quake2/files/yamagi-quake2-addon-respect-flags-r3.patch
new file mode 100644 (file)
index 0000000..c7cf611
--- /dev/null
@@ -0,0 +1,33 @@
+--- quake2-xatrix-2.06.orig/Makefile   2019-02-05 10:56:06.000000000 +0300
++++ quake2-xatrix-2.06/Makefile        2019-04-08 01:24:04.124176498 +0300
+@@ -75,11 +75,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 := -std=gnu99 -O2 -fno-strict-aliasing -fomit-frame-pointer \
+-                -Wall -pipe -g -MMD -fwrapv
++CFLAGS += -std=gnu99 -fno-strict-aliasing -fomit-frame-pointer \
++                -Wall -MMD -fwrapv
+ endif
+ # ----------
+@@ -107,11 +107,11 @@
+ # Base LDFLAGS.
+ ifeq ($(OSTYPE), Darwin)
+-LDFLAGS := -shared -arch i386 -arch x86_64
++LDFLAGS += -shared -arch i386 -arch x86_64
+ else ifeq ($(OSTYPE), Windows)
+-LDFLAGS := -shared -static-libgcc
++LDFLAGS += -shared -static-libgcc
+ else
+-LDFLAGS := -shared -lm
++LDFLAGS += -shared -lm
+ endif
+ # ----------
diff --git a/games-fps/yamagi-quake2/yamagi-quake2-7.42.ebuild b/games-fps/yamagi-quake2/yamagi-quake2-7.42.ebuild
new file mode 100644 (file)
index 0000000..052af91
--- /dev/null
@@ -0,0 +1,155 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop eutils
+
+CTF_V="1.06"
+ROGUE_V="2.06"
+XATRIX_V="2.07"
+
+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 openal +opengl rogue softrender xatrix"
+REQUIRED_USE="
+       || ( client dedicated )
+       client? ( || ( opengl softrender ) )
+"
+
+COMMON_DEPEND="
+       client? (
+               media-libs/libsdl2[video]
+               !openal? ( media-libs/libsdl2[sound] )
+               opengl? (
+                       media-libs/libsdl2[opengl]
+                       virtual/opengl
+               )
+       )
+"
+RDEPEND="${COMMON_DEPEND}
+       client? ( openal? ( media-libs/openal ) )
+"
+DEPEND="${COMMON_DEPEND}"
+
+S="${WORKDIR}/quake2-${PV}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-respect-flags.patch
+       "${FILESDIR}"/${PN}-7.42-fno-common.patch
+)
+DOCS=( CHANGELOG README.md doc/. )
+
+mymake() {
+       emake \
+               VERBOSE=1 \
+               WITH_SYSTEMWIDE=yes \
+               WITH_SYSTEMDIR="${EPREFIX}"/usr/share/games/quake2 \
+               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
+               if [[ ${addon} = ctf ]]; then
+                       eapply -l -- "${FILESDIR}"/${PN}-addon-respect-flags-r2.patch
+               else
+                       eapply -l -- "${FILESDIR}"/${PN}-addon-respect-flags-r3.patch
+               fi
+               popd >/dev/null || die
+       done
+
+       default
+}
+
+src_compile() {
+       local targets=( game )
+       if use client; then
+               targets+=( client )
+               use opengl && targets+=( ref_gl1 ref_gl3 )
+               use softrender && targets+=( ref_soft )
+       fi
+       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
+
+               if use client; then
+                       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}"
+               fi
+       done
+
+       einstalldocs
+       if use client; then
+               docinto examples
+               dodoc stuff/cdripper.sh
+       fi
+}
+
+pkg_postinst() {
+       if [[ -z ${REPLACING_VERSIONS} ]]; then
+               elog
+               elog "In order to play, you must at least install:"
+               elog "games-fps/quake2-data or games-fps/quake2-demodata or copy game"
+               elog "data files to ~/.yq2/ or ${EPREFIX}/usr/share/games/quake2/ manually."
+               elog "Read ${EPREFIX}/usr/share/doc/${PF}/README.md* for more information."
+               elog
+       fi
+}