Hi, Godot 4.7 just released [1] and it builds with the diff below. This disables the godotsteam module as there is a new issue with building custom modules [2]. This should only affect those who run commercial games that need Godotsteam present. I am hoping the issue will soon be resolved, which is why I left the godotsteam distfile (DIST_TUPLE) in place (otherwise would have to remove all the patches, too). Let's give it a little time to be sorted out.
I tested it with brief use of the godot-editor and ran Road to Vostok in it. I'm planning to update this soon if I don't hear back. [1] https://godotengine.org/releases/4.7/ [2] https://github.com/godotengine/godot/issues/120622 Index: pack3/Makefile =================================================================== RCS file: /cvs/ports/games/godot/pack3/Makefile,v diff -u -p -r1.4 Makefile --- pack3/Makefile 28 May 2026 01:14:21 -0000 1.4 +++ pack3/Makefile 25 Jun 2026 20:46:00 -0000 @@ -6,7 +6,7 @@ ONLY_FOR_ARCHS = ${LP64_ARCHS} COMMENT-main = 2D and 3D game engine COMMENT-editor= 2D and 3D game engine (with the editor) -VERSION = 4.6.3 +VERSION = 4.7 PKGNAME = godot-${VERSION} DIST_TUPLE += codeberg godotsteam godotsteam v4.3 godotsteam @@ -17,12 +17,17 @@ WANTLIB-main += ${COMPILER_LIBCXX} SDL3 WANTLIB-main += Xrandr Xrender c dbus-1 enet fontconfig freetype glib-2.0 WANTLIB-main += glslang glslang-default-resource-limits intl m mbedcrypto WANTLIB-main += mbedtls mbedx509 miniupnpc ogg pcre2-32 sndio speechd -WANTLIB-main += steam_api theora theoradec vorbis vorbisfile webp wslay +WANTLIB-main += theora theoradec vorbis vorbisfile webp wslay WANTLIB-main += xkbcommon zstd WANTLIB-editor = ${WANTLIB-main} theoraenc vorbisenc # Building with module_mono_enabled requires msbuild and to fix the # sharedlib_ext in modules/mono/config.py to '.so.1.0' + +# 4.7 has bug with compiling custom modules: +# https://github.com/godotengine/godot/issues/120622 +# Therefore, the current line is not in MODSCONS_FLAGS until solved +# custom_modules=${WRKSRC}/godotsteam \ MODSCONS_FLAGS = cflags="${CFLAGS}" \ cxxflags="${CXXFLAGS} -Wno-deprecated-register" \ builtin_certs=no \ @@ -38,7 +43,6 @@ MODSCONS_FLAGS = cflags="${CFLAGS}" \ builtin_sdl=no \ builtin_wslay=no \ builtin_zstd=no \ - custom_modules=${WRKSRC}/godotsteam \ disable_path_overrides=no \ use_sowrap=no \ wayland=no @@ -77,7 +81,6 @@ LIB_DEPENDS = archivers/zstd \ devel/gettext,-runtime \ devel/pcre2 \ devel/sdl3 \ - games/goldberg_emulator \ graphics/glslang \ graphics/libwebp \ multimedia/libtheora \ @@ -117,7 +120,7 @@ do-install: ${INSTALL_MAN} ${WRKSRC}/misc/dist/linux/godot.6 \ ${PREFIX}/man/man6/godot.6 ${INSTALL_DATA_DIR} ${PREFIX}/share/pixmaps - ${INSTALL_DATA} ${WRKSRC}/icon.svg \ + ${INSTALL_DATA} ${WRKSRC}/misc/logo/icon.svg \ ${PREFIX}/share/pixmaps/godot.svg ${INSTALL_DATA_DIR} ${PREFIX}/share/applications ${INSTALL_DATA} ${WRKSRC}/misc/dist/linux/*.desktop \ Index: pack3/distinfo =================================================================== RCS file: /cvs/ports/games/godot/pack3/distinfo,v diff -u -p -r1.3 distinfo --- pack3/distinfo 28 May 2026 01:14:21 -0000 1.3 +++ pack3/distinfo 25 Jun 2026 20:46:00 -0000 @@ -1,4 +1,4 @@ -SHA256 (godot-4.6.3-stable.tar.xz) = ImECjA38EODPSAClsuWlfqJB9yllFiMn9XZNU2pppGo= +SHA256 (godot-4.7-stable.tar.xz) = 56y2sn1r7iUl/aoSZgxgKwNMJQlOiiZ5M0YB2IeKngY= SHA256 (godotsteam-godotsteam-v4.3.tar.gz) = h0L2bJ5YrUf7wTAmoMqJSSCR8aVM7HIBaZvmicyUs/Q= -SIZE (godot-4.6.3-stable.tar.xz) = 44471880 +SIZE (godot-4.7-stable.tar.xz) = 46684188 SIZE (godotsteam-godotsteam-v4.3.tar.gz) = 252202 Index: pack3/patches/patch-SConstruct =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-SConstruct,v diff -u -p -r1.2 patch-SConstruct --- pack3/patches/patch-SConstruct 28 May 2026 01:14:21 -0000 1.2 +++ pack3/patches/patch-SConstruct 25 Jun 2026 20:46:00 -0000 @@ -6,7 +6,7 @@ Remove architecture from the program nam Index: SConstruct --- SConstruct.orig +++ SConstruct -@@ -826,7 +826,7 @@ if env.msvc: +@@ -851,7 +851,7 @@ if env.msvc: env.AppendUnique(CPPDEFINES=["SIZE_EXTRA"]) elif env["optimize"] == "debug" or env["optimize"] == "none": env["OPTIMIZELEVEL"] = "/Od" @@ -15,7 +15,7 @@ Index: SConstruct if env["debug_symbols"]: if env["platform"] == "windows": if methods.using_clang(env): -@@ -1021,7 +1021,6 @@ if env.dev_build: +@@ -1043,7 +1043,6 @@ if env.dev_build: if env["precision"] == "double": suffix += ".double" Index: pack3/patches/patch-drivers_unix_os_unix_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-drivers_unix_os_unix_cpp,v diff -u -p -r1.1.1.1 patch-drivers_unix_os_unix_cpp --- pack3/patches/patch-drivers_unix_os_unix_cpp 4 Mar 2026 05:35:04 -0000 1.1.1.1 +++ pack3/patches/patch-drivers_unix_os_unix_cpp 25 Jun 2026 20:46:00 -0000 @@ -4,7 +4,7 @@ fix get_executable_path(); backport of Index: drivers/unix/os_unix.cpp --- drivers/unix/os_unix.cpp.orig +++ drivers/unix/os_unix.cpp -@@ -1156,12 +1156,6 @@ String OS_Unix::get_executable_path() const { +@@ -1158,12 +1158,6 @@ String OS_Unix::get_executable_path() const { return OS::get_executable_path(); } return b; @@ -17,7 +17,7 @@ Index: drivers/unix/os_unix.cpp #elif defined(__NetBSD__) int mib[4] = { CTL_KERN, KERN_PROC_ARGS, -1, KERN_PROC_PATHNAME }; char buf[MAXPATHLEN]; -@@ -1203,8 +1197,43 @@ String OS_Unix::get_executable_path() const { +@@ -1205,8 +1199,43 @@ String OS_Unix::get_executable_path() const { return path; #else Index: pack3/patches/patch-methods_py =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-methods_py,v diff -u -p -r1.1.1.1 patch-methods_py --- pack3/patches/patch-methods_py 4 Mar 2026 05:35:04 -0000 1.1.1.1 +++ pack3/patches/patch-methods_py 25 Jun 2026 20:46:00 -0000 @@ -3,7 +3,7 @@ drop hardcoded -O3 Index: methods.py --- methods.py.orig +++ methods.py -@@ -126,8 +126,6 @@ def force_optimization_on_debug(self): +@@ -125,8 +125,6 @@ def force_optimization_on_debug(self): return elif self.msvc: self["OPTIMIZELEVEL"] = "/O2" Index: pack3/patches/patch-platform_linuxbsd_detect_py =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_detect_py,v diff -u -p -r1.1.1.1 patch-platform_linuxbsd_detect_py --- pack3/patches/patch-platform_linuxbsd_detect_py 4 Mar 2026 05:35:04 -0000 1.1.1.1 +++ pack3/patches/patch-platform_linuxbsd_detect_py 25 Jun 2026 20:46:00 -0000 @@ -3,7 +3,7 @@ add sndio driver Index: platform/linuxbsd/detect.py --- platform/linuxbsd/detect.py.orig +++ platform/linuxbsd/detect.py -@@ -42,6 +42,7 @@ def get_opts(): +@@ -58,6 +58,7 @@ def get_opts(): BoolVariable("use_sowrap", "Dynamically load system libraries", True), BoolVariable("alsa", "Use ALSA", True), BoolVariable("pulseaudio", "Use PulseAudio", True), @@ -11,7 +11,7 @@ Index: platform/linuxbsd/detect.py BoolVariable("dbus", "Use D-Bus to handle screensaver and portal desktop settings", True), BoolVariable("speechd", "Use Speech Dispatcher for Text-to-Speech support", True), BoolVariable("fontconfig", "Use fontconfig for system fonts support", True), -@@ -348,6 +349,12 @@ def configure(env: "SConsEnvironment"): +@@ -369,6 +370,12 @@ def configure(env: "SConsEnvironment"): env["pulseaudio"] = False else: env.Append(CPPDEFINES=["PULSEAUDIO_ENABLED", "_REENTRANT"]) Index: pack3/patches/patch-platform_linuxbsd_os_linuxbsd_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_os_linuxbsd_cpp,v diff -u -p -r1.2 patch-platform_linuxbsd_os_linuxbsd_cpp --- pack3/patches/patch-platform_linuxbsd_os_linuxbsd_cpp 18 Apr 2026 22:08:09 -0000 1.2 +++ pack3/patches/patch-platform_linuxbsd_os_linuxbsd_cpp 25 Jun 2026 20:46:00 -0000 @@ -3,7 +3,7 @@ add sndio driver Index: platform/linuxbsd/os_linuxbsd.cpp --- platform/linuxbsd/os_linuxbsd.cpp.orig +++ platform/linuxbsd/os_linuxbsd.cpp -@@ -1285,6 +1285,10 @@ bool OS_LinuxBSD::_test_create_rendering_device_and_gl +@@ -1296,6 +1296,10 @@ bool OS_LinuxBSD::_test_create_rendering_device_and_gl OS_LinuxBSD::OS_LinuxBSD() { main_loop = nullptr; Index: pack3/patches/patch-platform_linuxbsd_os_linuxbsd_h =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_os_linuxbsd_h,v diff -u -p -r1.1.1.1 patch-platform_linuxbsd_os_linuxbsd_h --- pack3/patches/patch-platform_linuxbsd_os_linuxbsd_h 4 Mar 2026 05:35:04 -0000 1.1.1.1 +++ pack3/patches/patch-platform_linuxbsd_os_linuxbsd_h 25 Jun 2026 20:46:00 -0000 @@ -9,9 +9,9 @@ Index: platform/linuxbsd/os_linuxbsd.h #include "drivers/pulseaudio/audio_driver_pulseaudio.h" +#include "drivers/sndio/audio_driver_sndio.h" #include "drivers/unix/os_unix.h" - #include "servers/audio/audio_server.h" -@@ -75,6 +76,10 @@ class OS_LinuxBSD : public OS_Unix { + class JoypadSDL; +@@ -71,6 +72,10 @@ class OS_LinuxBSD : public OS_Unix { #ifdef PULSEAUDIO_ENABLED AudioDriverPulseAudio driver_pulseaudio; Index: pack3/patches/patch-platform_linuxbsd_wayland_detect_prime_egl_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_wayland_detect_prime_egl_cpp,v diff -u -p -r1.1 patch-platform_linuxbsd_wayland_detect_prime_egl_cpp --- pack3/patches/patch-platform_linuxbsd_wayland_detect_prime_egl_cpp 21 Mar 2026 20:27:26 -0000 1.1 +++ pack3/patches/patch-platform_linuxbsd_wayland_detect_prime_egl_cpp 25 Jun 2026 20:46:00 -0000 @@ -4,7 +4,7 @@ we don't support DRI_PRIME as of March 2 Index: platform/linuxbsd/wayland/detect_prime_egl.cpp --- platform/linuxbsd/wayland/detect_prime_egl.cpp.orig +++ platform/linuxbsd/wayland/detect_prime_egl.cpp -@@ -165,7 +165,7 @@ int DetectPrimeEGL::detect_prime(EGLenum p_platform_en +@@ -174,7 +174,7 @@ int DetectPrimeEGL::detect_prime(EGLenum p_platform_en close(fdset[0]); Index: pack3/patches/patch-platform_linuxbsd_wayland_display_server_wayland_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_wayland_display_server_wayland_cpp,v diff -u -p -r1.2 patch-platform_linuxbsd_wayland_display_server_wayland_cpp --- pack3/patches/patch-platform_linuxbsd_wayland_display_server_wayland_cpp 18 Apr 2026 22:08:09 -0000 1.2 +++ pack3/patches/patch-platform_linuxbsd_wayland_display_server_wayland_cpp 25 Jun 2026 20:46:00 -0000 @@ -4,7 +4,7 @@ we don't support DRI_PRIME as of March 2 Index: platform/linuxbsd/wayland/display_server_wayland.cpp --- platform/linuxbsd/wayland/display_server_wayland.cpp.orig +++ platform/linuxbsd/wayland/display_server_wayland.cpp -@@ -2177,11 +2177,13 @@ DisplayServerWayland::DisplayServerWayland(const Strin +@@ -2410,11 +2410,13 @@ DisplayServerWayland::DisplayServerWayland(const Strin prime_idx = DetectPrimeEGL::detect_prime(EGL_PLATFORM_WAYLAND_KHR); } Index: pack3/patches/patch-platform_linuxbsd_x11_detect_prime_x11_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_x11_detect_prime_x11_cpp,v diff -u -p -r1.2 patch-platform_linuxbsd_x11_detect_prime_x11_cpp --- pack3/patches/patch-platform_linuxbsd_x11_detect_prime_x11_cpp 21 Mar 2026 20:27:26 -0000 1.2 +++ pack3/patches/patch-platform_linuxbsd_x11_detect_prime_x11_cpp 25 Jun 2026 20:46:00 -0000 @@ -4,7 +4,7 @@ we don't support DRI_PRIME as of March 2 Index: platform/linuxbsd/x11/detect_prime_x11.cpp --- platform/linuxbsd/x11/detect_prime_x11.cpp.orig +++ platform/linuxbsd/x11/detect_prime_x11.cpp -@@ -59,6 +59,8 @@ typedef GLXContext (*GLXCREATECONTEXTATTRIBSARBPROC)(D +@@ -62,6 +62,8 @@ typedef GLXContext (*GLXCREATECONTEXTATTRIBSARBPROC)(D // To prevent shadowing warnings #undef glGetString @@ -13,7 +13,7 @@ Index: platform/linuxbsd/x11/detect_prim int silent_error_handler(Display *display, XErrorEvent *error) { static char message[1024]; XGetErrorText(display, error->error_code, message, sizeof(message)); -@@ -191,9 +193,11 @@ int DetectPrimeX11::detect_prime() { +@@ -194,9 +196,11 @@ int DetectPrimeX11::detect_prime() { close(fdset[0]); Index: pack3/patches/patch-platform_linuxbsd_x11_display_server_x11_cpp =================================================================== RCS file: /cvs/ports/games/godot/pack3/patches/patch-platform_linuxbsd_x11_display_server_x11_cpp,v diff -u -p -r1.2 patch-platform_linuxbsd_x11_display_server_x11_cpp --- pack3/patches/patch-platform_linuxbsd_x11_display_server_x11_cpp 21 Mar 2026 20:27:26 -0000 1.2 +++ pack3/patches/patch-platform_linuxbsd_x11_display_server_x11_cpp 25 Jun 2026 20:46:00 -0000 @@ -5,7 +5,7 @@ we don't support DRI_PRIME as of March 2 Index: platform/linuxbsd/x11/display_server_x11.cpp --- platform/linuxbsd/x11/display_server_x11.cpp.orig +++ platform/linuxbsd/x11/display_server_x11.cpp -@@ -6943,14 +6943,14 @@ DisplayServerX11::DisplayServerX11(const String &p_ren +@@ -7031,14 +7031,14 @@ DisplayServerX11::DisplayServerX11(const String &p_ren int xrandr_minor = 0; int event_base, error_base; xrandr_ext_ok = XRRQueryExtension(x11_display, &event_base, &error_base); @@ -22,7 +22,7 @@ Index: platform/linuxbsd/x11/display_ser } } -@@ -7106,11 +7106,13 @@ DisplayServerX11::DisplayServerX11(const String &p_ren +@@ -7184,11 +7184,13 @@ DisplayServerX11::DisplayServerX11(const String &p_ren use_prime = DetectPrimeX11::detect_prime(); }
