From ff8e8aed00ded4a725808afd21213888fcdc6f6f Mon Sep 17 00:00:00 2001 From: Ionen Wolkens Date: Fri, 7 Jul 2023 05:16:08 -0400 Subject: [PATCH] dev-games/godot: add 4.1 Signed-off-by: Ionen Wolkens --- dev-games/godot/Manifest | 1 + .../godot/files/godot-4.1-xkb-no-sowrap.patch | 77 ++++++ dev-games/godot/godot-4.1.ebuild | 230 ++++++++++++++++++ 3 files changed, 308 insertions(+) create mode 100644 dev-games/godot/files/godot-4.1-xkb-no-sowrap.patch create mode 100644 dev-games/godot/godot-4.1.ebuild diff --git a/dev-games/godot/Manifest b/dev-games/godot/Manifest index 97916163295d8..3a3dc3ac025f7 100644 --- a/dev-games/godot/Manifest +++ b/dev-games/godot/Manifest @@ -1,2 +1,3 @@ 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 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 0000000000000..c4643b332a37e --- /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?= +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 0000000000000..6e716de56c837 --- /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 +