From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id D60D013835B for ; Sun, 28 Feb 2021 23:04:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id BC712E095A; Sun, 28 Feb 2021 23:04:46 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 96FF9E0956 for ; Sun, 28 Feb 2021 23:04:46 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0B3E03410D7 for ; Sun, 28 Feb 2021 23:04:45 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 647A3530 for ; Sun, 28 Feb 2021 23:04:43 +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: <1614553468.750a1ce1cc28dc679c08b1456a83c4c8542bb526.sam@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: games-strategy/0ad/ X-VCS-Repository: repo/gentoo X-VCS-Files: games-strategy/0ad/0ad-0.0.24b_alpha.ebuild X-VCS-Directories: games-strategy/0ad/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 750a1ce1cc28dc679c08b1456a83c4c8542bb526 X-VCS-Branch: master Date: Sun, 28 Feb 2021 23:04:43 +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: 1bafe553-ce8a-4333-8c1f-36fd359ee512 X-Archives-Hash: d29050a2bc612a6e218cde5f34004e0e commit: 750a1ce1cc28dc679c08b1456a83c4c8542bb526 Author: Sam James gentoo org> AuthorDate: Sun Feb 28 22:27:30 2021 +0000 Commit: Sam James gentoo org> CommitDate: Sun Feb 28 23:04:28 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=750a1ce1 games-strategy/0ad: bump to 0.0.24b_alpha Huge thanks to everybody mentioned in this commit (and likely others too, sorry if I forgot you!) This started with Arfrever giving an initial bump, then several revisions later, we seem to be in a position where it's fully working! Most of the issues came from (de)bundling SpiderMonkey and NVTT: * New SpiderMonkey releases regularly break the APIs which 0ad uses, so we're reverting to the bundled copy per upstream advice; * NVTT has been abandoned upstream (as an independent project) so the 0ad developers have taken it over and applied significant patches. We use the bundled copy now to take advantage of these fixes. We also abandon 0ad-data for now. We're now using the released asset files for 0.0.24b_alpha but the 0ad ebuild itself, thanks to Wolf-Dieter, can now generate these assets rather than relying on a separate ebuild like 0ad-data. This simplifies matters. Closes: https://bugs.gentoo.org/735352 Thanks-to: Stanislas Dolcini Thanks-to: Wolf-Dieter Rieck web.de> Thanks-to: Arfrever Frehtes Taifersar Arahesis gmail.com> Thanks-to: Quentin Retornaz retornaz.com> Signed-off-by: Sam James gentoo.org> games-strategy/0ad/0ad-0.0.24b_alpha.ebuild | 226 ++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) diff --git a/games-strategy/0ad/0ad-0.0.24b_alpha.ebuild b/games-strategy/0ad/0ad-0.0.24b_alpha.ebuild new file mode 100644 index 00000000000..436db366fb5 --- /dev/null +++ b/games-strategy/0ad/0ad-0.0.24b_alpha.ebuild @@ -0,0 +1,226 @@ +# Copyright 2014-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +WX_GTK_VER="3.0-gtk3" + +inherit desktop toolchain-funcs wxwidgets xdg + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/0ad/0ad" + ZEROAD_GIT_REVISION="" +elif [[ ${PV} == *_pre* ]]; then + ZEROAD_GIT_REVISION="c7d07d3979f969b969211a5e5748fa775f6768a7" +else + MY_P="0ad-${PV/_/-}" +fi + +DESCRIPTION="A free, real-time strategy game" +HOMEPAGE="https://play0ad.com/" +if [[ ${PV} == 9999 ]]; then + SRC_URI="" +elif [[ ${PV} == *_pre* ]]; then + SRC_URI="https://github.com/0ad/0ad/archive/${ZEROAD_GIT_REVISION}.tar.gz -> ${P}.tar.gz" +else + SRC_URI="http://releases.wildfiregames.com/${MY_P}-unix-build.tar.xz" + SRC_URI+=" https://releases.wildfiregames.com/${MY_P}-unix-data.tar.xz" +fi + +# merged with 0ad-data +# addresses comment #3 +# bug #771147 +LICENSE="CC-BY-SA-3.0 GPL-2 LGPL-2.1 MIT ZLIB BitstreamVera LPPL-1.3c" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="editor +lobby nvtt pch test" +RESTRICT="test" + +BDEPEND="virtual/pkgconfig + test? ( dev-lang/perl )" + +# remove dependency on nvtt +# as we use the bundled one +# bug #768930 +DEPEND=" + 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-1.0.20 )" + +# add block on 0ad-data, as it is no longer needed. +# addresses comment #3 +# bug #771147 +RDEPEND="${DEPEND} + !games-strategy/0ad-data" + +if [[ ${PV} == 9999 ]]; then + S="${WORKDIR}/${P}" +elif [[ ${PV} == *_pre* ]]; then + S="${WORKDIR}/${PN}-${ZEROAD_GIT_REVISION}" +else + S="${WORKDIR}/${MY_P}" +fi + +PATCHES=( + "${FILESDIR}/${PN}-0.0.24_alpha_pre20210116040036-build.patch" +) + +pkg_setup() { + use editor && setup-wxwidgets +} + +src_prepare() { + default + + sed -i -e "/--build/d" libraries/source/spidermonkey/build.sh || die + + # merged from 0ad-data + # addresses comment #3 + # bug #771147 + rm binaries/data/tools/fontbuilder/fonts/*.txt || die +} + +src_configure() { + local myconf=( + --minimal-flags + $(usex nvtt "" "--without-nvtt") + $(usex pch "" "--without-pch") + $(usex test "" "--without-tests") + $(usex editor "--atlas" "") + $(usex lobby "" "--without-lobby") + --bindir="/usr/bin" + --libdir="/usr/$(get_libdir)"/${PN} + --datadir="/usr/share/${PN}" + ) + + tc-export CC CXX + + # stock premake5 does not work, use the shipped one + emake -C "${S}"/build/premake/premake5/build/gmake2.unix + + # regenerate scripts.c so our patch applies + cd "${S}"/build/premake/premake5 || die + "${S}"/build/premake/premake5/bin/release/premake5 embed || die + + # rebuild premake again... this is the most stupid build system + emake -C "${S}"/build/premake/premake5/build/gmake2.unix clean + emake -C "${S}"/build/premake/premake5/build/gmake2.unix + + # run premake to create build scripts + cd "${S}"/build/premake || die + "${S}"/build/premake/premake5/bin/release/premake5 \ + --file="premake5.lua" \ + --outpath="../workspaces/gcc/" \ + --os=linux \ + "${myconf[@]}" \ + gmake2 || die "Premake failed" +} + +src_compile() { + tc-export AR + + # build 3rd party fcollada + einfo "Building bundled fcollada" + emake -C libraries/source/fcollada/src + + # build bundled nvtt + # nvtt is abandoned upstream and 0ad have forked it + # and added fixes. Use their copy. + # bug #768930 + if use nvtt ; then + cd libraries/source/nvtt || die + elog "Building bundled nvtt (bug #768930)" + ./build.sh JOBS="-j3" || die "Failed to build bundled nvtt" + cd "${S}" || die + fi + + # build bundled spidermonkey + # We genuinely can't use the system SpiderMonkey right now. + # Breakages occur even on minor bumps in upstream SM, + # e.g. bug #768840. + cd libraries/source/spidermonkey || die + elog "Building bundled SpiderMonkey (bug #768840)" + XARGS="${EPREFIX}/usr/bin/xargs" ./build.sh JOBS="-j3" || die "Failed to build bundled SpiderMonkey" + cd "${S}" || die + + # build 0ad + elog "Building 0ad" + emake -C build/workspaces/gcc verbose=1 JOBS="-j3" + + # merged from 0ad-data + # addresses comment #3 + # bug #771147 + 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}" + + 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 + + if [[ -f "${archivebuild_input}/mod.json" ]]; then + cp "${archivebuild_input}/mod.json" "${archivebuild_output}" + 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 + rm -r binaries/data/mods/_test.* || die + fi +} + +src_test() { + cd binaries/system || die + ./test -libdir "${S}/binaries/system" || die "test phase failed" +} + +src_install() { + newbin binaries/system/pyrogenesis 0ad + use editor && newbin binaries/system/ActorEditor 0ad-ActorEditor + + # merged with 0ad-data + # addresses comment #3 + # bug #771147 + insinto /usr/share/${PN} + doins -r binaries/data/{l10n,config,mods,tools} + + # merged with 0ad-data + # addresses comment #3 + # bug #771147 + # install bundled SpiderMonkey and nvtt + # fixes comment #1 + # bug #771147 + exeinto /usr/$(get_libdir)/${PN} + doexe binaries/system/{libCollada,libmozjs78-ps-release,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} +}