public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: games-strategy/0ad/files/, games-strategy/0ad/
Date: Mon, 10 Mar 2025 02:21:35 +0000 (UTC)	[thread overview]
Message-ID: <1741573159.c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52.sam@gentoo> (raw)

commit:     c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52
Author:     Ralph Sennhauser <ralph.sennhauser <AT> gmail <DOT> com>
AuthorDate: Wed Jan 22 12:32:49 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar 10 02:19:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c08ce8c1

games-strategy/0ad: bump to version 0.27.0

Bump to version 0.27.0 and add support for rc builds.

Use system spidermonkey as the minor version restriction was dropped
upstream, unlike in the early days of spidermonkey it's unlikely that
version differences lead to different results. Update checkreqs as the
needed space is reduced quite a bit by using system spidermonkey.

Use verify-sig eclass and drop custom unpack.

Use wxgtk 3.2, there is no reason not to and move wx-setup to
src_configure.

Install libCollada.so, fixes pyrogenesis so it can actually generate
models from collada files if mods require it. Don't install various
unused files on the other hand.

Fix building and running tests. Also replace perl dep with python as
cxxtestgen was rewitten in python long time ago.

With the move to git and gitea the github repo was archived, so drop it
from metadata.xml

LTO still doen't work but not for the original reason

Address some qa items, like http to https, line length or outdated
blocker and remove no longer needed QA_PRESTRIPPED.

Closes: https://bugs.gentoo.org/774153
Closes: https://bugs.gentoo.org/873058
Closes: https://bugs.gentoo.org/896964
Closes: https://bugs.gentoo.org/909509
Closes: https://bugs.gentoo.org/912838
Closes: https://bugs.gentoo.org/917626
Closes: https://bugs.gentoo.org/921324
Closes: https://bugs.gentoo.org/935474
Closes: https://bugs.gentoo.org/945956
Closes: https://bugs.gentoo.org/946468
Closes: https://bugs.gentoo.org/949122
Signed-off-by: Ralph Sennhauser <ralph.sennhauser <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/40383
Signed-off-by: Sam James <sam <AT> gentoo.org>

 games-strategy/0ad/0ad-0.27.0.ebuild               | 235 +++++++++++++++++++++
 games-strategy/0ad/Manifest                        |   4 +
 .../0ad/files/0ad-0.27.0-fix-tests.patch           |  78 +++++++
 games-strategy/0ad/files/0ad-minisign.pub          |   1 +
 games-strategy/0ad/metadata.xml                    |   1 -
 5 files changed, 318 insertions(+), 1 deletion(-)

diff --git a/games-strategy/0ad/0ad-0.27.0.ebuild b/games-strategy/0ad/0ad-0.27.0.ebuild
new file mode 100644
index 000000000000..b6e8f577885b
--- /dev/null
+++ b/games-strategy/0ad/0ad-0.27.0.ebuild
@@ -0,0 +1,235 @@
+# Copyright 2014-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{12,13})
+WX_GTK_VER="3.2-gtk3"
+inherit desktop flag-o-matic python-any-r1 toolchain-funcs multiprocessing wxwidgets xdg
+
+if [[ ${PV} != 9999 && ${PV} != *_pre* ]]; then
+	VERIFY_SIG_METHOD=minisig
+	# The public key can be found upstream - last update was w/ alpha 26:
+	# https://gitea.wildfiregames.com/0ad/0ad/wiki/VerifyingYourDownloads
+	VERIFY_SIG_OPENPGP_KEY_PATH=${FILESDIR}/0ad-minisign.pub
+	inherit verify-sig
+fi
+
+DESCRIPTION="A free, real-time strategy game"
+HOMEPAGE="https://play0ad.com/"
+LICENSE="BitstreamVera CC-BY-SA-3.0 GPL-2 LGPL-2.1 LPPL-1.3c MIT ZLIB"
+
+if [[ ${PV} == *9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/0ad/0ad"
+	S="${WORKDIR}/${P}"
+elif [[ ${PV} == *_pre* ]]; then
+	ZEROAD_GIT_REVISION=""
+	SRC_URI="https://github.com/0ad/0ad/archive/${ZEROAD_GIT_REVISION}.tar.gz -> ${P}.tar.gz"
+	S="${WORKDIR}/${PN}-${ZEROAD_GIT_REVISION}"
+elif [[ ${PV} == *_rc* ]]; then
+	MY_P="0ad-${PV/_/-}"
+	SRC_URI="
+		https://releases.wildfiregames.com/rc/${MY_P}-unix-build.tar.xz
+		https://releases.wildfiregames.com/rc/${MY_P}-unix-data.tar.xz
+		verify-sig? (
+			https://releases.wildfiregames.com/rc/${MY_P}-unix-build.tar.xz.minisig
+			https://releases.wildfiregames.com/rc/${MY_P}-unix-data.tar.xz.minisig
+		)
+	"
+	S="${WORKDIR}/${MY_P/-rc*/}"
+else
+	MY_P="0ad-${PV/_/-}"
+	SRC_URI="
+		https://releases.wildfiregames.com/${MY_P}-unix-build.tar.xz
+		https://releases.wildfiregames.com/${MY_P}-unix-data.tar.xz
+		verify-sig? (
+			https://releases.wildfiregames.com/${MY_P}-unix-build.tar.xz.minisig
+			https://releases.wildfiregames.com/${MY_P}-unix-data.tar.xz.minisig
+		)
+	"
+	S="${WORKDIR}/${MY_P}"
+fi
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="editor +lobby nvtt pch test"
+
+RESTRICT="!test? ( test )"
+CHECKREQS_DISK_BUILD="4000M" # 3842680 KiB (3.6 GiB) for alpha 27
+CHECKREQS_DISK_USR="3500M" # 3452564 KiB (3.2 GiB)
+
+BDEPEND="
+	>=dev-util/premake-5.0.0_alpha12:5
+	virtual/pkgconfig
+	test? ( ${PYTHON_DEPS} )
+"
+
+# Removed dependency on nvtt as we use the bundled one.
+# bug #768930
+# TODO: use system cxxtest
+DEPEND="
+	dev-lang/spidermonkey:115
+	dev-libs/boost:=
+	dev-libs/icu:=
+	dev-libs/libfmt:0=
+	dev-libs/libsodium:=
+	dev-libs/libxml2
+	media-libs/libpng:0
+	media-libs/libsdl2[X,opengl,video]
+	media-libs/libvorbis
+	media-libs/openal
+	net-libs/enet:1.3
+	net-libs/miniupnpc:=
+	net-misc/curl
+	sys-libs/zlib
+	virtual/opengl
+	x11-libs/libX11
+	editor? ( x11-libs/wxGTK:${WX_GTK_VER}[X,opengl] )
+	lobby? ( net-libs/gloox )
+"
+RDEPEND="
+	${DEPEND}
+"
+
+PATCHES=(
+	# https://gitea.wildfiregames.com/0ad/0ad/issues/7534
+	"${FILESDIR}/${PN}-0.27.0-fix-tests.patch"
+)
+
+src_prepare() {
+	default
+
+	# bundled nvtt: -Wodr
+	filter-lto
+
+	# Originally from 0ad-data
+	rm binaries/data/tools/fontbuilder/fonts/*.txt || die
+
+	# Delete test needing network access
+	rm source/network/tests/test_StunClient.h || die
+}
+
+src_configure() {
+	# 0AD uses premake:5 to generate the Makefiles, so let's
+	# 1. configure the configure args,
+	# 2. export some toolchain args,
+	# 3. configure premake args,
+	# 4. run premake5.
+	local myconf=(
+		--minimal-flags
+		--with-system-mozjs
+		$(usex nvtt "" "--without-nvtt")
+		$(usex pch "" "--without-pch")
+		$(usex test "" "--without-tests")
+		$(usex editor "" "--without-atlas")
+		$(usex lobby "" "--without-lobby")
+		--bindir="/usr/bin"
+		--libdir="/usr/$(get_libdir)"/${PN}
+		--datadir="/usr/share/${PN}"
+	)
+
+	tc-export AR CC CXX RANLIB
+
+	local mypremakeargs=(
+		--file=build/premake/premake5.lua
+		--os=linux
+		--verbose
+	)
+
+	use editor && setup-wxwidgets
+
+	premake5 "${mypremakeargs[@]}" "${myconf[@]}" gmake2 \
+		|| die "Premake failed"
+}
+
+src_compile() {
+	# Build 3rd party fcollada
+	einfo "Building bundled fcollada"
+	JOBS="-j$(makeopts_jobs)" ./libraries/source/fcollada/build.sh || die "Failed to build bundled fcollada"
+
+	# Build bundled NVTT
+	# nvtt is abandoned upstream and 0ad has forked it and added fixes.
+	# Use their copy. bug #768930
+	if use nvtt; then
+		elog "Building bundled NVTT (bug #768930)"
+		JOBS="-j$(makeopts_jobs)" ./libraries/source/nvtt/build.sh || die "Failed to build bundled NVTT"
+	fi
+
+	# Shouldn't be needed with tests disabled, unfortunatly it still is for a27
+	# https://gitea.wildfiregames.com/0ad/0ad/issues/7537
+	einfo "Building bundled cxxtest"
+	JOBS="-j$(makeopts_jobs)" ./libraries/source/cxxtest-4.4/build.sh || die "Failed to build bundled cxxtest"
+
+	# Build 0ad itself!
+	elog "Building 0ad"
+	emake -C build/workspaces/default config=release verbose=1
+
+	# Build assets
+	# (We only do this if we're using a snapshot/non-release)
+	# See bug #771147 (comment 3) and the old 0ad-data ebuild
+	# Warning: fragile!
+	if [[ ${PV} == 9999 || ${PV} == *_pre* ]]; then
+		# source/lib/sysdep/os/linux/ldbg.cpp:debug_SetThreadName() tries to open /proc/self/task/${TID}/comm for writing.
+		addpredict /proc/self/task
+
+		# Based on source/tools/dist/build-archives.sh used by source/tools/dist/build.sh.
+		local archivebuild_input archivebuild_output mod_name
+		for archivebuild_input in binaries/data/mods/[A-Za-z0-9]*; do
+			mod_name="${archivebuild_input##*/}"
+			archivebuild_output="archives/${mod_name}"
+
+			mkdir -p "${archivebuild_output}" || die
+
+			einfo pyrogenesis -archivebuild="${archivebuild_input}" \
+				-archivebuild-output="${archivebuild_output}/${mod_name}.zip"
+			LD_LIBRARY_PATH="binaries/system" binaries/system/pyrogenesis \
+				-archivebuild="${archivebuild_input}" \
+				-archivebuild-output="${archivebuild_output}/${mod_name}.zip" \
+			|| die "Failed to build assets"
+
+			if [[ -f "${archivebuild_input}/mod.json" ]]; then
+				cp "${archivebuild_input}/mod.json" "${archivebuild_output}" || die
+			fi
+
+			rm -r "${archivebuild_input}" || die
+			mv "${archivebuild_output}" "${archivebuild_input}" || die
+		done
+
+		# Based on source/tools/dist/build-unix-win32.sh used by source/tools/dist/build.sh.
+		rm binaries/data/config/dev.cfg || die
+	fi
+}
+
+# Removed test requiring network access in src_configure
+src_test() {
+	LD_LIBRARY_PATH=$(realpath libraries/source/nvtt/lib/) \
+		./binaries/system/test --libdir "${S}/binaries/system" || die "Failed tests"
+}
+
+src_install() {
+	# Remove font files only used to generate font bitmaps
+	rm -r binaries/data/tools/fontbuilder/ || die
+	# Remove transifex tooling configuration
+	rm -r binaries/data/l10n/{.tx,messages.json} || die
+	# Remove test only data
+	rm -r binaries/data/mods/_test.* || die
+
+	newbin binaries/system/pyrogenesis 0ad
+	use editor && newbin binaries/system/ActorEditor 0ad-ActorEditor
+
+	# Merged from 0ad-data
+	# bug #771147 (comment 3)
+	insinto /usr/share/${PN}
+	doins -r binaries/data/{l10n,config,mods,tools}
+
+	# Install bundled nvtt
+	# bug #771147 (comment 1)
+	exeinto /usr/$(get_libdir)/${PN}
+	doexe binaries/system/libCollada.so
+	use nvtt && doexe libraries/source/nvtt/lib/{libnvtt,libnvcore,libnvimage,libnvmath}.so
+	use editor && doexe binaries/system/libAtlasUI.so
+
+	dodoc binaries/system/readme.txt
+	doicon -s 128 build/resources/${PN}.png
+	make_desktop_entry ${PN}
+}

diff --git a/games-strategy/0ad/Manifest b/games-strategy/0ad/Manifest
index 9f53ffa1fb54..22eeee97a103 100644
--- a/games-strategy/0ad/Manifest
+++ b/games-strategy/0ad/Manifest
@@ -2,3 +2,7 @@ DIST 0ad-0.0.26-alpha-unix-build.tar.xz 75599800 BLAKE2B ddd589840b0dacee2377ff4
 DIST 0ad-0.0.26-alpha-unix-build.tar.xz.minisig 333 BLAKE2B 9f3146abda592fe6ab9433f6ee30060bcd4c5b594e00cb3fccc0aebb74652f3bc2ddd7b19a296da7ca13126ea9cc0337750f859e24f46adfcb84272bd2cce452 SHA512 eda542c1c363c7c0e6b235e6d8dfbd96d1c1e7cfca408b7215cf247b96c9f42b8bc206bbb4dd48dc41ee373db17d4a76cba940e454840dc41638dd572c580850
 DIST 0ad-0.0.26-alpha-unix-data.tar.xz 1351511480 BLAKE2B 2f483593b79a6ae87d7582625e89c890cfcf4ad7116348b184dae6c47a814d95a7b9f3018cb79e8f024a61c647abd39d6faf5ad3d3fcbb0c7a0583d0479d9b18 SHA512 8fe29fce68737d5b7001c8c2a7198766583b22556129cd2d927823da9b2c58f224fb1207f35bd03abea9380cf24d00ab6257b0dba86ce3ad1f357d7006f051d6
 DIST 0ad-0.0.26-alpha-unix-data.tar.xz.minisig 332 BLAKE2B fb4ec1bcabad79052a5e391557623ad61234d4948ec919d9a79011037855b6c7c94445d8f1667f1725bf80d15d66d1aa32c4e2b259831fbe088fe79e800515b3 SHA512 6dd55dda4e6cd52642b331aa571bc4ccfe30a33ad12a5d3ccf51c708d05dd74bf3234ca722c2a6501ba797bc1f8fa7c7aeb4d836dc4792bfd0c6bbccdc2c1237
+DIST 0ad-0.27.0-unix-build.tar.xz 152170976 BLAKE2B 85ff5b8090791cc2b8fd32cd86c58581b42c2be10f4cf7a15a2ab6f623dbfe1df1b87eab396d1030d3f8936b890f89b383e190800e452c98e22d4501bfe88694 SHA512 c22dc99f873924dab21737a9ac2d85c5a250acd094d61e15ce1b196dbd2d9315f0d31712cc6056b1bfc32aebb4e6c5beaa60bde4e05cb70aa662dea28e47210e
+DIST 0ad-0.27.0-unix-build.tar.xz.minisig 327 BLAKE2B c8cfc6654f1fb04f513512fa6dd9168864434ca15a77584a670d294a8d667529b43ba26779aba763354b069dd1893ce85af856e382fc41d11493ec5af769fc06 SHA512 cb791abdc8076a6e9823f1d732869c3757277f2980b42c028638bf7ee98e04cf65614fc93dc56e6b4ae8287826e02338d9746d0cc228d23922f2d005db94f459
+DIST 0ad-0.27.0-unix-data.tar.xz 1367701984 BLAKE2B d9e745352c792a959b4a2e04ac833bebf29f86de14abe17e5dbfd4a7e4dfeb4d0cdf7487304fec5bff7041995d7f471abf09cd9295386f2eb9932efd9abf67fb SHA512 744be28da72c155591ee1780e9b6ed679ba4dbb3a991ed5e9faf6cb3dec769323c73cf8fec343743834491433166bb19b7bb4085da1a3e033b5e06fde001a27f
+DIST 0ad-0.27.0-unix-data.tar.xz.minisig 326 BLAKE2B d04c309499af9ede76cf5b09d014de36360f6bf3e3b0018bb890be6eac2a05dc21abd4c25f607dec812ffaf660da91b0e8455f8e10d93205518c672a5f7dccaf SHA512 bcea286152b99cf01b526c587b5df2f33c23326512a59dc02b40e743aafa04716b42da6f6adf1457485e969ab834015f02a96c06aa84ffede62a15a1b3be14f1

diff --git a/games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch b/games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch
new file mode 100644
index 000000000000..54899e96e97b
--- /dev/null
+++ b/games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch
@@ -0,0 +1,78 @@
+From c9034c922a87e5692a1aca7262e1eff0598de9c3 Mon Sep 17 00:00:00 2001
+From: Ralph Sennhauser <ralph.sennhauser@gmail.com>
+Date: Thu, 23 Jan 2025 09:51:01 +0100
+Subject: [PATCH] Quick hack to add --libdir support to test
+
+The switch got lost at some point, this PoC allows to run the tests for
+a system install of a27. Should be fixed for 0.28.0 in a cleaner way.
+
+https://gitea.wildfiregames.com/0ad/0ad/issues/7534
+
+Signed-off-by: Ralph Sennhauser <ralph.sennhauser@gmail.com>
+---
+ build/premake/cxxtest/cxxtest.lua |  2 +-
+ source/test_main.tpl              | 39 +++++++++++++++++++++++++++++++
+ 2 files changed, 40 insertions(+), 1 deletion(-)
+ create mode 100644 source/test_main.tpl
+
+diff --git a/build/premake/cxxtest/cxxtest.lua b/build/premake/cxxtest/cxxtest.lua
+index 70840b70a2..1d27612b12 100644
+--- a/build/premake/cxxtest/cxxtest.lua
++++ b/build/premake/cxxtest/cxxtest.lua
+@@ -53,7 +53,7 @@ function m.init(have_std, have_eh, runner, includes, root_includes)
+ 		buildmessage 'Generating test root file'
+ 		buildcommands {
+ 			"{MKDIR} %{wks.location}/generated",
+-			m.exepath.." --root "..m.rootoptions.." --runner="..m.runner.." -o %{wks.location}/generated/test_root.cpp"
++			m.exepath.." --root "..m.rootoptions.." --template ../../../source/test_main.tpl -o %{wks.location}/generated/test_root.cpp"
+ 		}
+ 		cleancommands { "{DELETE} %{wks.location}/generated/test_root.cpp" }
+ 	end
+diff --git a/source/test_main.tpl b/source/test_main.tpl
+new file mode 100644
+index 0000000000..91c7039cdc
+--- /dev/null
++++ b/source/test_main.tpl
+@@ -0,0 +1,39 @@
++// vim: set filetype=cpp :
++
++#include <cxxtest/ErrorPrinter.h>
++#include <cxxtest/XmlPrinter.h>
++
++#include <ps/DllLoader.h>
++#include <cstring>
++#include <iostream>
++
++int main(int argc, char **argv)
++{
++
++	bool xml = false;
++
++	for (int i = 1; i < argc; ++i)
++	{
++		if (std::strcmp(argv[i], "--libdir") == 0)
++		{
++			// check option arg
++			DllLoader::OverrideLibdir(argv[++i]);
++		}
++		else if (std::strcmp(argv[i], "--xml") == 0)
++		{
++			xml = true;
++		}
++		// else fail and print help
++	}
++
++	if (xml)
++	{
++		std::ofstream out{"testresults.xml"};
++		return CxxTest::XmlPrinter(out).run();
++	}
++	else
++		return CxxTest::ErrorPrinter().run();
++}
++
++// The CxxTest "world"
++<CxxTest world>
+-- 
+2.45.3
+

diff --git a/games-strategy/0ad/files/0ad-minisign.pub b/games-strategy/0ad/files/0ad-minisign.pub
new file mode 100644
index 000000000000..43ec846f7a00
--- /dev/null
+++ b/games-strategy/0ad/files/0ad-minisign.pub
@@ -0,0 +1 @@
+RWTWLbO12+ig3lUExIor3xd6DdZaYFEozn8Bu8nIzY3ImuRYQszIQyyy

diff --git a/games-strategy/0ad/metadata.xml b/games-strategy/0ad/metadata.xml
index c47c262ab260..6139c6ebf2ea 100644
--- a/games-strategy/0ad/metadata.xml
+++ b/games-strategy/0ad/metadata.xml
@@ -13,7 +13,6 @@
 			(might be needed for some mods)</flag>
 	</use>
 	<upstream>
-		<remote-id type="github">0ad/0ad</remote-id>
 		<remote-id type="sourceforge">zero-ad</remote-id>
 	</upstream>
 </pkgmetadata>


             reply	other threads:[~2025-03-10  2:22 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-10  2:21 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-06-16 22:34 [gentoo-commits] repo/gentoo:master commit in: games-strategy/0ad/files/, games-strategy/0ad/ James Le Cuirot
2024-05-28  1:45 Sam James
2023-08-22 13:12 Andrew Ammerlaan
2022-06-07  0:41 Sam James
2022-02-07  4:31 Sam James
2022-02-07  4:31 Sam James
2021-06-17 23:24 Sam James
2021-01-17  1:17 Sam James
2015-08-14 23:10 Julian Ospald
2015-08-14 23:10 Julian Ospald

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=1741573159.c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52.sam@gentoo \
    --to=sam@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