* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2022-10-15 6:02 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2022-10-15 6:02 UTC (permalink / raw
To: gentoo-commits
commit: 244f4c19d20a28176f3730c99d48bbe3ba421841
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 15 05:47:43 2022 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Oct 15 05:54:21 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=244f4c19
dev-games/godot: fix build with USE=-gui
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
| 14 ++++++++++++++
dev-games/godot/godot-4.0_beta3.ebuild | 1 +
2 files changed, 15 insertions(+)
--git a/dev-games/godot/files/godot-4.0_beta3-headless-header.patch b/dev-games/godot/files/godot-4.0_beta3-headless-header.patch
new file mode 100644
index 000000000000..32475296d40a
--- /dev/null
+++ b/dev-games/godot/files/godot-4.0_beta3-headless-header.patch
@@ -0,0 +1,14 @@
+Missing header for headless builds (quickfix, may not make much
+sense to probe renderer on headless).
+
+os_linuxbsd.cpp:249:46: error: 'RenderingServer' has not been declared
+
+Caused by: https://github.com/godotengine/godot/commit/de768afbdcf
+--- a/platform/linuxbsd/os_linuxbsd.cpp
++++ b/platform/linuxbsd/os_linuxbsd.cpp
+@@ -34,4 +34,5 @@
+ #include "main/main.h"
+ #include "servers/display_server.h"
++#include "servers/rendering_server.h"
+
+ #include "modules/modules_enabled.gen.h" // For regex.
diff --git a/dev-games/godot/godot-4.0_beta3.ebuild b/dev-games/godot/godot-4.0_beta3.ebuild
index c99c2e6cb3b7..0c78f5402d17 100644
--- a/dev-games/godot/godot-4.0_beta3.ebuild
+++ b/dev-games/godot/godot-4.0_beta3.ebuild
@@ -76,6 +76,7 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-4.0-musl.patch
"${FILESDIR}"/${PN}-4.0_alpha14-scons.patch
+ "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
)
src_prepare() {
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2022-12-10 9:39 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2022-12-10 9:39 UTC (permalink / raw
To: gentoo-commits
commit: 45673dcfd8a74f487341385126d584ad4273aba9
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 10 08:58:25 2022 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Dec 10 09:38:34 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=45673dcf
dev-games/godot: add 4.0_beta8
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 +
dev-games/godot/files/godot-4.0_beta8-scons.patch | 41 ++++
dev-games/godot/godot-4.0_beta8.ebuild | 256 ++++++++++++++++++++++
3 files changed, 298 insertions(+)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 3576bd2d0a6d..1da11e27e25f 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,2 +1,3 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
DIST godot-4.0-beta7.tar.xz 31508396 BLAKE2B e6f65bd345dda8360ce7ab4234ba045f301b66b0e7b1cda31652e78d96ab023c368ded982fd33d583cf55ec481fda05bcc734abe094e7b18707a73973533c22b SHA512 72e6b52a35d2f077a21339d5c07a36529d10aa05d6d1d1d975b91b42ce6a08f7804cd88b7760ebaa0165a65bc318d2ef971458ecfb7743e579d1b040086b7fd4
+DIST godot-4.0-beta8.tar.xz 31575000 BLAKE2B 27c3f18f1106684e8a4381a5a54240a6513ca3319c1cfc533a6c0b9021474e7246eded4a00f8242df41412b98fd11d38974add72cee4f6936fcc01507b801125 SHA512 f18c22bb7a29062c6bd3106f87656f0eadab3befb2715942bcf114850bf818b9530eb14859480bb82cb5c77a5cecd6f98ed5006643b5cf3b016ee21b1f07f022
diff --git a/dev-games/godot/files/godot-4.0_beta8-scons.patch b/dev-games/godot/files/godot-4.0_beta8-scons.patch
new file mode 100644
index 000000000000..4a6254d93d72
--- /dev/null
+++ b/dev-games/godot/files/godot-4.0_beta8-scons.patch
@@ -0,0 +1,41 @@
+* add option to respect AR
+ (respecting PKG_CONFIG is handled in the ebuild)
+* don't strip even with debug symbols disabled
+* fix icu unbundling underlinking
+* handle recastnavigation unbundling
+--- a/SConstruct
++++ b/SConstruct
+@@ -239,4 +239,5 @@
+ opts.Add("CXX", "C++ compiler")
+ opts.Add("CC", "C compiler")
++opts.Add("AR", "Archiver")
+ opts.Add("LINK", "Linker")
+ opts.Add("CCFLAGS", "Custom flags for both the C and C++ compilers")
+@@ -545,10 +546,4 @@
+ else:
+ env.Append(CCFLAGS=["-g2"])
+- else:
+- if methods.using_clang(env) and not methods.is_vanilla_clang(env):
+- # Apple Clang, its linker doesn't like -s.
+- env.Append(LINKFLAGS=["-Wl,-S", "-Wl,-x", "-Wl,-dead_strip"])
+- else:
+- env.Append(LINKFLAGS=["-s"])
+
+ if env["optimize"] == "speed":
+--- a/platform/linuxbsd/detect.py
++++ b/platform/linuxbsd/detect.py
+@@ -221,5 +221,5 @@
+
+ if not env["builtin_icu"]:
+- env.ParseConfig("pkg-config icu-uc --cflags --libs")
++ env.ParseConfig("pkg-config icu-i18n --cflags --libs")
+
+ if not env["builtin_harfbuzz"]:
+@@ -232,4 +232,7 @@
+ env.ParseConfig("pkg-config libenet --cflags --libs")
+
++ if not env["builtin_recast"]:
++ env.ParseConfig("pkg-config recastnavigation --cflags --libs")
++
+ if not env["builtin_squish"]:
+ env.ParseConfig("pkg-config libsquish --cflags --libs")
diff --git a/dev-games/godot/godot-4.0_beta8.ebuild b/dev-games/godot/godot-4.0_beta8.ebuild
new file mode 100644
index 000000000000..8f872f4fdb83
--- /dev/null
+++ b/dev-games/godot/godot-4.0_beta8.ebuild
@@ -0,0 +1,256 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
+
+MY_P="${PN}-$(ver_rs 2 -)"
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="
+ MIT
+ Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
+SLOT="4"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+ +dbus debug deprecated +fontconfig +gui pulseaudio raycast
+ +runner speech test +theora +tools +udev +upnp +webp"
+# disable tests until out of beta, tests themselves are new and can be volatile
+RESTRICT="test"
+
+# libX11 range is temporary while this is being looked into:
+# - https://github.com/godotengine/godot/issues/69352
+# - https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/170
+# dlopen: alsa-lib,dbus,fontconfig,libX*,pulseaudio,speech-dispatcher,udev
+RDEPEND="
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/freetype[brotli,harfbuzz]
+ media-libs/harfbuzz:=[icu]
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libvorbis
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ fontconfig? ( media-libs/fontconfig )
+ gui? (
+ media-libs/alsa-lib
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader[X]
+ || (
+ >x11-libs/libX11-1.8.2-r1
+ <x11-libs/libX11-1.8.2-r1
+ )
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ dbus? ( sys-apps/dbus )
+ pulseaudio? ( media-libs/libpulse )
+ tools? ( raycast? ( media-libs/embree:3 ) )
+ udev? ( virtual/udev )
+ )
+ speech? ( app-accessibility/speech-dispatcher )
+ theora? ( media-libs/libtheora )
+ tools? ( app-misc/ca-certificates )
+ upnp? ( net-libs/miniupnpc:= )
+ webp? ( media-libs/libwebp:= )"
+DEPEND="
+ ${RDEPEND}
+ gui? ( x11-base/xorg-proto )
+ tools? ( test? ( dev-cpp/doctest ) )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0-musl.patch
+ "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
+ "${FILESDIR}"/${PN}-4.0_beta8-scons.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ doctest embree freetype graphite harfbuzz icu4c libogg
+ libpng libtheora libvorbis libwebp mbedtls miniupnpc
+ pcre2 recastnavigation volk wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+ # do symlinks to avoid too much patching with hardcoded header paths
+ mkdir thirdparty/lib{vorbis,ogg} || die
+ ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
+ ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+ ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
+ ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
+}
+
+src_compile() {
+ local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ progress=no
+ verbose=yes
+
+ deprecated=$(usex deprecated)
+ #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
+ fontconfig=$(usex fontconfig)
+ minizip=yes # uses a modified bundled copy
+ opengl3=$(usex gui)
+ pulseaudio=$(usex gui $(usex pulseaudio))
+ speechd=$(usex speech)
+ udev=$(usex gui $(usex udev))
+ use_dbus=$(usex gui $(usex dbus))
+ use_volk=no # unnecessary when linking directly to libvulkan
+ vulkan=$(usex gui) # hard-required and favored by upstream over gles3
+ x11=$(usex gui)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but ignores whether the dep is
+ # actually used, so "enable" deleted builtins on disabled deps
+ builtin_certs=no
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_glslang=yes #879111
+ builtin_graphite=no
+ builtin_harfbuzz=no
+ builtin_icu=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=no
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=$(usex !upnp)
+ builtin_msdfgen=yes # not wired for unbundling nor packaged
+ builtin_pcre2=no
+ builtin_recast=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # also bundled but lacking a builtin_* switch:
+ # amd-fsr, basis_universal, cvtt, etcpak, fonts, glad,
+ # jpeg-compressor, meshoptimizer, minimp3, minizip (patched to
+ # seek in archives), noise, oidn, openxr, spirv-reflect, thorvg,
+ # tinyexr, vhacd, vulkan, and the misc directory.
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_gridmap_enabled=$(usex deprecated) # fails without deprecated
+ module_mono_enabled=no # unhandled
+ # note raycast is only enabled on amd64+arm64, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these, e.g. can pass -flto as-is
+ debug_symbols=no
+ lto=none
+ optimize=custom
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=template_release "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ target=$(usex tools editor template_$(usex debug{,} release))
+ dev_build=$(usex debug)
+
+ # harmless but note this bakes in --test in the final binary
+ tests=$(usex tools $(usex test))
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_test() {
+ xdg_environment_reset
+ bin/godot*.main --headless --test || die
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ bashcomp_alias ${s}{,-runner}
+
+ insinto /usr/share/fish/vendor_completions.d
+ newins misc/dist/shell/godot.fish ${s}.fish
+ dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/dist/shell/_godot.zsh-completion _${s}
+ dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ! ${REPLACING_VERSIONS} ]] && has_version ${CATEGORY}/${PN}:3; then
+ elog
+ elog "Remember to make backups before opening any Godot <=3.x projects in Godot 4."
+ elog "Automated migration is only partial, and it would be difficult to revert."
+ fi
+}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2022-12-19 7:23 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2022-12-19 7:23 UTC (permalink / raw
To: gentoo-commits
commit: a649b990886d4de33c015dfaca883c923fbdd01e
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Dec 19 06:23:34 2022 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Dec 19 07:11:33 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a649b990
dev-games/godot: drop 4.0_beta7
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 -
.../godot/files/godot-4.0_alpha14-scons.patch | 29 ---
dev-games/godot/godot-4.0_beta7.ebuild | 256 ---------------------
3 files changed, 286 deletions(-)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 1da11e27e25f..24bbfc215dbe 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,3 +1,2 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
-DIST godot-4.0-beta7.tar.xz 31508396 BLAKE2B e6f65bd345dda8360ce7ab4234ba045f301b66b0e7b1cda31652e78d96ab023c368ded982fd33d583cf55ec481fda05bcc734abe094e7b18707a73973533c22b SHA512 72e6b52a35d2f077a21339d5c07a36529d10aa05d6d1d1d975b91b42ce6a08f7804cd88b7760ebaa0165a65bc318d2ef971458ecfb7743e579d1b040086b7fd4
DIST godot-4.0-beta8.tar.xz 31575000 BLAKE2B 27c3f18f1106684e8a4381a5a54240a6513ca3319c1cfc533a6c0b9021474e7246eded4a00f8242df41412b98fd11d38974add72cee4f6936fcc01507b801125 SHA512 f18c22bb7a29062c6bd3106f87656f0eadab3befb2715942bcf114850bf818b9530eb14859480bb82cb5c77a5cecd6f98ed5006643b5cf3b016ee21b1f07f022
diff --git a/dev-games/godot/files/godot-4.0_alpha14-scons.patch b/dev-games/godot/files/godot-4.0_alpha14-scons.patch
deleted file mode 100644
index 295f471d525b..000000000000
--- a/dev-games/godot/files/godot-4.0_alpha14-scons.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-* add option to respect AR
- (respecting PKG_CONFIG is handled in the ebuild)
-* fix icu unbundling underlinking
-* handle recastnavigation unbundling
---- a/SConstruct
-+++ b/SConstruct
-@@ -233,4 +233,5 @@
- opts.Add("CXX", "C++ compiler")
- opts.Add("CC", "C compiler")
-+opts.Add("AR", "Archiver")
- opts.Add("LINK", "Linker")
- opts.Add("CCFLAGS", "Custom flags for both the C and C++ compilers")
---- a/platform/linuxbsd/detect.py
-+++ b/platform/linuxbsd/detect.py
-@@ -238,5 +238,5 @@
-
- if not env["builtin_icu"]:
-- env.ParseConfig("pkg-config icu-uc --cflags --libs")
-+ env.ParseConfig("pkg-config icu-i18n --cflags --libs")
-
- if not env["builtin_harfbuzz"]:
-@@ -249,4 +249,7 @@
- env.ParseConfig("pkg-config libenet --cflags --libs")
-
-+ if not env["builtin_recast"]:
-+ env.ParseConfig("pkg-config recastnavigation --cflags --libs")
-+
- if not env["builtin_squish"]:
- env.ParseConfig("pkg-config libsquish --cflags --libs")
diff --git a/dev-games/godot/godot-4.0_beta7.ebuild b/dev-games/godot/godot-4.0_beta7.ebuild
deleted file mode 100644
index 0c1902be556e..000000000000
--- a/dev-games/godot/godot-4.0_beta7.ebuild
+++ /dev/null
@@ -1,256 +0,0 @@
-# Copyright 2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..11} )
-inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
-
-MY_P="${PN}-$(ver_rs 2 -)"
-
-DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
-HOMEPAGE="https://godotengine.org/"
-SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="
- MIT
- Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
- gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
-SLOT="4"
-KEYWORDS="~amd64"
-# Enable roughly same as upstream by default so it works as expected,
-# except raycast (tools-only heavy dependency), and deprecated.
-IUSE="
- +dbus debug deprecated +fontconfig +gui pulseaudio raycast
- +runner speech test +theora +tools +udev +upnp +webp"
-# disable tests until out of beta, tests themselves are new and can be volatile
-RESTRICT="test"
-
-# libX11 range is temporary while this is being looked into:
-# - https://github.com/godotengine/godot/issues/69352
-# - https://gitlab.freedesktop.org/xorg/lib/libx11/-/issues/170
-# dlopen: alsa-lib,dbus,fontconfig,pulseaudio,speech-dispatcher,udev
-RDEPEND="
- app-arch/zstd:=
- dev-games/recastnavigation:=
- dev-libs/icu:=
- dev-libs/libpcre2:=[pcre32]
- media-libs/freetype[brotli,harfbuzz]
- media-libs/harfbuzz:=[icu]
- media-libs/libogg
- media-libs/libpng:=
- media-libs/libvorbis
- <net-libs/mbedtls-3:=
- net-libs/wslay
- sys-libs/zlib:=
- fontconfig? ( media-libs/fontconfig )
- gui? (
- media-libs/alsa-lib
- media-libs/libglvnd[X]
- media-libs/vulkan-loader[X]
- || (
- >x11-libs/libX11-1.8.2-r1
- <x11-libs/libX11-1.8.2-r1
- )
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- dbus? ( sys-apps/dbus )
- pulseaudio? ( media-libs/libpulse )
- tools? ( raycast? ( media-libs/embree:3 ) )
- udev? ( virtual/udev )
- )
- speech? ( app-accessibility/speech-dispatcher )
- theora? ( media-libs/libtheora )
- tools? ( app-misc/ca-certificates )
- upnp? ( net-libs/miniupnpc:= )
- webp? ( media-libs/libwebp:= )"
-DEPEND="
- ${RDEPEND}
- gui? ( x11-base/xorg-proto )
- tools? ( test? ( dev-cpp/doctest ) )"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-4.0-musl.patch
- "${FILESDIR}"/${PN}-4.0_alpha14-scons.patch
- "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
-)
-
-src_prepare() {
- default
-
- sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
- sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
- sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
- -i misc/dist/linux/org.godotengine.Godot.desktop || die
-
- sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
-
- # use of builtin_ switches can be messy (see below), delete to be sure
- local unbundle=(
- doctest embree freetype graphite harfbuzz icu4c libogg
- libpng libtheora libvorbis libwebp mbedtls miniupnpc
- pcre2 recastnavigation volk wslay zlib zstd
- # certs: unused by generated header, but scons panics if not found
- )
- rm -r "${unbundle[@]/#/thirdparty/}" || die
-
- # do symlinks to avoid too much patching with hardcoded header paths
- mkdir thirdparty/lib{vorbis,ogg} || die
- ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
- ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
- ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
- ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
-}
-
-src_compile() {
- local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
- local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
-
- local esconsargs=(
- AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- progress=no
- verbose=yes
-
- deprecated=$(usex deprecated)
- #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
- fontconfig=$(usex fontconfig)
- minizip=yes # uses a modified bundled copy
- opengl3=$(usex gui)
- pulseaudio=$(usex gui $(usex pulseaudio))
- speechd=$(usex speech)
- udev=$(usex gui $(usex udev))
- use_dbus=$(usex gui $(usex dbus))
- use_volk=no # unnecessary when linking directly to libvulkan
- vulkan=$(usex gui) # hard-required and favored by upstream over gles3
- x11=$(usex gui)
-
- system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
-
- # platform/*/detect.py uses builtin_* switches to check if need
- # to link with system libraries, but ignores whether the dep is
- # actually used, so "enable" deleted builtins on disabled deps
- builtin_certs=no
- builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
- builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
- builtin_freetype=no
- builtin_glslang=yes #879111
- builtin_graphite=no
- builtin_harfbuzz=no
- builtin_icu=no
- builtin_libogg=no
- builtin_libpng=no
- builtin_libtheora=$(usex !theora)
- builtin_libvorbis=no
- builtin_libwebp=$(usex !webp)
- builtin_mbedtls=no
- builtin_miniupnpc=$(usex !upnp)
- builtin_msdfgen=yes # not wired for unbundling nor packaged
- builtin_pcre2=no
- builtin_recast=no
- builtin_rvo2=yes # bundled copy has godot-specific changes
- builtin_squish=yes # ^ likewise, may not be safe to unbundle
- builtin_wslay=no
- builtin_xatlas=yes # not wired for unbundling nor packaged
- builtin_zlib=no
- builtin_zstd=no
- # also bundled but lacking a builtin_* switch:
- # amd-fsr, basis_universal, cvtt, etcpak, fonts, glad,
- # jpeg-compressor, meshoptimizer, minimp3, minizip (patched to
- # seek in archives), noise, oidn, openxr, spirv-reflect, thorvg,
- # tinyexr, vhacd, vulkan, and the misc directory.
-
- # modules with optional dependencies, "possible" to disable more but
- # gets messy and breaks all sorts of features (expected enabled)
- module_gridmap_enabled=$(usex deprecated) # fails without deprecated
- module_mono_enabled=no # unhandled
- # note raycast is only enabled on amd64+arm64, see raycast/config.py
- module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
- module_theora_enabled=$(usex theora)
- module_upnp_enabled=$(usex upnp)
- module_webp_enabled=$(usex webp)
-
- # let *FLAGS handle these, e.g. can pass -flto as-is
- debug_symbols=no
- lto=none
- optimize=custom
- use_static_cpp=no
- )
-
- if use runner && use tools; then
- # build alternate faster + ~60% smaller binary for running
- # games or servers without game development debug paths
- escons extra_suffix=runner target=template_release "${esconsargs[@]}"
- fi
-
- esconsargs+=(
- target=$(usex tools editor template_$(usex debug{,} release))
- dev_build=$(usex debug)
-
- # harmless but note this bakes in --test in the final binary
- tests=$(usex tools $(usex test))
- )
-
- escons extra_suffix=main "${esconsargs[@]}"
-}
-
-src_test() {
- xdg_environment_reset
- bin/godot*.main --headless --test || die
-}
-
-src_install() {
- local s=godot${SLOT}
-
- newbin bin/godot*.main ${s}
- if use runner && use tools; then
- newbin bin/godot*.runner ${s}-runner
- else
- # always available, revdeps shouldn't depend on [runner]
- dosym ${s} /usr/bin/${s}-runner
- fi
-
- newman misc/dist/linux/godot.6 ${s}.6
- dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
-
- if use gui; then
- newicon icon.svg ${s}.svg
- newmenu misc/dist/linux/org.godotengine.Godot.desktop \
- org.godotengine.${s^}.desktop
-
- insinto /usr/share/metainfo
- newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
- org.godotengine.${s^}.appdata.xml
-
- insinto /usr/share/mime/application
- newins misc/dist/linux/org.godotengine.Godot.xml \
- org.godotengine.${s^}.xml
- fi
-
- newbashcomp misc/dist/shell/godot.bash-completion ${s}
- bashcomp_alias ${s}{,-runner}
-
- insinto /usr/share/fish/vendor_completions.d
- newins misc/dist/shell/godot.fish ${s}.fish
- dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
-
- insinto /usr/share/zsh/site-functions
- newins misc/dist/shell/_godot.zsh-completion _${s}
- dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if [[ ! ${REPLACING_VERSIONS} ]] && has_version ${CATEGORY}/${PN}:3; then
- elog
- elog "Remember to make backups before opening any Godot <=3.x projects in Godot 4."
- elog "Automated migration is only partial, and it would be difficult to revert."
- fi
-}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2023-02-02 17:26 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-02-02 17:26 UTC (permalink / raw
To: gentoo-commits
commit: 7e149b5feeef9e7db5b3afebc0238a05f244869c
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 2 16:21:42 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Feb 2 17:25:51 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7e149b5f
dev-games/godot: add 4.0_beta17
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 +
.../files/godot-4.0_beta17-no-deprecated-fix.patch | 51 +++++
dev-games/godot/godot-4.0_beta17.ebuild | 241 +++++++++++++++++++++
3 files changed, 293 insertions(+)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 06dd3e2f3ce4..7b19a1782cc3 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,2 +1,3 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
DIST godot-4.0-beta16.tar.xz 31937624 BLAKE2B 998edcd6d9f118cb96a4f84b81b73c36d060d297702fa2a9dc4be936c7ca9aa35b77db16caf5ed19662fcae700f59e329393a17fd88448d8a6ff8f484a136f9c SHA512 c9cf5b66675dfe9253852eee7748a5c2bd04f356524def6e9925bef73baee3239f9f9405a92d373dcadbaff7c3288e54e547ae3cb46974bea61bfb68576b7c13
+DIST godot-4.0-beta17.tar.xz 31965968 BLAKE2B 897153aa9b36ccb7aea29749534e7a04452cd24ef5e8404063a1f96c6b61633d3f175279f08e49bbc6479a9df0f0ffe7cf4030d483502af7a90cc5cdd24f4010 SHA512 1a0a74a3538947cc3942fdbc27e941e8fe1b4424b257444176ea19fb6db3cc6c374f24190d1779a530cb61b5e42ff242842692d0878280862c5644e9de93d5c9
diff --git a/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch b/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch
new file mode 100644
index 000000000000..8c4a14edc4bb
--- /dev/null
+++ b/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch
@@ -0,0 +1,51 @@
+Backport to fix build with USE=-deprecated
+
+https://github.com/godotengine/godot/commit/c197b398c38727c6cce3d2fec7aa07d2e1020e09
+From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
+Date: Wed, 1 Feb 2023 22:29:33 +0100
+Subject: [PATCH] Fix build with `deprecated=no` not exclude
+ ProjectConverter3To4 options
+
+Fixes #72520.
+--- a/main/main.cpp
++++ b/main/main.cpp
+@@ -2366,8 +2366,10 @@ bool Main::start() {
+ String _export_preset;
+ bool export_debug = false;
+ bool export_pack_only = false;
++#ifndef DISABLE_DEPRECATED
+ bool converting_project = false;
+ bool validating_converting_project = false;
++#endif // DISABLE_DEPRECATED
+ #endif
+
+ main_timer_sync.init(OS::get_singleton()->get_ticks_usec());
+@@ -2383,10 +2385,12 @@ bool Main::start() {
+ #ifdef TOOLS_ENABLED
+ } else if (args[i] == "--no-docbase") {
+ doc_base = false;
++#ifndef DISABLE_DEPRECATED
+ } else if (args[i] == "--convert-3to4") {
+ converting_project = true;
+ } else if (args[i] == "--validate-conversion-3to4") {
+ validating_converting_project = true;
++#endif // DISABLE_DEPRECATED
+ } else if (args[i] == "-e" || args[i] == "--editor") {
+ editor = true;
+ } else if (args[i] == "-p" || args[i] == "--project-manager") {
+@@ -2547,6 +2551,7 @@ bool Main::start() {
+ return false;
+ }
+
++#ifndef DISABLE_DEPRECATED
+ if (converting_project) {
+ int exit_code = ProjectConverter3To4(converter_max_kb_file, converter_max_line_length).convert();
+ OS::get_singleton()->set_exit_code(exit_code);
+@@ -2557,6 +2562,7 @@ bool Main::start() {
+ OS::get_singleton()->set_exit_code(exit_code);
+ return false;
+ }
++#endif // DISABLE_DEPRECATED
+
+ #endif
+
diff --git a/dev-games/godot/godot-4.0_beta17.ebuild b/dev-games/godot/godot-4.0_beta17.ebuild
new file mode 100644
index 000000000000..712797804adc
--- /dev/null
+++ b/dev-games/godot/godot-4.0_beta17.ebuild
@@ -0,0 +1,241 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit bash-completion-r1 desktop optfeature python-any-r1
+inherit scons-utils toolchain-funcs xdg
+
+MY_P="${PN}-$(ver_rs 2 -)"
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="
+ MIT
+ AFL-2.1 Apache-2.0 BSD Boost-1.0 CC0-1.0 LGPL-2.1+ Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
+SLOT="4"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="debug deprecated +gui raycast +runner test +theora +tools +upnp +vulkan +webp"
+# disable tests until out of beta, tests themselves are new and can be volatile
+RESTRICT="test"
+
+# dlopen: libX*,libglvnd
+RDEPEND="
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/freetype[brotli,harfbuzz]
+ media-libs/harfbuzz:=[icu]
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libvorbis
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ gui? (
+ media-libs/libglvnd[X]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ tools? ( raycast? ( media-libs/embree:3 ) )
+ vulkan? ( media-libs/vulkan-loader[X] )
+ )
+ theora? ( media-libs/libtheora )
+ tools? ( app-misc/ca-certificates )
+ upnp? ( net-libs/miniupnpc:= )
+ webp? ( media-libs/libwebp:= )"
+DEPEND="
+ ${RDEPEND}
+ tools? ( test? ( dev-cpp/doctest ) )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0-musl.patch
+ "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
+ "${FILESDIR}"/${PN}-4.0_beta8-scons.patch
+ "${FILESDIR}"/${P}-no-deprecated-fix.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ doctest embree freetype graphite harfbuzz icu4c libogg
+ libpng libtheora libvorbis libwebp mbedtls miniupnpc
+ pcre2 recastnavigation volk wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ # linuxbsd_headers: would /want/ to unbundle these, but it is rather
+ # messy given godot has dropped all the pkg-config calls and uses
+ # hardcoded paths on top -- on the plus side, removes a real need
+ # to have IUSE="alsa dbus fontconfig pulseaudio speech udev" (dlopen)
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+ # do symlinks to avoid too much patching with hardcoded header paths
+ mkdir thirdparty/lib{vorbis,ogg} || die
+ ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
+ ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+ ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
+ ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
+}
+
+src_compile() {
+ local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ progress=no
+ verbose=yes
+
+ deprecated=$(usex deprecated)
+ #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
+ opengl3=$(usex gui)
+ use_volk=no # unnecessary when linking directly to libvulkan
+ vulkan=$(usex gui $(usex vulkan))
+ x11=$(usex gui)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but ignores whether the dep is
+ # actually used, so "enable" deleted builtins on disabled deps
+ builtin_certs=no
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_glslang=yes #879111
+ builtin_graphite=no
+ builtin_harfbuzz=no
+ builtin_icu=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=no
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=$(usex !upnp)
+ builtin_msdfgen=yes # not wired for unbundling nor packaged
+ builtin_pcre2=no
+ builtin_recast=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # (more is bundled in third_party/ but they lack builtin_* switches)
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_gridmap_enabled=$(usex deprecated) # fails without deprecated
+ module_mono_enabled=no # unhandled
+ # note raycast is only enabled on amd64+arm64, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these, e.g. can pass -flto as-is
+ debug_symbols=no
+ lto=none
+ optimize=custom
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=template_release "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ target=$(usex tools editor template_$(usex debug{,} release))
+ dev_build=$(usex debug)
+
+ # harmless but note this bakes in --test in the final binary
+ tests=$(usex tools $(usex test))
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_test() {
+ xdg_environment_reset
+ bin/godot*.main --headless --test || die
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ bashcomp_alias ${s}{,-runner}
+
+ insinto /usr/share/fish/vendor_completions.d
+ newins misc/dist/shell/godot.fish ${s}.fish
+ dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/dist/shell/_godot.zsh-completion _${s}
+ dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ # these use bundled headers then get dlopen()'ed if available, USE=gui
+ # itself could technically be a optfeature too but it'd be messy here
+ if use gui; then
+ optfeature "gamepad connection detection support" virtual/libudev
+ optfeature "screensaver and portal desktop handling" sys-apps/dbus
+ optfeature "sound support" media-libs/alsa-lib media-libs/libpulse
+ fi
+ optfeature "system fonts support" media-libs/fontconfig
+ optfeature "text-to-speech support" app-accessibility/speech-dispatcher
+}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2023-02-13 11:46 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-02-13 11:46 UTC (permalink / raw
To: gentoo-commits
commit: 73c28bdfc504436a536d42b74008de9d65fe9bb8
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 13 11:04:18 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Feb 13 11:32:47 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73c28bdf
dev-games/godot: drop 4.0_beta17
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 -
.../files/godot-4.0_beta17-no-deprecated-fix.patch | 51 -----
dev-games/godot/godot-4.0_beta17.ebuild | 241 ---------------------
3 files changed, 293 deletions(-)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index a48e049aa66c..c21ae7c86b8d 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,3 +1,2 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
-DIST godot-4.0-beta17.tar.xz 31965968 BLAKE2B 897153aa9b36ccb7aea29749534e7a04452cd24ef5e8404063a1f96c6b61633d3f175279f08e49bbc6479a9df0f0ffe7cf4030d483502af7a90cc5cdd24f4010 SHA512 1a0a74a3538947cc3942fdbc27e941e8fe1b4424b257444176ea19fb6db3cc6c374f24190d1779a530cb61b5e42ff242842692d0878280862c5644e9de93d5c9
DIST godot-4.0-rc1.tar.xz 29009768 BLAKE2B 27b39cb048e3c928bac4bd8e1740ae477d6b831b35771ea1132ebd0d3c425587d5fec43057b6097c43c9b6182417d41b3bb85fe7e2336c297b1690c339bad097 SHA512 78e441e88e80e37df421080902ff3a6e460181be306043073b1070320b85854b601b3f34264f58b55b74ca65fa20a0013206e6e3e56481ea3fc86405fa2d467c
diff --git a/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch b/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch
deleted file mode 100644
index 8c4a14edc4bb..000000000000
--- a/dev-games/godot/files/godot-4.0_beta17-no-deprecated-fix.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Backport to fix build with USE=-deprecated
-
-https://github.com/godotengine/godot/commit/c197b398c38727c6cce3d2fec7aa07d2e1020e09
-From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
-Date: Wed, 1 Feb 2023 22:29:33 +0100
-Subject: [PATCH] Fix build with `deprecated=no` not exclude
- ProjectConverter3To4 options
-
-Fixes #72520.
---- a/main/main.cpp
-+++ b/main/main.cpp
-@@ -2366,8 +2366,10 @@ bool Main::start() {
- String _export_preset;
- bool export_debug = false;
- bool export_pack_only = false;
-+#ifndef DISABLE_DEPRECATED
- bool converting_project = false;
- bool validating_converting_project = false;
-+#endif // DISABLE_DEPRECATED
- #endif
-
- main_timer_sync.init(OS::get_singleton()->get_ticks_usec());
-@@ -2383,10 +2385,12 @@ bool Main::start() {
- #ifdef TOOLS_ENABLED
- } else if (args[i] == "--no-docbase") {
- doc_base = false;
-+#ifndef DISABLE_DEPRECATED
- } else if (args[i] == "--convert-3to4") {
- converting_project = true;
- } else if (args[i] == "--validate-conversion-3to4") {
- validating_converting_project = true;
-+#endif // DISABLE_DEPRECATED
- } else if (args[i] == "-e" || args[i] == "--editor") {
- editor = true;
- } else if (args[i] == "-p" || args[i] == "--project-manager") {
-@@ -2547,6 +2551,7 @@ bool Main::start() {
- return false;
- }
-
-+#ifndef DISABLE_DEPRECATED
- if (converting_project) {
- int exit_code = ProjectConverter3To4(converter_max_kb_file, converter_max_line_length).convert();
- OS::get_singleton()->set_exit_code(exit_code);
-@@ -2557,6 +2562,7 @@ bool Main::start() {
- OS::get_singleton()->set_exit_code(exit_code);
- return false;
- }
-+#endif // DISABLE_DEPRECATED
-
- #endif
-
diff --git a/dev-games/godot/godot-4.0_beta17.ebuild b/dev-games/godot/godot-4.0_beta17.ebuild
deleted file mode 100644
index 712797804adc..000000000000
--- a/dev-games/godot/godot-4.0_beta17.ebuild
+++ /dev/null
@@ -1,241 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit bash-completion-r1 desktop optfeature python-any-r1
-inherit scons-utils toolchain-funcs xdg
-
-MY_P="${PN}-$(ver_rs 2 -)"
-
-DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
-HOMEPAGE="https://godotengine.org/"
-SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="
- MIT
- AFL-2.1 Apache-2.0 BSD Boost-1.0 CC0-1.0 LGPL-2.1+ Unlicense ZLIB
- gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
-SLOT="4"
-KEYWORDS="~amd64"
-# Enable roughly same as upstream by default so it works as expected,
-# except raycast (tools-only heavy dependency), and deprecated.
-IUSE="debug deprecated +gui raycast +runner test +theora +tools +upnp +vulkan +webp"
-# disable tests until out of beta, tests themselves are new and can be volatile
-RESTRICT="test"
-
-# dlopen: libX*,libglvnd
-RDEPEND="
- app-arch/zstd:=
- dev-games/recastnavigation:=
- dev-libs/icu:=
- dev-libs/libpcre2:=[pcre32]
- media-libs/freetype[brotli,harfbuzz]
- media-libs/harfbuzz:=[icu]
- media-libs/libogg
- media-libs/libpng:=
- media-libs/libvorbis
- <net-libs/mbedtls-3:=
- net-libs/wslay
- sys-libs/zlib:=
- gui? (
- media-libs/libglvnd[X]
- x11-libs/libX11
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- tools? ( raycast? ( media-libs/embree:3 ) )
- vulkan? ( media-libs/vulkan-loader[X] )
- )
- theora? ( media-libs/libtheora )
- tools? ( app-misc/ca-certificates )
- upnp? ( net-libs/miniupnpc:= )
- webp? ( media-libs/libwebp:= )"
-DEPEND="
- ${RDEPEND}
- tools? ( test? ( dev-cpp/doctest ) )"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-4.0-musl.patch
- "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
- "${FILESDIR}"/${PN}-4.0_beta8-scons.patch
- "${FILESDIR}"/${P}-no-deprecated-fix.patch
-)
-
-src_prepare() {
- default
-
- sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
- sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
- sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
- -i misc/dist/linux/org.godotengine.Godot.desktop || die
-
- sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
-
- # use of builtin_ switches can be messy (see below), delete to be sure
- local unbundle=(
- doctest embree freetype graphite harfbuzz icu4c libogg
- libpng libtheora libvorbis libwebp mbedtls miniupnpc
- pcre2 recastnavigation volk wslay zlib zstd
- # certs: unused by generated header, but scons panics if not found
- # linuxbsd_headers: would /want/ to unbundle these, but it is rather
- # messy given godot has dropped all the pkg-config calls and uses
- # hardcoded paths on top -- on the plus side, removes a real need
- # to have IUSE="alsa dbus fontconfig pulseaudio speech udev" (dlopen)
- )
- rm -r "${unbundle[@]/#/thirdparty/}" || die
-
- # do symlinks to avoid too much patching with hardcoded header paths
- mkdir thirdparty/lib{vorbis,ogg} || die
- ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
- ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
- ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
- ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
-}
-
-src_compile() {
- local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
- local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
-
- local esconsargs=(
- AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- progress=no
- verbose=yes
-
- deprecated=$(usex deprecated)
- #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
- opengl3=$(usex gui)
- use_volk=no # unnecessary when linking directly to libvulkan
- vulkan=$(usex gui $(usex vulkan))
- x11=$(usex gui)
-
- system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
-
- # platform/*/detect.py uses builtin_* switches to check if need
- # to link with system libraries, but ignores whether the dep is
- # actually used, so "enable" deleted builtins on disabled deps
- builtin_certs=no
- builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
- builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
- builtin_freetype=no
- builtin_glslang=yes #879111
- builtin_graphite=no
- builtin_harfbuzz=no
- builtin_icu=no
- builtin_libogg=no
- builtin_libpng=no
- builtin_libtheora=$(usex !theora)
- builtin_libvorbis=no
- builtin_libwebp=$(usex !webp)
- builtin_mbedtls=no
- builtin_miniupnpc=$(usex !upnp)
- builtin_msdfgen=yes # not wired for unbundling nor packaged
- builtin_pcre2=no
- builtin_recast=no
- builtin_rvo2=yes # bundled copy has godot-specific changes
- builtin_squish=yes # ^ likewise, may not be safe to unbundle
- builtin_wslay=no
- builtin_xatlas=yes # not wired for unbundling nor packaged
- builtin_zlib=no
- builtin_zstd=no
- # (more is bundled in third_party/ but they lack builtin_* switches)
-
- # modules with optional dependencies, "possible" to disable more but
- # gets messy and breaks all sorts of features (expected enabled)
- module_gridmap_enabled=$(usex deprecated) # fails without deprecated
- module_mono_enabled=no # unhandled
- # note raycast is only enabled on amd64+arm64, see raycast/config.py
- module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
- module_theora_enabled=$(usex theora)
- module_upnp_enabled=$(usex upnp)
- module_webp_enabled=$(usex webp)
-
- # let *FLAGS handle these, e.g. can pass -flto as-is
- debug_symbols=no
- lto=none
- optimize=custom
- use_static_cpp=no
- )
-
- if use runner && use tools; then
- # build alternate faster + ~60% smaller binary for running
- # games or servers without game development debug paths
- escons extra_suffix=runner target=template_release "${esconsargs[@]}"
- fi
-
- esconsargs+=(
- target=$(usex tools editor template_$(usex debug{,} release))
- dev_build=$(usex debug)
-
- # harmless but note this bakes in --test in the final binary
- tests=$(usex tools $(usex test))
- )
-
- escons extra_suffix=main "${esconsargs[@]}"
-}
-
-src_test() {
- xdg_environment_reset
- bin/godot*.main --headless --test || die
-}
-
-src_install() {
- local s=godot${SLOT}
-
- newbin bin/godot*.main ${s}
- if use runner && use tools; then
- newbin bin/godot*.runner ${s}-runner
- else
- # always available, revdeps shouldn't depend on [runner]
- dosym ${s} /usr/bin/${s}-runner
- fi
-
- newman misc/dist/linux/godot.6 ${s}.6
- dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
-
- if use gui; then
- newicon icon.svg ${s}.svg
- newmenu misc/dist/linux/org.godotengine.Godot.desktop \
- org.godotengine.${s^}.desktop
-
- insinto /usr/share/metainfo
- newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
- org.godotengine.${s^}.appdata.xml
-
- insinto /usr/share/mime/application
- newins misc/dist/linux/org.godotengine.Godot.xml \
- org.godotengine.${s^}.xml
- fi
-
- newbashcomp misc/dist/shell/godot.bash-completion ${s}
- bashcomp_alias ${s}{,-runner}
-
- insinto /usr/share/fish/vendor_completions.d
- newins misc/dist/shell/godot.fish ${s}.fish
- dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
-
- insinto /usr/share/zsh/site-functions
- newins misc/dist/shell/_godot.zsh-completion _${s}
- dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- # these use bundled headers then get dlopen()'ed if available, USE=gui
- # itself could technically be a optfeature too but it'd be messy here
- if use gui; then
- optfeature "gamepad connection detection support" virtual/libudev
- optfeature "screensaver and portal desktop handling" sys-apps/dbus
- optfeature "sound support" media-libs/alsa-lib media-libs/libpulse
- fi
- optfeature "system fonts support" media-libs/fontconfig
- optfeature "text-to-speech support" app-accessibility/speech-dispatcher
-}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2023-02-17 1:43 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-02-17 1:43 UTC (permalink / raw
To: gentoo-commits
commit: 144efb0e315b95b5b029a374968de5102cd3a164
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 17 01:23:24 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Feb 17 01:43:38 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=144efb0e
dev-games/godot: drop 4.0_rc1
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 -
dev-games/godot/files/godot-4.0-musl.patch | 9 --
dev-games/godot/godot-4.0_rc1.ebuild | 240 -----------------------------
3 files changed, 250 deletions(-)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index e47693f51bf8..27ef6eb38c2f 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,3 +1,2 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
-DIST godot-4.0-rc1.tar.xz 29009768 BLAKE2B 27b39cb048e3c928bac4bd8e1740ae477d6b831b35771ea1132ebd0d3c425587d5fec43057b6097c43c9b6182417d41b3bb85fe7e2336c297b1690c339bad097 SHA512 78e441e88e80e37df421080902ff3a6e460181be306043073b1070320b85854b601b3f34264f58b55b74ca65fa20a0013206e6e3e56481ea3fc86405fa2d467c
DIST godot-4.0-rc2.tar.xz 29105476 BLAKE2B be30da3909ee881ed929747d97232ad1356b15d0bdb0f5ea07fedc6de300a776ffac4e156134218322ccc4b6e2d4ae457cf53ee72a2da0df645e98fb957e773f SHA512 5d36ca7018ed2963e92a0917a6310f787ab807f47a302f11b6c09ffd60e4e98800aef6957345feb61f49a623eb1993abf601669cd7b7511a5b1d974b129b11c3
diff --git a/dev-games/godot/files/godot-4.0-musl.patch b/dev-games/godot/files/godot-4.0-musl.patch
deleted file mode 100644
index 50c5c334773f..000000000000
--- a/dev-games/godot/files/godot-4.0-musl.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-crash handler requires glibc or libexecinfo (not packaged),
-and is always enabled if build the editor (release_debug)
---- a/platform/linuxbsd/crash_handler_linuxbsd.cpp
-+++ b/platform/linuxbsd/crash_handler_linuxbsd.cpp
-@@ -38,3 +38,3 @@
-
--#ifdef DEBUG_ENABLED
-+#if defined(DEBUG_ENABLED) && defined(__GLIBC__)
- #define CRASH_HANDLER_ENABLED 1
diff --git a/dev-games/godot/godot-4.0_rc1.ebuild b/dev-games/godot/godot-4.0_rc1.ebuild
deleted file mode 100644
index 8c124e770a8e..000000000000
--- a/dev-games/godot/godot-4.0_rc1.ebuild
+++ /dev/null
@@ -1,240 +0,0 @@
-# Copyright 2022-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-inherit bash-completion-r1 desktop optfeature python-any-r1
-inherit scons-utils toolchain-funcs xdg
-
-MY_P="${PN}-$(ver_rs 2 -)"
-
-DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
-HOMEPAGE="https://godotengine.org/"
-SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="
- MIT
- AFL-2.1 Apache-2.0 BSD Boost-1.0 CC0-1.0 LGPL-2.1+ Unlicense ZLIB
- gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
-SLOT="4"
-KEYWORDS="~amd64"
-# Enable roughly same as upstream by default so it works as expected,
-# except raycast (tools-only heavy dependency), and deprecated.
-IUSE="debug deprecated +gui raycast +runner test +theora +tools +upnp +vulkan +webp"
-# tests need more figuring out, they are still somewhat new and volatile
-RESTRICT="test"
-
-# dlopen: libX*,libglvnd
-RDEPEND="
- app-arch/zstd:=
- dev-games/recastnavigation:=
- dev-libs/icu:=
- dev-libs/libpcre2:=[pcre32]
- media-libs/freetype[brotli,harfbuzz]
- media-libs/harfbuzz:=[icu]
- media-libs/libogg
- media-libs/libpng:=
- media-libs/libvorbis
- <net-libs/mbedtls-3:=
- net-libs/wslay
- sys-libs/zlib:=
- gui? (
- media-libs/libglvnd[X]
- x11-libs/libX11
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- tools? ( raycast? ( media-libs/embree:3 ) )
- vulkan? ( media-libs/vulkan-loader[X] )
- )
- theora? ( media-libs/libtheora )
- tools? ( app-misc/ca-certificates )
- upnp? ( net-libs/miniupnpc:= )
- webp? ( media-libs/libwebp:= )"
-DEPEND="
- ${RDEPEND}
- tools? ( test? ( dev-cpp/doctest ) )"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-4.0-musl.patch
- "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
- "${FILESDIR}"/${PN}-4.0_beta8-scons.patch
-)
-
-src_prepare() {
- default
-
- sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
- sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
- sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
- -i misc/dist/linux/org.godotengine.Godot.desktop || die
-
- sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
-
- # use of builtin_ switches can be messy (see below), delete to be sure
- local unbundle=(
- doctest embree freetype graphite harfbuzz icu4c libogg
- libpng libtheora libvorbis libwebp mbedtls miniupnpc
- pcre2 recastnavigation volk wslay zlib zstd
- # certs: unused by generated header, but scons panics if not found
- # linuxbsd_headers: would /want/ to unbundle these, but it is rather
- # messy given godot has dropped all the pkg-config calls and uses
- # hardcoded paths on top -- on the plus side, removes a real need
- # to have IUSE="alsa dbus fontconfig pulseaudio speech udev" (dlopen)
- )
- rm -r "${unbundle[@]/#/thirdparty/}" || die
-
- # do symlinks to avoid too much patching with hardcoded header paths
- mkdir thirdparty/lib{vorbis,ogg} || die
- ln -s "${ESYSROOT}"/usr/include thirdparty/zstd || die
- ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
- ln -s "${ESYSROOT}"/usr/include/ogg thirdparty/libogg/ || die
- ln -s "${ESYSROOT}"/usr/include/vorbis thirdparty/libvorbis/ || die
-}
-
-src_compile() {
- local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
- local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
-
- local esconsargs=(
- AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- progress=no
- verbose=yes
-
- deprecated=$(usex deprecated)
- #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
- opengl3=$(usex gui)
- use_volk=no # unnecessary when linking directly to libvulkan
- vulkan=$(usex gui $(usex vulkan))
- x11=$(usex gui)
-
- system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
-
- # platform/*/detect.py uses builtin_* switches to check if need
- # to link with system libraries, but ignores whether the dep is
- # actually used, so "enable" deleted builtins on disabled deps
- builtin_certs=no
- builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
- builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
- builtin_freetype=no
- builtin_glslang=yes #879111
- builtin_graphite=no
- builtin_harfbuzz=no
- builtin_icu=no
- builtin_libogg=no
- builtin_libpng=no
- builtin_libtheora=$(usex !theora)
- builtin_libvorbis=no
- builtin_libwebp=$(usex !webp)
- builtin_mbedtls=no
- builtin_miniupnpc=$(usex !upnp)
- builtin_msdfgen=yes # not wired for unbundling nor packaged
- builtin_pcre2=no
- builtin_recast=no
- builtin_rvo2=yes # bundled copy has godot-specific changes
- builtin_squish=yes # ^ likewise, may not be safe to unbundle
- builtin_wslay=no
- builtin_xatlas=yes # not wired for unbundling nor packaged
- builtin_zlib=no
- builtin_zstd=no
- # (more is bundled in third_party/ but they lack builtin_* switches)
-
- # modules with optional dependencies, "possible" to disable more but
- # gets messy and breaks all sorts of features (expected enabled)
- module_gridmap_enabled=$(usex deprecated) # fails without deprecated
- module_mono_enabled=no # unhandled
- # note raycast is only enabled on amd64+arm64, see raycast/config.py
- module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
- module_theora_enabled=$(usex theora)
- module_upnp_enabled=$(usex upnp)
- module_webp_enabled=$(usex webp)
-
- # let *FLAGS handle these, e.g. can pass -flto as-is
- debug_symbols=no
- lto=none
- optimize=custom
- use_static_cpp=no
- )
-
- if use runner && use tools; then
- # build alternate faster + ~60% smaller binary for running
- # games or servers without game development debug paths
- escons extra_suffix=runner target=template_release "${esconsargs[@]}"
- fi
-
- esconsargs+=(
- target=$(usex tools editor template_$(usex debug{,} release))
- dev_build=$(usex debug)
-
- # harmless but note this bakes in --test in the final binary
- tests=$(usex tools $(usex test))
- )
-
- escons extra_suffix=main "${esconsargs[@]}"
-}
-
-src_test() {
- xdg_environment_reset
- bin/godot*.main --headless --test || die
-}
-
-src_install() {
- local s=godot${SLOT}
-
- newbin bin/godot*.main ${s}
- if use runner && use tools; then
- newbin bin/godot*.runner ${s}-runner
- else
- # always available, revdeps shouldn't depend on [runner]
- dosym ${s} /usr/bin/${s}-runner
- fi
-
- newman misc/dist/linux/godot.6 ${s}.6
- dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
-
- if use gui; then
- newicon icon.svg ${s}.svg
- newmenu misc/dist/linux/org.godotengine.Godot.desktop \
- org.godotengine.${s^}.desktop
-
- insinto /usr/share/metainfo
- newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
- org.godotengine.${s^}.appdata.xml
-
- insinto /usr/share/mime/application
- newins misc/dist/linux/org.godotengine.Godot.xml \
- org.godotengine.${s^}.xml
- fi
-
- newbashcomp misc/dist/shell/godot.bash-completion ${s}
- bashcomp_alias ${s}{,-runner}
-
- insinto /usr/share/fish/vendor_completions.d
- newins misc/dist/shell/godot.fish ${s}.fish
- dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
-
- insinto /usr/share/zsh/site-functions
- newins misc/dist/shell/_godot.zsh-completion _${s}
- dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- # these use bundled headers then get dlopen()'ed if available, USE=gui
- # itself could technically be a optfeature too but it'd be messy here
- if use gui; then
- optfeature "gamepad connection detection support" virtual/libudev
- optfeature "screensaver and portal desktop handling" sys-apps/dbus
- optfeature "sound support" media-libs/alsa-lib media-libs/libpulse
- fi
- optfeature "system fonts support" media-libs/fontconfig
- optfeature "text-to-speech support" app-accessibility/speech-dispatcher
-}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2023-02-22 8:45 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-02-22 8:45 UTC (permalink / raw
To: gentoo-commits
commit: 18f7a56819a8998c0e1a025f1efc23ee42a8c028
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 21 22:01:43 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Feb 22 08:44:46 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18f7a568
dev-games/godot: add 4.0_rc3
This introduces the "use_sowrap" option which allows not only to
unbundle linuxbsd_headers (dbus, fontconfig, etc..), but also
properly link with everything rather than do dlopen hacks. So we
disable it, and this brings back USE flags for these rather than
optfeatures. However need to keep an eye on it, if libraries are
not found then it silently disables features rather than fail with
the option enabled.
Can also get rid of a few workarounds (most header symlinks, icu
and recast bit in scons patch), seems upstream did some reviewing
for the unbundling options in general.
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 +
dev-games/godot/files/godot-4.0_rc3-scons.patch | 15 ++
dev-games/godot/godot-4.0_rc3.ebuild | 234 ++++++++++++++++++++++++
dev-games/godot/metadata.xml | 1 +
4 files changed, 251 insertions(+)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 27ef6eb38c2f..813045e92311 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,2 +1,3 @@
DIST godot-3.5.1-stable.tar.xz 24153448 BLAKE2B 9d61276a2d82ef4f4487ec1046b7fa58f2b3626640b2db25c1f98c3f8e2ff40eddcf943fd9ffaaf6814fbafbbe7ef1d3f642d77af953b87731cff570ac3a5473 SHA512 59e5ca88534f542562971efb83b76561705f9ca8761311f01b4453857e7ae046c17cadd0d5ca6f6f56e262b5031294a8b9ad970fa6ffc95e1a6a1e1bae48d55f
DIST godot-4.0-rc2.tar.xz 29105476 BLAKE2B be30da3909ee881ed929747d97232ad1356b15d0bdb0f5ea07fedc6de300a776ffac4e156134218322ccc4b6e2d4ae457cf53ee72a2da0df645e98fb957e773f SHA512 5d36ca7018ed2963e92a0917a6310f787ab807f47a302f11b6c09ffd60e4e98800aef6957345feb61f49a623eb1993abf601669cd7b7511a5b1d974b129b11c3
+DIST godot-4.0-rc3.tar.xz 29301840 BLAKE2B d981240f117839a05c00871b0e019c08e1f6136cea4935ae5028dbd06c16a6f34f7464309f44c1c0bebd982179cad092b4eb36529a412ccfcc27277fca5f3268 SHA512 4d5702b472e0ab52a86c7c47069ba08a8fe2c40d6b4437842c0610fe7e1d139d348ad521967ef844eb0442f78122864d97fab5a99fd21ec40e6b987c2af96c44
diff --git a/dev-games/godot/files/godot-4.0_rc3-scons.patch b/dev-games/godot/files/godot-4.0_rc3-scons.patch
new file mode 100644
index 000000000000..682e1510ac94
--- /dev/null
+++ b/dev-games/godot/files/godot-4.0_rc3-scons.patch
@@ -0,0 +1,15 @@
+--- a/SConstruct
++++ b/SConstruct
+@@ -241,2 +241,3 @@
+ opts.Add("CC", "C compiler")
++opts.Add("AR", "Archiver")
+ opts.Add("LINK", "Linker")
+@@ -569,8 +570,2 @@
+ env.Append(CCFLAGS=["-g2"])
+- else:
+- if methods.using_clang(env) and not methods.is_vanilla_clang(env):
+- # Apple Clang, its linker doesn't like -s.
+- env.Append(LINKFLAGS=["-Wl,-S", "-Wl,-x", "-Wl,-dead_strip"])
+- else:
+- env.Append(LINKFLAGS=["-s"])
+
diff --git a/dev-games/godot/godot-4.0_rc3.ebuild b/dev-games/godot/godot-4.0_rc3.ebuild
new file mode 100644
index 000000000000..584b6bf6273e
--- /dev/null
+++ b/dev-games/godot/godot-4.0_rc3.ebuild
@@ -0,0 +1,234 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
+
+MY_P="${PN}-$(ver_rs 2 -)"
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="https://downloads.tuxfamily.org/godotengine/$(ver_rs 2 /)/${MY_P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="
+ MIT
+ Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )"
+SLOT="4"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+ alsa +dbus debug deprecated +fontconfig +gui pulseaudio raycast
+ +runner speech test +theora +tools +udev +upnp +vulkan +webp"
+# tests need more figuring out, they are still somewhat new and volatile
+RESTRICT="test"
+
+# dlopen: libglvnd
+RDEPEND="
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/freetype[brotli,harfbuzz]
+ media-libs/harfbuzz:=[icu]
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libvorbis
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( sys-apps/dbus )
+ fontconfig? ( media-libs/fontconfig )
+ gui? (
+ media-libs/libglvnd
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libxkbcommon
+ tools? ( raycast? ( media-libs/embree:3 ) )
+ vulkan? ( media-libs/vulkan-loader[X] )
+ )
+ pulseaudio? ( media-libs/libpulse )
+ speech? ( app-accessibility/speech-dispatcher )
+ theora? ( media-libs/libtheora )
+ tools? ( app-misc/ca-certificates )
+ udev? ( virtual/udev )
+ upnp? ( net-libs/miniupnpc:= )
+ webp? ( media-libs/libwebp:= )"
+DEPEND="
+ ${RDEPEND}
+ gui? ( x11-base/xorg-proto )
+ tools? ( test? ( dev-cpp/doctest ) )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
+ "${FILESDIR}"/${PN}-4.0_rc2-musl.patch
+ "${FILESDIR}"/${PN}-4.0_rc2-gcc13.patch
+ "${FILESDIR}"/${PN}-4.0_rc3-scons.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ doctest embree freetype graphite harfbuzz icu4c libogg
+ libpng libtheora libvorbis libwebp linuxbsd_headers mbedtls
+ miniupnpc pcre2 recastnavigation volk wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+ ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+}
+
+src_compile() {
+ local -x GODOT_VERSION_STATUS=$(ver_cut 3-4) # for dev versions only
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ progress=no
+ verbose=yes
+
+ use_sowrap=no
+
+ alsa=$(usex alsa)
+ dbus=$(usex dbus)
+ deprecated=$(usex deprecated)
+ fontconfig=$(usex fontconfig)
+ opengl3=$(usex gui)
+ pulseaudio=$(usex pulseaudio)
+ speechd=$(usex speech)
+ udev=$(usex udev)
+ use_volk=no # unnecessary when linking directly to libvulkan
+ vulkan=$(usex gui $(usex vulkan))
+ x11=$(usex gui)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but ignores whether the dep is
+ # actually used, so "enable" deleted builtins on disabled deps
+ builtin_certs=no
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_glslang=yes #879111
+ builtin_graphite=no
+ builtin_harfbuzz=no
+ builtin_icu4c=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=no
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=$(usex !upnp)
+ builtin_msdfgen=yes # not wired for unbundling nor packaged
+ builtin_pcre2=no
+ builtin_recastnavigation=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # (more is bundled in third_party/ but they lack builtin_* switches)
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_gridmap_enabled=$(usex deprecated) # fails without deprecated
+ module_mono_enabled=no # unhandled
+ # note raycast is only enabled on amd64+arm64, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these, e.g. can pass -flto as-is
+ debug_symbols=no
+ lto=none
+ optimize=custom
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=template_release "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ target=$(usex tools editor template_$(usex debug{,} release))
+ dev_build=$(usex debug)
+
+ # harmless but note this bakes in --test in the final binary
+ tests=$(usex tools $(usex test))
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_test() {
+ xdg_environment_reset
+ bin/godot*.main --headless --test || die
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ bashcomp_alias ${s}{,-runner}
+
+ insinto /usr/share/fish/vendor_completions.d
+ newins misc/dist/shell/godot.fish ${s}.fish
+ dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/dist/shell/_godot.zsh-completion _${s}
+ dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
+}
diff --git a/dev-games/godot/metadata.xml b/dev-games/godot/metadata.xml
index 82c690208342..ad0df117f2fd 100644
--- a/dev-games/godot/metadata.xml
+++ b/dev-games/godot/metadata.xml
@@ -24,6 +24,7 @@
<flag name="deprecated">Enable support for deprecated features</flag>
<flag name="raycast">Enable the raycast Editor module using <pkg>media-libs/embree</pkg></flag>
<flag name="runner">Build an additional binary optimized for running games (only relevant with USE=tools)</flag>
+ <flag name="speech">Enable text-to-speech support</flag>
<flag name="tools">Enable the Godot Editor for game development</flag>
<flag name="vulkan">Enable support for Vulkan</flag>
<flag name="webm">Enable the WebM module</flag>
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2023-09-25 9:36 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2023-09-25 9:36 UTC (permalink / raw
To: gentoo-commits
commit: 8c10803c08df9e014aa85998421a7dec065707e3
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 25 08:32:56 2023 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Mon Sep 25 09:36:23 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c10803c
dev-games/godot: add 3.5.3
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 +
dev-games/godot/files/godot-3.5.3-gcc13.patch | 9 ++
dev-games/godot/godot-3.5.3.ebuild | 222 ++++++++++++++++++++++++++
3 files changed, 232 insertions(+)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index 0aca862b9003..8d6e161ab361 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,3 +1,4 @@
DIST godot-3.5.2-stable.tar.xz 24047432 BLAKE2B a4d600cb174b2f79cc91c583b1052db2e7e2921003ffd5a307a2484af9cc050b600e763b6016ba2df043ba5e492f0bdd13c207fd3a3d794b6602f7c574093cb0 SHA512 e9f3c8b23cd69422639fe22948fb1f5f2071dff6e013fee3c08d6d3c1f39de4dfc252d32eb395c847021c9bbc1b2fa320500140ff3e684bf00530889ba48a181
+DIST godot-3.5.3-stable.tar.xz 24072964 BLAKE2B a4c03328e3aa77d741a1c642cfd645de04084f2852e865757fc8960c4919d3b8b8571e772f44004901fdd80a967e8e21bd8c6be8b36263db7afae787dcbd3ed6 SHA512 4c008af5bb7c298d465edbe03f6ebc642f5bbbb0a4254e99d7a7a88919e1f9424b98c5dff95a55ae68d4e2e5878c7c0bb7d13a66869cb632ecb51a913f865155
DIST godot-4.0.4-stable.tar.xz 30267060 BLAKE2B 42f5f0c89edb96eb6f36c54229671f233ed0a49a769361195f9aaf807b45fe3968aeeaad204fc07e200114d852e4651f9dc8eb137c4f3aca7b8e8e1203ebcdc9 SHA512 4dadc123995d7262ffa6c5002d08611038957c59a8bd742284b9b62577de6b7182aad807db7a231180a355df0f25d10babdc914faf9287ed401152d98762bb5f
DIST godot-4.1.1-stable.tar.xz 30681136 BLAKE2B 18e6dae0428812493ecdd8d76cc99c2264873707d4abac0146a1d9b9cbffe2f678c346951a714d0d211fd380b433f910cc952e1720a2c4933febeb7d64283369 SHA512 9fc4bdff2ef3f5ad173514709591941f1dff32dd7cc54224a85691b34b6a5f1d01addc9b4f8d996bc6f774cee5c722181122a39b498b23e48e8d70629ff8ff0b
diff --git a/dev-games/godot/files/godot-3.5.3-gcc13.patch b/dev-games/godot/files/godot-3.5.3-gcc13.patch
new file mode 100644
index 000000000000..dd681b87dce5
--- /dev/null
+++ b/dev-games/godot/files/godot-3.5.3-gcc13.patch
@@ -0,0 +1,9 @@
+Issues seem(?) to only trigger when gcc13 is combined with musl.
+
+https://bugs.gentoo.org/906363
+--- a/modules/fbx/fbx_parser/FBXCommon.h
++++ b/modules/fbx/fbx_parser/FBXCommon.h
+@@ -78,2 +78,3 @@
+
++#include <cstdint>
+ #include <string>
diff --git a/dev-games/godot/godot-3.5.3.ebuild b/dev-games/godot/godot-3.5.3.ebuild
new file mode 100644
index 000000000000..52470f766d26
--- /dev/null
+++ b/dev-games/godot/godot-3.5.3.ebuild
@@ -0,0 +1,222 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+inherit bash-completion-r1 desktop python-any-r1 scons-utils toolchain-funcs xdg
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="
+ https://downloads.tuxfamily.org/godotengine/${PV}/${P}-stable.tar.xz
+ https://github.com/godotengine/godot/releases/download/${PV}-stable/${P}-stable.tar.xz
+"
+S="${WORKDIR}/${P}-stable"
+
+LICENSE="
+ MIT
+ Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( BitstreamVera OFL-1.1 )
+"
+SLOT="3"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+ +bullet debug deprecated +gui pulseaudio raycast +runner +theora
+ +tools +udev +upnp +webm +webp
+"
+
+# dlopen: alsa-lib,pulseaudio,udev
+RDEPEND="
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/alsa-lib
+ media-libs/freetype[brotli]
+ media-libs/libpng:=
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ bullet? ( sci-physics/bullet:= )
+ gui? (
+ media-libs/libglvnd
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ tools? ( raycast? ( media-libs/embree:3 ) )
+ )
+ pulseaudio? ( media-libs/libpulse )
+ theora? (
+ media-libs/libogg
+ media-libs/libtheora
+ media-libs/libvorbis
+ )
+ tools? ( app-misc/ca-certificates )
+ udev? ( virtual/udev )
+ upnp? ( net-libs/miniupnpc:= )
+ webm? (
+ media-libs/libvorbis
+ media-libs/libvpx:=
+ media-libs/opus
+ )
+ webp? ( media-libs/libwebp:= )
+"
+DEPEND="
+ ${RDEPEND}
+ gui? ( x11-base/xorg-proto )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.5-musl.patch
+ "${FILESDIR}"/${PN}-3.5-scons.patch
+ "${FILESDIR}"/${PN}-3.5.3-gcc13.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/{x11,server}/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ bullet embree freetype libogg libpng libtheora libvorbis libvpx
+ libwebp mbedtls miniupnpc opus pcre2 recastnavigation wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+}
+
+src_compile() {
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ platform=$(usex gui x11 server)
+ progress=no
+ verbose=yes
+
+ deprecated=$(usex deprecated)
+ #execinfo=$(usex !elibc_glibc) # libexecinfo is not packaged
+ minizip=yes # uses a modified bundled copy
+ pulseaudio=$(usex pulseaudio)
+ udev=$(usex udev)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but ignores whether the dep is
+ # actually used, so "enable" deleted builtins on disabled deps
+ builtin_bullet=$(usex !bullet)
+ builtin_certs=no
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_libogg=yes # unused
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=$(usex !theora $(usex !webm))
+ builtin_libvpx=$(usex !webm)
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=$(usex !upnp)
+ builtin_opus=$(usex !webm)
+ builtin_pcre2=no
+ builtin_recast=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # (more is bundled in third_party/ but they lack builtin_* switches)
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_bullet_enabled=$(usex bullet)
+ module_mono_enabled=no # unhandled
+ module_ogg_enabled=no # unused
+ module_opus_enabled=no # unused, support is gone and webm uses system's
+ # note raycast is disabled on many arches, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_vorbis_enabled=no # unused, non-theora/webm uses stb_vorbis
+ module_webm_enabled=$(usex webm)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these, e.g. can pass -flto as-is
+ debug_symbols=no
+ optimize=none
+ use_lto=no
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=release tools=no "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ # debug: debug for godot itself
+ # release_debug: debug for game development
+ # release: no debugging paths, only available with tools=no
+ target=$(usex debug{,} $(usex tools release_debug release))
+ tools=$(usex tools)
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ bashcomp_alias ${s}{,-runner}
+
+ insinto /usr/share/fish/vendor_completions.d
+ newins misc/dist/shell/godot.fish ${s}.fish
+ dosym ${s}.fish /usr/share/fish/vendor_completions.d/${s}-runner.fish
+
+ insinto /usr/share/zsh/site-functions
+ newins misc/dist/shell/_godot.zsh-completion _${s}
+ dosym _${s} /usr/share/zsh/site-functions/_${s}-runner
+}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2024-04-27 12:11 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2024-04-27 12:11 UTC (permalink / raw
To: gentoo-commits
commit: a6430ced5a7bcf96474039dd0573701fdbc68501
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 27 11:41:50 2024 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Apr 27 12:10:34 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6430ced
dev-games/godot: drop 4.2.1
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 -
| 14 --
dev-games/godot/godot-4.2.1.ebuild | 239 ---------------------
3 files changed, 254 deletions(-)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index a3f5c91f6293..d3e0adfca766 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,3 +1,2 @@
DIST godot-3.5.3-stable.tar.xz 24072964 BLAKE2B a4c03328e3aa77d741a1c642cfd645de04084f2852e865757fc8960c4919d3b8b8571e772f44004901fdd80a967e8e21bd8c6be8b36263db7afae787dcbd3ed6 SHA512 4c008af5bb7c298d465edbe03f6ebc642f5bbbb0a4254e99d7a7a88919e1f9424b98c5dff95a55ae68d4e2e5878c7c0bb7d13a66869cb632ecb51a913f865155
-DIST godot-4.2.1-stable.tar.xz 26687808 BLAKE2B 0f7d06b27e2e9174dad04d1926935a46c05d39349e73a0ed146815c21f1100be04cd772c2d6b16d96f70dbfe9a5727126b4dc782c3654c36282f39ca4df87f4d SHA512 ac09046532f5cf504bd57c867ac8fcb40b30848152cd6a95ee2a2d2c7e9cce027fdfceb66fcf1146e562cbca853a484da861c45c2a5fc0a63021d309bdf04590
DIST godot-4.2.2-stable.tar.xz 26768552 BLAKE2B e4a6040d7a1f63f841f56d74bb7b04e58f2fa26ddd8850df7f93937deb10c4af925ea2059c174d9f457222e0cddfe477498e3462bfaaf69ec8e57de8f2d43c83 SHA512 4a623063be5488957e1ede7e45b6865f6cd61bc954ac311587b9e97bed848a4083c4a7225d0a81bca285d854d33be9b07d7d0c21465c9f25b90e92b08090429c
diff --git a/dev-games/godot/files/godot-4.0_beta3-headless-header.patch b/dev-games/godot/files/godot-4.0_beta3-headless-header.patch
deleted file mode 100644
index 32475296d40a..000000000000
--- a/dev-games/godot/files/godot-4.0_beta3-headless-header.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Missing header for headless builds (quickfix, may not make much
-sense to probe renderer on headless).
-
-os_linuxbsd.cpp:249:46: error: 'RenderingServer' has not been declared
-
-Caused by: https://github.com/godotengine/godot/commit/de768afbdcf
---- a/platform/linuxbsd/os_linuxbsd.cpp
-+++ b/platform/linuxbsd/os_linuxbsd.cpp
-@@ -34,4 +34,5 @@
- #include "main/main.h"
- #include "servers/display_server.h"
-+#include "servers/rendering_server.h"
-
- #include "modules/modules_enabled.gen.h" // For regex.
diff --git a/dev-games/godot/godot-4.2.1.ebuild b/dev-games/godot/godot-4.2.1.ebuild
deleted file mode 100644
index e3e0408382ba..000000000000
--- a/dev-games/godot/godot-4.2.1.ebuild
+++ /dev/null
@@ -1,239 +0,0 @@
-# Copyright 2022-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..12} )
-inherit desktop python-any-r1 flag-o-matic scons-utils
-inherit shell-completion toolchain-funcs xdg
-
-DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
-HOMEPAGE="https://godotengine.org/"
-SRC_URI="
- https://downloads.tuxfamily.org/godotengine/${PV}/${P}-stable.tar.xz
- https://github.com/godotengine/godot/releases/download/${PV}-stable/${P}-stable.tar.xz
-"
-S=${WORKDIR}/${P}-stable
-
-LICENSE="
- MIT
- Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
- gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )
-"
-SLOT="4"
-KEYWORDS="~amd64"
-# Enable roughly same as upstream by default so it works as expected,
-# except raycast (tools-only heavy dependency), and deprecated.
-IUSE="
- alsa +dbus debug deprecated +fontconfig +gui pulseaudio raycast
- +runner speech test +theora +tools +udev +upnp +vulkan +webp
-"
-# TODO: tests still need more figuring out
-RESTRICT="test"
-
-# dlopen: libglvnd
-RDEPEND="
- app-arch/brotli:=
- app-arch/zstd:=
- dev-games/recastnavigation:=
- dev-libs/icu:=
- dev-libs/libpcre2:=[pcre32]
- media-libs/freetype[brotli,harfbuzz]
- media-libs/harfbuzz:=[icu]
- media-libs/libogg
- media-libs/libpng:=
- media-libs/libvorbis
- <net-libs/mbedtls-3:=
- net-libs/wslay
- sys-libs/zlib:=
- alsa? ( media-libs/alsa-lib )
- dbus? ( sys-apps/dbus )
- fontconfig? ( media-libs/fontconfig )
- gui? (
- media-libs/libglvnd
- x11-libs/libX11
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXi
- x11-libs/libXinerama
- x11-libs/libXrandr
- x11-libs/libXrender
- x11-libs/libxkbcommon
- tools? ( raycast? ( media-libs/embree:3 ) )
- vulkan? ( media-libs/vulkan-loader[X] )
- )
- pulseaudio? ( media-libs/libpulse )
- speech? ( app-accessibility/speech-dispatcher )
- theora? ( media-libs/libtheora )
- tools? ( app-misc/ca-certificates )
- udev? ( virtual/udev )
- upnp? ( net-libs/miniupnpc:= )
- webp? ( media-libs/libwebp:= )
-"
-DEPEND="
- ${RDEPEND}
- gui? ( x11-base/xorg-proto )
- tools? ( test? ( dev-cpp/doctest ) )
-"
-BDEPEND="virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-4.0_beta3-headless-header.patch
- "${FILESDIR}"/${PN}-4.0_rc2-musl.patch
- "${FILESDIR}"/${PN}-4.0_rc3-scons.patch
-)
-
-src_prepare() {
- default
-
- # handle slotting
- sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
- sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
- sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
- -i misc/dist/linux/org.godotengine.Godot.desktop || die
- sed -e "s/godot/&${SLOT}/g" \
- -i misc/dist/shell/{godot.bash-completion,godot.fish,_godot.zsh-completion} || die
-
- sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
-
- # use of builtin_ switches can be messy (see below), delete to be sure
- local unbundle=(
- brotli doctest embree freetype graphite harfbuzz icu4c libogg
- libpng libtheora libvorbis libwebp linuxbsd_headers mbedtls
- miniupnpc pcre2 recastnavigation volk wslay zlib zstd
- # certs: unused by generated header, but scons panics if not found
- )
- rm -r "${unbundle[@]/#/thirdparty/}" || die
-
- ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
-}
-
-src_compile() {
- local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
-
- filter-lto #921017
-
- local esconsargs=(
- AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
-
- progress=no
- verbose=yes
-
- use_sowrap=no
-
- alsa=$(usex alsa)
- dbus=$(usex dbus)
- deprecated=$(usex deprecated)
- fontconfig=$(usex fontconfig)
- opengl3=$(usex gui)
- pulseaudio=$(usex pulseaudio)
- speechd=$(usex speech)
- udev=$(usex udev)
- use_volk=no # unnecessary when linking directly to libvulkan
- vulkan=$(usex gui $(usex vulkan))
- x11=$(usex gui)
-
- system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
-
- # platform/*/detect.py uses builtin_* switches to check if need
- # to link with system libraries, but many ignore whether the dep
- # is actually used, so "enable" deleted builtins on disabled deps
- builtin_brotli=no
- builtin_certs=no
- builtin_clipper2=yes # not packaged
- builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
- builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
- builtin_freetype=no
- builtin_glslang=yes #879111 (for now, may revisit if more stable)
- builtin_graphite=no
- builtin_harfbuzz=no
- builtin_icu4c=no
- builtin_libogg=no
- builtin_libpng=no
- builtin_libtheora=$(usex !theora)
- builtin_libvorbis=no
- builtin_libwebp=$(usex !webp)
- builtin_mbedtls=no
- builtin_miniupnpc=$(usex !upnp)
- builtin_msdfgen=yes # not wired for unbundling nor packaged
- builtin_openxr=yes # not packaged
- builtin_pcre2=no
- builtin_recastnavigation=no
- builtin_rvo2=yes # bundled copy has godot-specific changes
- builtin_squish=yes # ^ likewise, may not be safe to unbundle
- builtin_wslay=no
- builtin_xatlas=yes # not wired for unbundling nor packaged
- builtin_zlib=no
- builtin_zstd=no
- # (more is bundled in third_party/ but they lack builtin_* switches)
-
- # modules with optional dependencies, "possible" to disable more but
- # gets messy and breaks all sorts of features (expected enabled)
- module_mono_enabled=no # unhandled
- # note raycast is only enabled on amd64+arm64, see raycast/config.py
- module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
- module_theora_enabled=$(usex theora)
- module_upnp_enabled=$(usex upnp)
- module_webp_enabled=$(usex webp)
-
- # let *FLAGS handle these
- debug_symbols=no
- lto=none
- optimize=custom
- use_static_cpp=no
- )
-
- if use runner && use tools; then
- # build alternate faster + ~60% smaller binary for running
- # games or servers without game development debug paths
- escons extra_suffix=runner target=template_release "${esconsargs[@]}"
- fi
-
- esconsargs+=(
- target=$(usex tools editor template_$(usex debug{,} release))
- dev_build=$(usex debug)
-
- # harmless but note this bakes in --test in the final binary
- tests=$(usex tools $(usex test))
- )
-
- escons extra_suffix=main "${esconsargs[@]}"
-}
-
-src_test() {
- xdg_environment_reset
- bin/godot*.main --headless --test || die
-}
-
-src_install() {
- local s=godot${SLOT}
-
- newbin bin/godot*.main ${s}
- if use runner && use tools; then
- newbin bin/godot*.runner ${s}-runner
- else
- # always available, revdeps shouldn't depend on [runner]
- dosym ${s} /usr/bin/${s}-runner
- fi
-
- newman misc/dist/linux/godot.6 ${s}.6
- dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
-
- if use gui; then
- newicon icon.svg ${s}.svg
- newmenu misc/dist/linux/org.godotengine.Godot.desktop \
- org.godotengine.${s^}.desktop
-
- insinto /usr/share/metainfo
- newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
- org.godotengine.${s^}.appdata.xml
-
- insinto /usr/share/mime/application
- newins misc/dist/linux/org.godotengine.Godot.xml \
- org.godotengine.${s^}.xml
- fi
-
- newbashcomp misc/dist/shell/godot.bash-completion ${s}
- newfishcomp misc/dist/shell/godot.fish ${s}.fish
- newzshcomp misc/dist/shell/_godot.zsh-completion _${s}
-}
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/
@ 2024-08-16 4:23 Ionen Wolkens
0 siblings, 0 replies; 10+ messages in thread
From: Ionen Wolkens @ 2024-08-16 4:23 UTC (permalink / raw
To: gentoo-commits
commit: 3f07a8e5f19df0684e583b9029f258f94e74ea1d
Author: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 16 00:44:38 2024 +0000
Commit: Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Fri Aug 16 04:22:47 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3f07a8e5
dev-games/godot: add 4.3
Decent odds that overlooked something given many mundane changes
were done to the build system and it makes it hard to make out the
important changes by diff'ing. Changelog is also too long to read
(really), and highlights are not aimed at packagers.
Notably adds wayland support, albeit building gui without X
doesn't work so well yet. As such not adding IUSE="X" yet.
libdecor could be optional even with USE=wayland, but felt that
it isn't worth its own USE.
Note using system miniupnpc is still broken without patching,
so leaving that alone for now.
Attempted to use mbedtls-3.x given it bundles 3.6.0, but there
is some caveats that prevent it (see ebuild comment). It still
supports 2.x, so just going to keep the upper bound for now.
Have not tested musl but the old patch should be obsolete
thanks to the new execinfo option which does the same thing
we were doing (disables crash handler).
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>
dev-games/godot/Manifest | 1 +
dev-games/godot/files/godot-4.3-scons.patch | 15 ++
dev-games/godot/godot-4.3.ebuild | 254 ++++++++++++++++++++++++++++
3 files changed, 270 insertions(+)
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest
index d3e0adfca766..8d87ae02a38c 100644
--- a/dev-games/godot/Manifest
+++ b/dev-games/godot/Manifest
@@ -1,2 +1,3 @@
DIST godot-3.5.3-stable.tar.xz 24072964 BLAKE2B a4c03328e3aa77d741a1c642cfd645de04084f2852e865757fc8960c4919d3b8b8571e772f44004901fdd80a967e8e21bd8c6be8b36263db7afae787dcbd3ed6 SHA512 4c008af5bb7c298d465edbe03f6ebc642f5bbbb0a4254e99d7a7a88919e1f9424b98c5dff95a55ae68d4e2e5878c7c0bb7d13a66869cb632ecb51a913f865155
DIST godot-4.2.2-stable.tar.xz 26768552 BLAKE2B e4a6040d7a1f63f841f56d74bb7b04e58f2fa26ddd8850df7f93937deb10c4af925ea2059c174d9f457222e0cddfe477498e3462bfaaf69ec8e57de8f2d43c83 SHA512 4a623063be5488957e1ede7e45b6865f6cd61bc954ac311587b9e97bed848a4083c4a7225d0a81bca285d854d33be9b07d7d0c21465c9f25b90e92b08090429c
+DIST godot-4.3-stable.tar.xz 29140004 BLAKE2B 0698cf6c8ba853d094c39b461efe998c57a7de0609701e46cca48b17c29eca3da29c8644aa356cff330d1d3ae88048afc2148f5389d57cdfa1dd26784e6d9a44 SHA512 6e1eaba5c3447527ce60d623f7f81cbd90633a5a1ad4c6dd469055a43c8fb9b4807fcd3bae25331294596c2418eb6c0c9db0871c3e1405ddcc7d84e29c39a45b
diff --git a/dev-games/godot/files/godot-4.3-scons.patch b/dev-games/godot/files/godot-4.3-scons.patch
new file mode 100644
index 000000000000..2451b7cf8a5f
--- /dev/null
+++ b/dev-games/godot/files/godot-4.3-scons.patch
@@ -0,0 +1,15 @@
+--- a/SConstruct
++++ b/SConstruct
+@@ -297,2 +297,3 @@
+ opts.Add("CC", "C compiler binary")
++opts.Add("AR", "Archiver")
+ opts.Add("LINK", "Linker binary")
+@@ -731,8 +732,2 @@
+ env.Append(CCFLAGS=[f"-ffile-prefix-map={project_path}=."])
+- else:
+- if methods.using_clang(env) and not methods.is_vanilla_clang(env):
+- # Apple Clang, its linker doesn't like -s.
+- env.Append(LINKFLAGS=["-Wl,-S", "-Wl,-x", "-Wl,-dead_strip"])
+- else:
+- env.Append(LINKFLAGS=["-s"])
+
diff --git a/dev-games/godot/godot-4.3.ebuild b/dev-games/godot/godot-4.3.ebuild
new file mode 100644
index 000000000000..73a8bda01e8f
--- /dev/null
+++ b/dev-games/godot/godot-4.3.ebuild
@@ -0,0 +1,254 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+inherit desktop python-any-r1 flag-o-matic scons-utils
+inherit shell-completion toolchain-funcs xdg
+
+DESCRIPTION="Multi-platform 2D and 3D game engine with a feature-rich editor"
+HOMEPAGE="https://godotengine.org/"
+SRC_URI="
+ https://downloads.tuxfamily.org/godotengine/${PV}/${P}-stable.tar.xz
+ https://github.com/godotengine/godot/releases/download/${PV}-stable/${P}-stable.tar.xz
+"
+S=${WORKDIR}/${P}-stable
+
+LICENSE="
+ MIT
+ Apache-2.0 BSD Boost-1.0 CC0-1.0 Unlicense ZLIB
+ gui? ( CC-BY-4.0 ) tools? ( OFL-1.1 )
+"
+SLOT="4"
+KEYWORDS="~amd64"
+# Enable roughly same as upstream by default so it works as expected,
+# except raycast (tools-only heavy dependency), and deprecated.
+IUSE="
+ alsa +dbus debug deprecated +fontconfig +gui pulseaudio raycast
+ +runner speech test +theora +tools +udev +upnp +vulkan wayland +webp
+"
+REQUIRED_USE="wayland? ( gui )"
+# TODO: tests still need more figuring out
+RESTRICT="test"
+
+# mbedtls: "can" use >=mbedtls-3 but the module needs updates handle
+# the new tls1.3 default among other things, and the bundled 3.x copy
+# builds it #undef MBEDTLS_SSL_PROTO_TLS1_3 + a patch or else will get
+# "ERROR: TLS handshake error: -27648" with system's on startup
+# https://github.com/godotengine/godot/commit/40fa684c181d
+# dlopen: libglvnd
+RDEPEND="
+ app-arch/brotli:=
+ app-arch/zstd:=
+ dev-games/recastnavigation:=
+ dev-libs/icu:=
+ dev-libs/libpcre2:=[pcre32]
+ media-libs/freetype[brotli,harfbuzz]
+ media-libs/harfbuzz:=[icu]
+ media-libs/libogg
+ media-libs/libpng:=
+ media-libs/libvorbis
+ <net-libs/mbedtls-3:=
+ net-libs/wslay
+ sys-libs/zlib:=
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( sys-apps/dbus )
+ fontconfig? ( media-libs/fontconfig )
+ gui? (
+ media-libs/libglvnd
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libxkbcommon
+ tools? ( raycast? ( media-libs/embree:4 ) )
+ vulkan? ( media-libs/vulkan-loader[X,wayland?] )
+ )
+ pulseaudio? ( media-libs/libpulse )
+ speech? ( app-accessibility/speech-dispatcher )
+ theora? ( media-libs/libtheora )
+ tools? ( app-misc/ca-certificates )
+ udev? ( virtual/udev )
+ wayland? (
+ dev-libs/wayland
+ gui-libs/libdecor
+ )
+ webp? ( media-libs/libwebp:= )
+"
+DEPEND="
+ ${RDEPEND}
+ gui? ( x11-base/xorg-proto )
+ tools? ( test? ( dev-cpp/doctest ) )
+"
+BDEPEND="
+ virtual/pkgconfig
+ wayland? ( dev-util/wayland-scanner )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3-scons.patch
+)
+
+src_prepare() {
+ default
+
+ # handle slotting
+ sed -i "1,5s/ godot/&${SLOT}/i" misc/dist/linux/godot.6 || die
+ sed -i "/id/s/Godot/&${SLOT}/" misc/dist/linux/org.godotengine.Godot.appdata.xml || die
+ sed -e "s/=godot/&${SLOT}/" -e "/^Name=/s/$/ ${SLOT}/" \
+ -i misc/dist/linux/org.godotengine.Godot.desktop || die
+ sed -e "s/godot/&${SLOT}/g" \
+ -i misc/dist/shell/{godot.bash-completion,godot.fish,_godot.zsh-completion} || die
+
+ sed -i "s|pkg-config |$(tc-getPKG_CONFIG) |" platform/linuxbsd/detect.py || die
+
+ # use of builtin_ switches can be messy (see below), delete to be sure
+ local unbundle=(
+ brotli doctest embree freetype graphite harfbuzz icu4c libogg
+ libpng libtheora libvorbis libwebp linuxbsd_headers mbedtls
+ pcre2 recastnavigation volk wslay zlib zstd
+ # certs: unused by generated header, but scons panics if not found
+ # miniupnpc: check if can re-add on bump, bug #934044
+ )
+ rm -r "${unbundle[@]/#/thirdparty/}" || die
+
+ ln -s "${ESYSROOT}"/usr/include/doctest thirdparty/ || die
+}
+
+src_compile() {
+ local -x BUILD_NAME=gentoo # replaces "custom_build" in version string
+
+ filter-lto #921017
+
+ local esconsargs=(
+ AR="$(tc-getAR)" CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+ progress=no
+ verbose=yes
+
+ use_sowrap=no
+
+ alsa=$(usex alsa)
+ dbus=$(usex dbus)
+ deprecated=$(usex deprecated)
+ execinfo=no # not packaged, disables crash handler if non-glibc
+ fontconfig=$(usex fontconfig)
+ opengl3=$(usex gui)
+ pulseaudio=$(usex pulseaudio)
+ speechd=$(usex speech)
+ udev=$(usex udev)
+ use_volk=no # unnecessary when linking directly to libvulkan
+ vulkan=$(usex gui $(usex vulkan))
+ wayland=$(usex wayland)
+ # TODO: retry to add optional USE=X, wayland support is new
+ # and gui build is not well wired to handle USE="-X wayland" yet
+ x11=$(usex gui)
+
+ system_certs_path="${EPREFIX}"/etc/ssl/certs/ca-certificates.crt
+
+ # platform/*/detect.py uses builtin_* switches to check if need
+ # to link with system libraries, but many ignore whether the dep
+ # is actually used, so "enable" deleted builtins on disabled deps
+ builtin_brotli=no
+ builtin_certs=no
+ builtin_clipper2=yes # not packaged
+ builtin_embree=$(usex !gui yes $(usex !tools yes $(usex !raycast)))
+ builtin_enet=yes # bundled copy is patched for IPv6+DTLS support
+ builtin_freetype=no
+ builtin_glslang=yes #879111 (for now, may revisit if more stable)
+ builtin_graphite=no
+ builtin_harfbuzz=no
+ builtin_icu4c=no
+ builtin_libogg=no
+ builtin_libpng=no
+ builtin_libtheora=$(usex !theora)
+ builtin_libvorbis=no
+ builtin_libwebp=$(usex !webp)
+ builtin_mbedtls=no
+ builtin_miniupnpc=yes #934044 (for now, should revisit)
+ builtin_msdfgen=yes # not wired for unbundling nor packaged
+ builtin_openxr=yes # not packaged
+ builtin_pcre2=no
+ builtin_recastnavigation=no
+ builtin_rvo2=yes # bundled copy has godot-specific changes
+ builtin_squish=yes # ^ likewise, may not be safe to unbundle
+ builtin_wslay=no
+ builtin_xatlas=yes # not wired for unbundling nor packaged
+ builtin_zlib=no
+ builtin_zstd=no
+ # (more is bundled in third_party/ but they lack builtin_* switches)
+
+ # modules with optional dependencies, "possible" to disable more but
+ # gets messy and breaks all sorts of features (expected enabled)
+ module_mono_enabled=no # unhandled
+ # note raycast is only enabled on amd64+arm64, see raycast/config.py
+ module_raycast_enabled=$(usex gui $(usex tools $(usex raycast)))
+ module_theora_enabled=$(usex theora)
+ module_upnp_enabled=$(usex upnp)
+ module_webp_enabled=$(usex webp)
+
+ # let *FLAGS handle these
+ debug_symbols=no
+ lto=none
+ optimize=custom
+ use_static_cpp=no
+ )
+
+ if use runner && use tools; then
+ # build alternate faster + ~60% smaller binary for running
+ # games or servers without game development debug paths
+ escons extra_suffix=runner target=template_release "${esconsargs[@]}"
+ fi
+
+ esconsargs+=(
+ target=$(usex tools editor template_$(usex debug{,} release))
+ dev_build=$(usex debug)
+
+ # harmless but note this bakes in --test in the final binary
+ tests=$(usex tools $(usex test))
+ )
+
+ escons extra_suffix=main "${esconsargs[@]}"
+}
+
+src_test() {
+ xdg_environment_reset
+ bin/godot*.main --headless --test || die
+}
+
+src_install() {
+ local s=godot${SLOT}
+
+ newbin bin/godot*.main ${s}
+ if use runner && use tools; then
+ newbin bin/godot*.runner ${s}-runner
+ else
+ # always available, revdeps shouldn't depend on [runner]
+ dosym ${s} /usr/bin/${s}-runner
+ fi
+
+ newman misc/dist/linux/godot.6 ${s}.6
+ dodoc AUTHORS.md CHANGELOG.md DONORS.md README.md
+
+ if use gui; then
+ newicon icon.svg ${s}.svg
+ newmenu misc/dist/linux/org.godotengine.Godot.desktop \
+ org.godotengine.${s^}.desktop
+
+ insinto /usr/share/metainfo
+ newins misc/dist/linux/org.godotengine.Godot.appdata.xml \
+ org.godotengine.${s^}.appdata.xml
+
+ insinto /usr/share/mime/application
+ newins misc/dist/linux/org.godotengine.Godot.xml \
+ org.godotengine.${s^}.xml
+ fi
+
+ newbashcomp misc/dist/shell/godot.bash-completion ${s}
+ newfishcomp misc/dist/shell/godot.fish ${s}.fish
+ newzshcomp misc/dist/shell/_godot.zsh-completion _${s}
+}
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-08-16 4:23 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-16 4:23 [gentoo-commits] repo/gentoo:master commit in: dev-games/godot/files/, dev-games/godot/ Ionen Wolkens
-- strict thread matches above, loose matches on Subject: below --
2024-04-27 12:11 Ionen Wolkens
2023-09-25 9:36 Ionen Wolkens
2023-02-22 8:45 Ionen Wolkens
2023-02-17 1:43 Ionen Wolkens
2023-02-13 11:46 Ionen Wolkens
2023-02-02 17:26 Ionen Wolkens
2022-12-19 7:23 Ionen Wolkens
2022-12-10 9:39 Ionen Wolkens
2022-10-15 6:02 Ionen Wolkens
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox