From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5166B1582EF for ; Mon, 10 Mar 2025 02:22:26 +0000 (UTC) Received: from lists.gentoo.org (bobolink.gentoo.org [140.211.166.189]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: relay-lists.gentoo.org@gentoo.org) by smtp.gentoo.org (Postfix) with ESMTPSA id 33A6B343152 for ; Mon, 10 Mar 2025 02:22:26 +0000 (UTC) Received: from bobolink.gentoo.org (localhost [127.0.0.1]) by bobolink.gentoo.org (Postfix) with ESMTP id AC5E411037D; Mon, 10 Mar 2025 02:21:37 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bobolink.gentoo.org (Postfix) with ESMTPS id 94294110370 for ; Mon, 10 Mar 2025 02:21:37 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3CC9334319E for ; Mon, 10 Mar 2025 02:21:37 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 970AD2863 for ; Mon, 10 Mar 2025 02:21:35 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1741573159.c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: games-strategy/0ad/files/, games-strategy/0ad/ X-VCS-Repository: repo/gentoo X-VCS-Files: games-strategy/0ad/0ad-0.27.0.ebuild games-strategy/0ad/Manifest games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch games-strategy/0ad/files/0ad-minisign.pub games-strategy/0ad/metadata.xml X-VCS-Directories: games-strategy/0ad/ games-strategy/0ad/files/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52 X-VCS-Branch: master Date: Mon, 10 Mar 2025 02:21:35 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 089494cb-4afd-4824-892e-6e868edbc1a9 X-Archives-Hash: 3d0fd746a825c8c3a27cb6e412077ca7 commit: c08ce8c1e9d5c04878738f6ca9f12dccd5bfda52 Author: Ralph Sennhauser gmail com> AuthorDate: Wed Jan 22 12:32:49 2025 +0000 Commit: Sam James gentoo 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 gmail.com> Closes: https://github.com/gentoo/gentoo/pull/40383 Signed-off-by: Sam James 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 +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 +--- + 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 ++#include ++ ++#include ++#include ++#include ++ ++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" ++ +-- +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) - 0ad/0ad zero-ad