Index | Thread | Search

From:
Thomas Frohwein <tfrohwein@fastmail.com>
Subject:
godot/pack3: update to Godot 4.7
To:
ports@openbsd.org
Cc:
op@omarpolo.com
Date:
Thu, 25 Jun 2026 17:16:36 -0700

Download raw body.

Thread
  • Thomas Frohwein:

    godot/pack3: update to Godot 4.7

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();
  			}