commit:     77a0ad0a6acd1254c52da3127c2bd34dd718decd
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 22 20:09:17 2021 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Jul 23 00:47:27 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77a0ad0a

games-fps/quakeforge: add 0.7.2_p20210722

Still rather experimental but fixes a few issues kindly fixed
by upstream after reports.

ebuild changes due to upstream fixes:
* add vulkan support (experimental but it now builds and mostly works)
* drop -Wl,-z,noexecstack
* drop custom-cflags, flags stripping, and -Os workaround
* drop png-stub patch
* drop jack workaround
others:
* EAPI-8
* drop IUSE=ipv6
* add missing einstalldocs

Thanks to David Turner for getting -mno-avx2 fixed upstream (#797610)

Closes: https://bugs.gentoo.org/797610
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 games-fps/quakeforge/Manifest                      |   1 +
 .../quakeforge-0.7.2_p20210722-skipped-tests.patch |  16 ++
 games-fps/quakeforge/metadata.xml                  |   1 +
 .../quakeforge/quakeforge-0.7.2_p20210722.ebuild   | 163 +++++++++++++++++++++
 4 files changed, 181 insertions(+)

diff --git a/games-fps/quakeforge/Manifest b/games-fps/quakeforge/Manifest
index 63eb7a3b41d..c2890dce25b 100644
--- a/games-fps/quakeforge/Manifest
+++ b/games-fps/quakeforge/Manifest
@@ -1 +1,2 @@
 DIST quakeforge-0.7.2_p20210601.tar.gz 3140318 BLAKE2B 
4359c2e92a52bc314bca82dcf6f90aebe2fb7260e9c2e1444d3ca239c53adf1ca912093c5c0ccacb4cf9375e199c244f1b8787196c2f8f3bbc7eb00962b0d8da
 SHA512 
a27e4317b3c01f129f1f32209c02b86abf7148c3e0b2e39306324d6b4758d9165883c169ebfde03fc7350b499088cd685991483911b5ae57ccb9b80baaefa733
+DIST quakeforge-0.7.2_p20210722.tar.gz 3157720 BLAKE2B 
9757ed10a5f78d9b5f09029c149c3fc121daf4bef2cc5a1687d00d2d85c36065663407318478c801a4ae62dee03713e35009c91f590d1686678756da1aab7824
 SHA512 
1c3778ff73cffbb5cadc33e0b544935f822a0f983ed67945dbbd7f6624752b68e3da46f1836f38f22cbae9a9ac191eeacc256ca5da540c5448dfc1fb56b68aa4

diff --git 
a/games-fps/quakeforge/files/quakeforge-0.7.2_p20210722-skipped-tests.patch 
b/games-fps/quakeforge/files/quakeforge-0.7.2_p20210722-skipped-tests.patch
new file mode 100644
index 00000000000..df312bab762
--- /dev/null
+++ b/games-fps/quakeforge/files/quakeforge-0.7.2_p20210722-skipped-tests.patch
@@ -0,0 +1,16 @@
+These are only failing at high precision and
+should not affect normal usage.
+  quat/simd: may fail with -mavx
+      sebvf: random failure, usually pass, likely hardware related
+--- a/libs/util/test/Makemodule.am
++++ b/libs/util/test/Makemodule.am
+@@ -15,8 +15,5 @@
+       libs/util/test/test-qfs \
+-      libs/util/test/test-quat \
+       libs/util/test/test-seb \
+-      libs/util/test/test-sebvf \
+       libs/util/test/test-seg \
+-      libs/util/test/test-set \
+-      libs/util/test/test-simd
++      libs/util/test/test-set
+ 

diff --git a/games-fps/quakeforge/metadata.xml 
b/games-fps/quakeforge/metadata.xml
index 4cd16f1f610..c0d9251c355 100644
--- a/games-fps/quakeforge/metadata.xml
+++ b/games-fps/quakeforge/metadata.xml
@@ -31,6 +31,7 @@
        </longdescription>
        <use>
                <flag name="client">Build Normal and QuakeWorld clients 
alongside the servers</flag>
+               <flag name="vulkan">Enable vulkan renderer (experimental)</flag>
                <flag name="wildmidi">Use <pkg>media-sound/wildmidi</pkg> for 
midi support</flag>
        </use>
        <upstream>

diff --git a/games-fps/quakeforge/quakeforge-0.7.2_p20210722.ebuild 
b/games-fps/quakeforge/quakeforge-0.7.2_p20210722.ebuild
new file mode 100644
index 00000000000..1a58d8f8615
--- /dev/null
+++ b/games-fps/quakeforge/quakeforge-0.7.2_p20210722.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools readme.gentoo-r1 toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/quakeforge/quakeforge.git";
+else
+       MY_COMMIT="e799a7ae45b0ab2ad7b642953277db8ccf256cf8"
+       
SRC_URI="https://github.com/quakeforge/quakeforge/archive/${MY_COMMIT}.tar.gz 
-> ${P}.tar.gz"
+       S="${WORKDIR}/${PN}-${MY_COMMIT}"
+       KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="3D engine based on id Software's Quake and QuakeWorld game 
engines"
+HOMEPAGE="http://www.quakeforge.net/";
+
+LICENSE="GPL-2+"
+SLOT="0"
+IUSE="alsa +client debug doc flac jack ncurses oss png sdl vorbis vulkan 
wildmidi zlib"
+
+RDEPEND="
+       client? (
+               media-libs/libsamplerate
+               net-misc/curl
+               virtual/opengl
+               x11-libs/libX11
+               x11-libs/libXext
+               x11-libs/libXxf86vm
+               alsa? ( media-libs/alsa-lib )
+               flac? ( media-libs/flac )
+               jack? ( virtual/jack )
+               sdl? ( media-libs/libsdl[sound] )
+               vorbis? ( media-libs/libvorbis )
+               vulkan? ( media-libs/vulkan-loader )
+               wildmidi? ( media-sound/wildmidi )
+       )
+       ncurses? ( sys-libs/ncurses:= )
+       png? ( media-libs/libpng:= )
+       zlib? ( sys-libs/zlib:= )"
+DEPEND="
+       ${RDEPEND}
+       client? (
+               x11-base/xorg-proto
+               vulkan? ( dev-util/vulkan-headers )
+       )"
+BDEPEND="
+       sys-devel/bison
+       sys-devel/flex
+       virtual/pkgconfig
+       doc? (
+               app-doc/doxygen[dot]
+               media-gfx/transfig
+       )"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-skipped-tests.patch
+)
+
+src_prepare() {
+       default
+
+       echo ${PV} > .tarball-version || die
+       eautoreconf
+}
+
+src_configure() {
+       qf_client() {
+               echo $(usex client $(use_enable ${1}) --disable-${1})
+       }
+
+       local econfargs=(
+               $(qf_client alsa)
+               $(qf_client flac)
+               $(qf_client jack)
+               $(qf_client oss)
+               $(qf_client sdl)
+               $(qf_client vorbis)
+               $(qf_client vulkan)
+               $(qf_client wildmidi)
+               $(use_enable client sound)
+               $(use_enable client vidmode)
+               $(use_enable debug)
+               $(use_enable ncurses curses)
+               $(use_enable png)
+               $(use_enable zlib)
+               $(use_with client x)
+               --disable-Werror
+               --disable-dga
+               --enable-xdg
+               # non-x11 clients are mostly abandoned/broken (SDL1 still 
useful for pulseaudio)
+               --with-clients=$(usev client x11)
+               --with-cpp="$(tc-getCPP) -x c %u %d %s -o %o %i" # see 
config.d/qfcc.m4
+               --with-global-cfg="${EPREFIX}"/etc/quakeforge.conf
+               --with-sharepath="${EPREFIX}"/usr/share/quake1
+       )
+
+       econf "${econfargs[@]}"
+}
+
+src_compile() {
+       default
+
+       use doc && emake doc
+}
+
+src_install() {
+       use doc && local HTML_DOCS=( doxygen/html/. )
+
+       emake -j1 DESTDIR="${D}" install
+       einstalldocs
+
+       find "${ED}" -name '*.la' -delete || die
+
+       local DISABLE_AUTOFORMATTING="yes"
+       local DOC_CONTENTS=\
+"Before you can play (using nq-x11 or qw-client-x11), you must ensure
+that ${PN} can find your Quake pak0.pak (and optionally pak1.pak)
+at one of these locations with lowercase filenames:
+       - '~/.local/share/${PN}/id1/pak0.pak'
+       - '${EPREFIX}/usr/share/quake1/id1/pak0.pak'
+
+You can add them yourself or use either of:
+       - games-fps/quake1-data: install from a Quake CD-ROM
+       - games-fps/quake1-demodata: pak0.pak only (limited demo)
+
+Key binds notes:
+       Defaults ('imt_mod' table) expect you to set key binds manually in:
+       - '~/.local/share/${PN}/id1/autoexec.cfg' (or 
'${EPREFIX}/usr/share/quake1/id1')
+       For the in-game bind menu to be usable ('imt_0' table), bring up the
+       console with backtick \`, and run 'imt imt_0' (only needed once).
+       A mouse-grab bind ('toggle in_grab') and using freelook is recommended.
+
+Audio/Video notes:
+       Can add settings in:
+       - '~/.config/${PN}/${PN}.conf' (or '${EPREFIX}/etc/${PN}.conf')
+       Examples:
+       - set vid_width 800
+       - set vid_height 600
+       - set snd_output sdl (or alsa, jack, oss -- sdl can do pulseaudio)
+       - setrom vid_render gl (or vulkan, sw for software rendering)"
+       readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+       readme.gentoo_print_elog
+
+       if [[ ${REPLACING_VERSIONS} ]] && ver_test ${REPLACING_VERSIONS} -le 
0.7.2-r1; then
+               elog "Migration may be needed for ${PN}'s home paths, now 
using:"
+               elog "    ~/.${PN}rc -> ~/.config/${PN}/${PN}.conf"
+               elog "    ~/.${PN}/  -> ~/.local/share/${PN}/"
+               elog "Also, nq-sdl / qw-client-sdl are no longer available (use 
-x11 instead)."
+       fi
+
+       if use vulkan; then
+               ewarn "You've enabled the new vulkan support that is still 
experimental and yet"
+               ewarn "used by default. If have issues, can use '+setrom 
vid_render gl' command"
+               ewarn "line option to revert to GL."
+       fi
+}

Reply via email to