diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-07-07 16:17:07 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-07-07 16:17:07 +0100 |
commit | e3184eb75ff6935e35462bfd59788feb985259e1 (patch) | |
tree | 81d0ebe82168f40346d74544320814ea0942427f /dev-games/godot | |
parent | 2c9fab2a3468abc6862cb3115c9ff63aa266bf57 (diff) |
gentoo auto-resync : 07:07:2023 - 16:17:07
Diffstat (limited to 'dev-games/godot')
-rw-r--r-- | dev-games/godot/Manifest | 3 | ||||
-rw-r--r-- | dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch | 77 | ||||
-rw-r--r-- | dev-games/godot/godot-4.1.ebuild | 230 |
3 files changed, 310 insertions, 0 deletions
diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest index 99c209526563..ba791e0e8868 100644 --- a/dev-games/godot/Manifest +++ b/dev-games/godot/Manifest @@ -5,8 +5,11 @@ AUX godot-4.0.3-gcc13.patch 292 BLAKE2B 5f6af5b59779ce6848bb9552674ebf36e43a8ac7 AUX godot-4.0_beta3-headless-header.patch 498 BLAKE2B 401942c17829136aace28e34f7c9a4f843457d5a76c8b7035f40894f3d4d06936ddf3f1bcedf81584a65c0bff96e6e556d20ed8856107dd76deb173c98256964 SHA512 f83ec6b0667108b7c8f744b90944cd686de114db5694e09febf20a359a7d3fe11457b0c3279719a1281309a647e856b729354d3bed5f6d5048548b8dd259f63b AUX godot-4.0_rc2-musl.patch 878 BLAKE2B d10e22acc29e14df6b42b180ed480908c61e6a9781d81897b1b24a79de792fb967886fa7be6494440fb4e8ab69a83100d455838b986ce195dc30116638db544e SHA512 97b365952a7c1e7e4088ed71d1c98eccca1449b481d05e10fd750a6d29c7635dc6112e0e033ab1555cfe51eda8c0b805df1fbe78e9c54cea2664aed8570fa077 AUX godot-4.0_rc3-scons.patch 506 BLAKE2B 2fd1421760f082ea65febce90459f8a2d63e06e5b02b5e86e59bbacd14db78f76448ee50d0fa7c935b1a867f528b46a9b82b5bb03765d0b237e9af73d7fd14da SHA512 9ac654edc66a5a330055d1af0b706a5fa143061712146ddc02657add45d4518d96391d9e980c0a6b33d9fa966b5914a3f90a7b333f20885f0a05a7b8985fc667 +AUX godot-4.1-xkb-no-sowrap.patch 3079 BLAKE2B 0a306608389e2e8dc552e5c6d3f6e90e9c1933a833cd523be4728458ecf167558b76e91e8fe133392a485798516f0d110d9c09b4a00f9652d417a759f9ef4a34 SHA512 40e112083bdb6bcf28974a2d92fec7b677e78ee8d521e809ef4e884e57768267308a3ee970f0eb4ae530bd8fb49344ce782afa73d714bfa3db210db779c9f7a9 DIST godot-3.5.2-stable.tar.xz 24047432 BLAKE2B a4d600cb174b2f79cc91c583b1052db2e7e2921003ffd5a307a2484af9cc050b600e763b6016ba2df043ba5e492f0bdd13c207fd3a3d794b6602f7c574093cb0 SHA512 e9f3c8b23cd69422639fe22948fb1f5f2071dff6e013fee3c08d6d3c1f39de4dfc252d32eb395c847021c9bbc1b2fa320500140ff3e684bf00530889ba48a181 DIST godot-4.0.3-stable.tar.xz 30203636 BLAKE2B bfdf2f3a349d541039639fbce9d9d10ba6bfc200ae9442900709b1cb3d3c40dcf68b3de10d9ebe7211a1dfc380a5cf8954c5ed1d9a510afaeec8cee2dc4e9123 SHA512 185c3caf99dbfeffc83fa8298c801121ee58c4c6d3854127aeb3cb2128ed08ea1925229b90f08a79e3ea5e674725fe62e219226a58a17789c0e72ae8f27ed576 +DIST godot-4.1-stable.tar.xz 30679684 BLAKE2B dc088aa1496f9acd77ffeb2d35f1e0c71521e6cad4db8301626f1eb1aa9a147bc77e573ec82f84f05f38edcc2962991f45c822da9013797865ac0fd8669028ee SHA512 561473924fdfcc97f32ecdeedc3548059acf8d53701b17074ac5f880af3c95f60dbbcc594e7a9c919e4aa1067b3d362448fce2cfcfe76fe13fe63ad29a7c3bb6 EBUILD godot-3.5.2.ebuild 6571 BLAKE2B 93fc5f5c79b4ddcfc53ddc0f3ebe1d5ae1cd0e9c87b268e04085ebbdf7134ef4a2f8c9185dbb76ff43c3d08a6d92a948dd411b3a912bc966bfa54beda2b3be72 SHA512 bcb3e090d1753b5e167e5d00498d39714eeb3f91882f0d9bb4dd258ac155335337119c644cb4864a6a848101384d19036908f253525df703f6b3b035cb178d9c EBUILD godot-4.0.3.ebuild 6932 BLAKE2B 1c772a375410a6d869922a74baaf9af69c129073fbc84eee5d4ce0fdf218d84b42b13bc99663b751c4ddb1c242fd3472d88dbd9fc2ff20f013187656c49104d5 SHA512 0312b17d7eea7a42b8a5815fc467983ace1add272483b528bfd1815c192de90c86a686c59aeb39a52a2fe42cad319c09c51f95560dbeb93277a8dfc5a81830a1 +EBUILD godot-4.1.ebuild 6933 BLAKE2B 9a76cbf72c680b7a502d749a7af59ebeb6e4563b41796865e153e471c1467253ce262648bdce3b9376653363cf47c59eddcd39e7e7dfcdd0de9779783e7aae6e SHA512 35ea2b5615a8ee0932ba2defba9ae0779b3f0269fff7912d9197585fe9a5196f05a16aaaad9918287ddce528afb4db638d92fd0d44bec33a3111712977d7f319 MISC metadata.xml 1551 BLAKE2B 718ca848e6b90fad730ea413ff8d25a9c23836da1ff890d7c93d458a0b46b503a4d1b949742a4a819eb0323eb0626a3541cd35d41f809b600891fa470f565ff6 SHA512 b935ee9256ae07a8f01bc458ee41c46e25be8a38b6921cf353a20332c59b6083bd6f73e2112858827b3b7bccdb256f9122e1d9691d2a3751aba85bbb8c4ab262 diff --git a/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch b/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch new file mode 100644 index 000000000000..c4643b332a37 --- /dev/null +++ b/dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch @@ -0,0 +1,77 @@ +https://github.com/godotengine/godot/pull/79097 +From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com> +Date: Thu, 6 Jul 2023 14:05:28 +0200 +Subject: [PATCH] Linux: Fix build with `use_sowrap=no` and various + warnings/errors + +--- a/platform/linuxbsd/joypad_linux.cpp ++++ b/platform/linuxbsd/joypad_linux.cpp +@@ -98,19 +98,20 @@ static bool detect_sandbox() { + + JoypadLinux::JoypadLinux(Input *in) { + #ifdef UDEV_ENABLED +-#ifdef SOWRAP_ENABLED +-#ifdef DEBUG_ENABLED +- int dylibloader_verbose = 1; +-#else +- int dylibloader_verbose = 0; +-#endif + if (detect_sandbox()) { + // Linux binaries in sandboxes / containers need special handling because + // libudev doesn't work there. So we need to fallback to manual parsing + // of /dev/input in such case. + use_udev = false; + print_verbose("JoypadLinux: udev enabled, but detected incompatible sandboxed mode. Falling back to /dev/input to detect joypads."); +- } else { ++ } ++#ifdef SOWRAP_ENABLED ++ else { ++#ifdef DEBUG_ENABLED ++ int dylibloader_verbose = 1; ++#else ++ int dylibloader_verbose = 0; ++#endif + use_udev = initialize_libudev(dylibloader_verbose) == 0; + if (use_udev) { + if (!udev_new || !udev_unref || !udev_enumerate_new || !udev_enumerate_add_match_subsystem || !udev_enumerate_scan_devices || !udev_enumerate_get_list_entry || !udev_list_entry_get_next || !udev_list_entry_get_name || !udev_device_new_from_syspath || !udev_device_get_devnode || !udev_device_get_action || !udev_device_unref || !udev_enumerate_unref || !udev_monitor_new_from_netlink || !udev_monitor_filter_add_match_subsystem_devtype || !udev_monitor_enable_receiving || !udev_monitor_get_fd || !udev_monitor_receive_device || !udev_monitor_unref) { +@@ -124,10 +125,11 @@ JoypadLinux::JoypadLinux(Input *in) { + print_verbose("JoypadLinux: udev enabled, but couldn't be loaded. Falling back to /dev/input to detect joypads."); + } + } +-#endif ++#endif // SOWRAP_ENABLED + #else + print_verbose("JoypadLinux: udev disabled, parsing /dev/input to detect joypads."); +-#endif ++#endif // UDEV_ENABLED ++ + input = in; + monitor_joypads_thread.start(monitor_joypads_thread_func, this); + joypad_events_thread.start(joypad_events_thread_func, this); +--- a/platform/linuxbsd/x11/display_server_x11.cpp ++++ b/platform/linuxbsd/x11/display_server_x11.cpp +@@ -5449,7 +5449,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode + } + #else + #ifdef XKB_ENABLED +- xkb_loaded = true; ++ bool xkb_loaded = true; + #endif + #endif + +@@ -5476,6 +5476,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode + + r_error = OK; + ++#ifdef SOWRAP_ENABLED + { + if (!XcursorImageCreate || !XcursorImageLoadCursor || !XcursorImageDestroy || !XcursorGetDefaultSize || !XcursorGetTheme || !XcursorLibraryLoadImage) { + // There's no API to check version, check if functions are available instead. +@@ -5484,6 +5485,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode + return; + } + } ++#endif + + for (int i = 0; i < CURSOR_MAX; i++) { + cursors[i] = None; diff --git a/dev-games/godot/godot-4.1.ebuild b/dev-games/godot/godot-4.1.ebuild new file mode 100644 index 000000000000..6e716de56c83 --- /dev/null +++ b/dev-games/godot/godot-4.1.ebuild @@ -0,0 +1,230 @@ +# 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 + +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" +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/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 + "${FILESDIR}"/${P}-xkb-no-sowrap.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 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 (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_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, 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 +} |