From 7484a5862c13690badaf3922eb744ab4dd2b485a Mon Sep 17 00:00:00 2001 From: Sergei Khrykov Date: Thu, 8 Jan 2026 15:58:39 +0100 Subject: [PATCH 1/3] [funexpected] Update engine to build on newer macOS --- .github/workflows/fnx.yaml | 20 +++++++++---------- platform/osx/detect.py | 2 -- thirdparty/embree/kernels/geometry/pointi.h | 2 +- .../embree/kernels/subdiv/bezier_curve.h | 2 +- thirdparty/freetype/src/gzip/ftzconf.h | 2 -- thirdparty/libpng/pngpriv.h | 12 +---------- thirdparty/zlib/zutil.h | 13 +----------- 7 files changed, 14 insertions(+), 39 deletions(-) diff --git a/.github/workflows/fnx.yaml b/.github/workflows/fnx.yaml index 205a469dff5..ca70a8178cc 100644 --- a/.github/workflows/fnx.yaml +++ b/.github/workflows/fnx.yaml @@ -9,7 +9,7 @@ on: [push] env: GODOT_BASE_BRANCH: 3.2 - ANDROID_NDK_VERSION: 27.3.13750724 + ANDROID_NDK_VERSION: 21.4.7075529 jobs: build: @@ -19,13 +19,13 @@ jobs: fail-fast: true matrix: include: - - os: macos-13 + - os: macos-15-intel token: osx.editor build: scons -j2 platform=osx tools=yes target=release_debug verbose=yes - - os: macos-13 + - os: macos-15-intel token: osx.editor.headless build: scons -j2 platform=server tools=yes target=release_debug verbose=yes - - os: macos-13 + - os: macos-15-intel token: ios.release build: | mkdir iphone @@ -43,8 +43,8 @@ jobs: - os: ubuntu-latest token: android.template.debug build: | - scons platform=android -j 8 target=debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 - scons platform=android -j 8 target=debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 + scons platform=android -j 8 target=debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no + scons platform=android -j 8 target=debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no cd platform/android/java/ ./gradlew generateGodotTemplates # Remove files that will not be needed for export @@ -60,9 +60,9 @@ jobs: - os: ubuntu-latest token: android.template.release build: | - scons platform=android -j 8 target=release_debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 - scons platform=android -j 8 target=release_debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 - scons platform=android -j 8 target=release_debug android_arch=armv7 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 module_opus_enabled=no + scons platform=android -j 8 target=release_debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no + scons platform=android -j 8 target=release_debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no + scons platform=android -j 8 target=release_debug android_arch=armv7 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no cd platform/android/java/ ./gradlew generateGodotTemplates # Remove files that will not be needed for export @@ -103,7 +103,7 @@ jobs: sudo apt-get update export SKIP_JDK_VERSION_CHECK=true - - name: Set up Java 21 + - name: Set up Java 8 if: ${{startsWith(matrix.token, 'android.template')}} uses: actions/setup-java@v4 with: diff --git a/platform/osx/detect.py b/platform/osx/detect.py index 409c0e11957..71f00127d69 100644 --- a/platform/osx/detect.py +++ b/platform/osx/detect.py @@ -176,8 +176,6 @@ def configure(env): "-framework", "OpenGL", "-framework", - "AGL", - "-framework", "AudioUnit", "-framework", "CoreAudio", diff --git a/thirdparty/embree/kernels/geometry/pointi.h b/thirdparty/embree/kernels/geometry/pointi.h index 4ba298e86b6..2fa2d4bd29f 100644 --- a/thirdparty/embree/kernels/geometry/pointi.h +++ b/thirdparty/embree/kernels/geometry/pointi.h @@ -217,7 +217,7 @@ namespace embree /*! output operator */ friend __forceinline embree_ostream operator<<(embree_ostream cout, const PointMi& line) { - return cout << "Line" << M << "i {" << line.v0 << ", " << line.geomID() << ", " << line.primID() << "}"; + return cout << "Line" << M << "i {" << ", " << line.geomID() << ", " << line.primID() << "}"; } public: diff --git a/thirdparty/embree/kernels/subdiv/bezier_curve.h b/thirdparty/embree/kernels/subdiv/bezier_curve.h index c0e78820f8e..444d49359f2 100644 --- a/thirdparty/embree/kernels/subdiv/bezier_curve.h +++ b/thirdparty/embree/kernels/subdiv/bezier_curve.h @@ -134,7 +134,7 @@ namespace embree } friend embree_ostream operator<<(embree_ostream cout, const QuadraticBezierCurve& a) { - return cout << "QuadraticBezierCurve ( (" << a.u.lower << ", " << a.u.upper << "), " << a.v0 << ", " << a.v1 << ", " << a.v2 << ")"; + return cout << "QuadraticBezierCurve ( (), " << a.v0 << ", " << a.v1 << ", " << a.v2 << ")"; } }; diff --git a/thirdparty/freetype/src/gzip/ftzconf.h b/thirdparty/freetype/src/gzip/ftzconf.h index 3abf0ba03b0..812766e718b 100644 --- a/thirdparty/freetype/src/gzip/ftzconf.h +++ b/thirdparty/freetype/src/gzip/ftzconf.h @@ -215,9 +215,7 @@ # define FAR #endif -#if !defined(MACOS) && !defined(TARGET_OS_MAC) typedef unsigned char Byte; /* 8 bits */ -#endif typedef unsigned int uInt; /* 16 bits or more */ typedef unsigned long uLong; /* 32 bits or more */ diff --git a/thirdparty/libpng/pngpriv.h b/thirdparty/libpng/pngpriv.h index 57e1bf989ba..78fd2ff1724 100644 --- a/thirdparty/libpng/pngpriv.h +++ b/thirdparty/libpng/pngpriv.h @@ -517,18 +517,8 @@ */ # include -# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ - defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) - /* We need to check that hasn't already been included earlier - * as it seems it doesn't agree with , yet we should really use - * if possible. - */ -# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) -# include -# endif -# else + # include -# endif # if defined(_AMIGA) && defined(__SASC) && defined(_M68881) /* Amiga SAS/C: We must include builtin FPU functions when compiling using * MATH=68881 diff --git a/thirdparty/zlib/zutil.h b/thirdparty/zlib/zutil.h index b079ea6a80f..9bb43fbf404 100644 --- a/thirdparty/zlib/zutil.h +++ b/thirdparty/zlib/zutil.h @@ -130,18 +130,7 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ # endif #endif -#if defined(MACOS) || defined(TARGET_OS_MAC) -# define OS_CODE 7 -# ifndef Z_SOLO -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ -# else -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -# endif -# endif -#endif + #ifdef __acorn # define OS_CODE 13 From d0b2b265d76b09fa80113025a8e807f0a0fc26f0 Mon Sep 17 00:00:00 2001 From: Sergei Khrykov Date: Thu, 8 Jan 2026 16:00:45 +0100 Subject: [PATCH 2/3] clean up --- .github/workflows/fnx.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/fnx.yaml b/.github/workflows/fnx.yaml index ca70a8178cc..4bb10c3ebf9 100644 --- a/.github/workflows/fnx.yaml +++ b/.github/workflows/fnx.yaml @@ -9,7 +9,7 @@ on: [push] env: GODOT_BASE_BRANCH: 3.2 - ANDROID_NDK_VERSION: 21.4.7075529 + ANDROID_NDK_VERSION: 27.3.13750724 jobs: build: @@ -43,8 +43,8 @@ jobs: - os: ubuntu-latest token: android.template.debug build: | - scons platform=android -j 8 target=debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no - scons platform=android -j 8 target=debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no + scons platform=android -j 8 target=debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 + scons platform=android -j 8 target=debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 cd platform/android/java/ ./gradlew generateGodotTemplates # Remove files that will not be needed for export @@ -60,9 +60,9 @@ jobs: - os: ubuntu-latest token: android.template.release build: | - scons platform=android -j 8 target=release_debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no - scons platform=android -j 8 target=release_debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no - scons platform=android -j 8 target=release_debug android_arch=armv7 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no + scons platform=android -j 8 target=release_debug android_arch=arm64v8 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 + scons platform=android -j 8 target=release_debug android_arch=x86_64 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 + scons platform=android -j 8 target=release_debug android_arch=armv7 tools=no module_firebase_enabled=no module_bullet_enabled=no module_websocket_enabled=no game_center=no builtin_pcre2_with_jit=no builtin_libvpx=no module_webm_enabled=no ndk_platform=android-21 module_opus_enabled=no cd platform/android/java/ ./gradlew generateGodotTemplates # Remove files that will not be needed for export @@ -103,7 +103,7 @@ jobs: sudo apt-get update export SKIP_JDK_VERSION_CHECK=true - - name: Set up Java 8 + - name: Set up Java 21 if: ${{startsWith(matrix.token, 'android.template')}} uses: actions/setup-java@v4 with: From a1dfffd96feb034f6a2c1a833090247fcb31c094 Mon Sep 17 00:00:00 2001 From: Sergei Khrykov Date: Mon, 12 Jan 2026 20:14:41 +0100 Subject: [PATCH 3/3] [funexpected] Try safer code for strings --- core/project_settings.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 92081fb7986..4594a2f4758 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -51,11 +51,12 @@ ProjectSettings *ProjectSettings::get_singleton() { } String ProjectSettings::get_resource_path() const { - + _THREAD_SAFE_METHOD_ return resource_path; }; String ProjectSettings::localize_path(const String &p_path) const { + _THREAD_SAFE_METHOD_ if (resource_path == "") return p_path; //not initialized yet @@ -127,6 +128,7 @@ void ProjectSettings::set_restart_if_changed(const String &p_name, bool p_restar } String ProjectSettings::globalize_path(const String &p_path) const { + _THREAD_SAFE_METHOD_ if (p_path.begins_with("res://")) {