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/
Date: Sun, 28 Feb 2021 23:04:43 +0000 (UTC)	[thread overview]
Message-ID: <1614553468.750a1ce1cc28dc679c08b1456a83c4c8542bb526.sam@gentoo> (raw)

commit:     750a1ce1cc28dc679c08b1456a83c4c8542bb526
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Feb 28 22:27:30 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> 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 <stan at wildfiregames dot com>
Thanks-to: Wolf-Dieter Rieck <wesen42 <AT> web.de>
Thanks-to: Arfrever Frehtes Taifersar Arahesis <arfrever.fta <AT> gmail.com>
Thanks-to: Quentin Retornaz <gentoo <AT> retornaz.com>
Signed-off-by: Sam James <sam <AT> 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}
+}


             reply	other threads:[~2021-02-28 23:04 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-28 23:04 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-11-22 15:01 [gentoo-commits] repo/gentoo:master commit in: games-strategy/0ad/ Andrew Ammerlaan
2023-09-14  3:41 Sam James
2022-08-11  7:37 Ionen Wolkens
2022-06-10  8:36 Sam James
2021-12-14  9:04 Sam James
2021-08-28  3:39 Sam James
2021-08-28  3:39 Sam James
2021-08-28  3:39 Sam James
2021-08-28  3:39 Sam James
2021-08-15 20:57 Sam James
2021-08-15 20:57 Sam James
2021-06-17 23:24 Sam James
2021-05-28 19:26 Sam James
2021-03-04  5:03 Sam James
2021-03-01 19:44 Sam James
2021-03-01 19:06 Sam James
2021-03-01 13:45 Sam James
2021-03-01 10:56 Sam James
2021-03-01 10:20 Sam James
2021-03-01 10:16 Sam James
2021-02-28 23:20 Sam James
2021-02-28 23:18 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-28 23:04 Sam James
2021-02-12 20:18 Sam James
2021-01-17  1:17 Sam James
2020-09-05  0:35 Sam James
2018-12-25 23:40 Lars Wendler
2018-10-31  8:29 Lars Wendler
2018-05-24 21:19 Maciej Mrozowski
2018-05-24 14:39 Lars Wendler
2018-01-05 13:01 Lars Wendler
2017-08-22  7:14 Lars Wendler
2017-08-04  8:44 Lars Wendler
2017-07-27 13:38 Lars Wendler
2017-06-12  8:10 Michael Palimaka
2016-09-29  5:40 Lars Wendler
2015-10-26 18:00 Julian Ospald
2015-10-26 18:00 Julian Ospald
2015-10-26 17:32 Julian Ospald
2015-09-15 23:56 Julian Ospald
2015-08-20 22:31 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=1614553468.750a1ce1cc28dc679c08b1456a83c4c8542bb526.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