diff options
Diffstat (limited to 'games-strategy')
-rw-r--r-- | games-strategy/0ad/0ad-0.27.0.ebuild | 235 | ||||
-rw-r--r-- | games-strategy/0ad/Manifest | 9 | ||||
-rw-r--r-- | games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch | 78 | ||||
-rw-r--r-- | games-strategy/0ad/files/0ad-minisign.pub | 1 | ||||
-rw-r--r-- | games-strategy/0ad/metadata.xml | 1 | ||||
-rw-r--r-- | games-strategy/Manifest.gz | bin | 7584 -> 7585 bytes |
6 files changed, 322 insertions, 2 deletions
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 52a6d3d36e6f..f75bc1d3904e 100644 --- a/games-strategy/0ad/Manifest +++ b/games-strategy/0ad/Manifest @@ -4,9 +4,16 @@ AUX 0ad-0.0.26_alpha-add-missing-cstdint-include.patch 873 BLAKE2B cc4b621f3f6b1 AUX 0ad-0.0.26_alpha-boost-1.85.patch 1229 BLAKE2B 8aaf7b53806672e7812e7b796d07310995031fc6a36a6861e9133595990d5441ac2e69d0b845f89d7fdc0995c7e1a710d5ecaf861bebb6819892370497508f27 SHA512 e100942db7c69a8833665f7d085edef62224ebcf2aaf4d328290c0e971b62d8a69a037d3fabe6110b9aa906fe4e0a6197e17a8b667e3286888a3fa55ab82a7fa AUX 0ad-0.0.26_alpha-libxml2-2.12.patch 9046 BLAKE2B a4c914526ca2fa29a37aa72f390053ff95bd57e7a3a7d7653b30ac62e8ec8a7998082bd3bd2102654467242e32559c3cc517d813f60685b444ce0ffbf42b92eb SHA512 419af3d589c1465659e5077784d758db4d3b7fa36ac1e7a3e29e6620cc30b784282c299080d1fb8ef8936edc6a7d02d991ae4b911038da2c06705ae9e9945d3a AUX 0ad-0.0.26_alpha-miniupnpc.patch 1503 BLAKE2B 52cde93d352f6834529ae9c025a9f7b623939dcffdf714ba4b6c28bd2026934bcff620ae762fced978616421f9f56b614a8f755ff9e24b4a883fcaeaec69ac5e SHA512 d6cc631b8f6f0d96a23af628a6e83012a2e8b46645d6a5ff05d8c4b1f0687c5ea2ea73c50457f6d076c8b37ae47d64a269f9de51502cc7dbe5683148f561ecde +AUX 0ad-0.27.0-fix-tests.patch 2276 BLAKE2B cffd26610a12d43bb5bffba2b19b724b4aa085a3c6c9e8857700ccc6a0291a8b051931d33a28a1e0054b80c0989a6b6fdfbc51f8390af193e93001a4be1df851 SHA512 e094ae0c46f120091f7f26f6e8f0ded8fc99ab4f3986bba1f90f36832c0873735383db980310d3860f527fbf4150edcc5bbca8e41a281b00450a7a1f81dbed35 +AUX 0ad-minisign.pub 57 BLAKE2B 484559048af363df8219b9a96b80aa58c933f4112898053501d712866553b71a39f7e1fe828096d13769776a33da7dd7ed7ea8c482a93ec38e9497daf0c400a7 SHA512 8db775bfe0929c379e43798fa8c30297f2c414412f5e289fd09ed4ad88880f303bf8a95749ac7ab2f6ebf7c3ba1b5fc850f7c26e5227e21b11663268c836b81f DIST 0ad-0.0.26-alpha-unix-build.tar.xz 75599800 BLAKE2B ddd589840b0dacee2377ff4e5624f69646b92da4217015d788c6abec097578e44aee6641b6a6945d15f50d8e50673a1d44587c2faf02278d981a0ed30c950214 SHA512 aaf647d5d8454c244015d2a198beeaaebc571a5bc96446f3acff8dbd05f9843029c500bf4162651a5e1fcdb42bd5fb5b4f5c512c78372479fbd8565dd093f272 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 EBUILD 0ad-0.0.26_alpha-r2.ebuild 8363 BLAKE2B 4f3023a15a3d490266f8d47683281d6c1610ee53b9bb9e92b989655747d809a7fdfa40fde3e465fe86925d89171e9fb78d53eabe9abf617c4e242187fab0bf05 SHA512 5b423bd05d04ecfbf3372473882a7353a8181474573beecd0ddde98f74cc94e53f6479896a178e766a794521aaab925e3ee7a00423fa4f73eb4cd243e530086b -MISC metadata.xml 667 BLAKE2B 3460d1e769fd9bab7f44c1387b9ccb6acb8b6030e5e307311aca479a0857a3719c22352e3b496dff2569536675e449f98aeccc62999283d2ebd3b3feefe444ee SHA512 65134f211aa3509589f9d333c0b2ceb7cb2dcfe394d3eb84323f5cafb43d8ec6d65738a38552d3c955eab5e7fcb5b71da575df5a1e21e0cbd49dcc4b89fc0f39 +EBUILD 0ad-0.27.0.ebuild 7075 BLAKE2B 8cab1c9db7166656873cea62c76fe659449e987a6024ce437bbc36cf4ca77da0a280ed749a48e1d6fc9f8e45bc3579d9969ff8791eebe34d16a42e6a10a94670 SHA512 38ba8775a738460b2bbf6a1299d317fb2bce998f37b86c596a44c5b1a7088fd508d021be1d26f679c7309f840fcc572d1aa2b026bc953fbd9b2ea3a26d033cc0 +MISC metadata.xml 620 BLAKE2B 359fc2b28893cf9b5590ff08fb4b892c270edac2be7b65dea7c84a51573170b45f2080e95bc0abecd57cb58afb892a4ad702f122a9e73894a1fa2224fbb6b619 SHA512 3c225964c221e28a2ecfddca0f646af893061a57366ae1cff9abcadca3e008d64c447317c64c37faa8bbb0fa43dee05fb6a463e26561c4ee938066fac07d0479 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> diff --git a/games-strategy/Manifest.gz b/games-strategy/Manifest.gz Binary files differindex 6325cb945957..c25fb2be212a 100644 --- a/games-strategy/Manifest.gz +++ b/games-strategy/Manifest.gz |