summaryrefslogtreecommitdiff
path: root/games-strategy
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/0ad/0ad-0.27.0.ebuild235
-rw-r--r--games-strategy/0ad/Manifest9
-rw-r--r--games-strategy/0ad/files/0ad-0.27.0-fix-tests.patch78
-rw-r--r--games-strategy/0ad/files/0ad-minisign.pub1
-rw-r--r--games-strategy/0ad/metadata.xml1
-rw-r--r--games-strategy/Manifest.gzbin7584 -> 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
index 6325cb945957..c25fb2be212a 100644
--- a/games-strategy/Manifest.gz
+++ b/games-strategy/Manifest.gz
Binary files differ