diff --git a/_constraints b/_constraints index 55ba706..0131c5a 100644 --- a/_constraints +++ b/_constraints @@ -5,7 +5,7 @@ 8192 - 10 + 12 diff --git a/certs_fallback.patch b/certs_fallback.patch deleted file mode 100644 index fcd0ac2..0000000 --- a/certs_fallback.patch +++ /dev/null @@ -1,67 +0,0 @@ -From: cunix@mail.de -Date: 2019-04-29 16:00:00 -Subject: System certs as fallback for project certs -References: https://github.com/godotengine/godot/pull/22066#issuecomment-421565719 - https://github.com/godotengine/godot/pull/22066#issuecomment-422528664 - https://github.com/godotengine/godot/issues/22232 -Upstream: offered to upstream -Rebased: 2023-03-03 - -If project has no value set for "network/ssl/certificates" (the default), -"default_certs" is not filled by function "load_default_certificates" because -we don't use builtin certs - BUILTIN_CERTS_ENABLED is not defined. - -We use a distro specific "system_certs_path" as build option and apply it here -via "_SYSTEM_CERTS_PATH" (defined in included "core/io/certs_compressed.gen.h") -as fallback for certificates. - -In result patch restores upstream behavior for certificate usage. -Difference is: -Where upstream by default uses hard coded certificates at build time, we hard -code path to the default certificates as "/var/lib/ca-certificates/ca-bundle.pem". -This bundle might be updated separately or admin can edit content of this file. - -User can always define different path via Editor or Project settings. - -See comments in patch for more details. - ---- - ---- a/modules/mbedtls/crypto_mbedtls.cpp -+++ b/modules/mbedtls/crypto_mbedtls.cpp -@@ -45,10 +45,12 @@ - - #include - #include - #include - -+#include -+ - CryptoKey *CryptoKeyMbedTLS::create() { - return memnew(CryptoKeyMbedTLS); - } - - Error CryptoKeyMbedTLS::load(String p_path, bool p_public_only) { -@@ -305,10 +307,22 @@ - ERR_FAIL_COND(default_certs == nullptr); - - if (!p_path.is_empty()) { - // Use certs defined in project settings. - default_certs->load(p_path); -+ -+ } else if (strcmp(_SYSTEM_CERTS_PATH, "") != 0) { -+ // Use system certs only if user did not override in project settings -+ // and if _SYSTEM_CERTS_PATH is set. -+ // Should happen if Project Setting "network/ssl/certificates" is empty. -+ // Editor Setting "network/ssl/editor_ssl_certificates" is already set -+ // to "_SYSTEM_CERTS_PATH" by default -> This is caught by "if (p_path != "") {". -+ // But the same fallback might apply for certificates used by editor -+ // if user has set "network/ssl/editor_ssl_certificates" to "". -+ // "load_default_certificates" is only called twice with one of -+ // these parameters. -+ default_certs->load(_SYSTEM_CERTS_PATH); - } - #ifdef BUILTIN_CERTS_ENABLED - else { - // Use builtin certs only if user did not override it in project settings. - PackedByteArray out; diff --git a/godot-4.0.3-stable.tar.xz b/godot-4.0.3-stable.tar.xz deleted file mode 100644 index 8441d15..0000000 --- a/godot-4.0.3-stable.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ce3e2170ac5e043a7ce9c6f839ef67eddd83e24c0728d1afc76e678d4f37552 -size 30203636 diff --git a/godot-4.0.3-stable.tar.xz.sha256 b/godot-4.0.3-stable.tar.xz.sha256 deleted file mode 100644 index 5022458..0000000 --- a/godot-4.0.3-stable.tar.xz.sha256 +++ /dev/null @@ -1 +0,0 @@ -8ce3e2170ac5e043a7ce9c6f839ef67eddd83e24c0728d1afc76e678d4f37552 godot-4.0.3-stable.tar.xz diff --git a/godot-4.1.1-stable.tar.xz b/godot-4.1.1-stable.tar.xz new file mode 100644 index 0000000..58637b5 --- /dev/null +++ b/godot-4.1.1-stable.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd3cee1364020eb069f7cfdf2c484ba54fdeadc5a4d23fb9732d8e52923e1a71 +size 30681136 diff --git a/godot-4.1.1-stable.tar.xz.sha256 b/godot-4.1.1-stable.tar.xz.sha256 new file mode 100644 index 0000000..7b06471 --- /dev/null +++ b/godot-4.1.1-stable.tar.xz.sha256 @@ -0,0 +1 @@ +cd3cee1364020eb069f7cfdf2c484ba54fdeadc5a4d23fb9732d8e52923e1a71 godot-4.1.1-stable.tar.xz diff --git a/godot.changes b/godot.changes index 0530abb..ab8f57f 100644 --- a/godot.changes +++ b/godot.changes @@ -1,3 +1,131 @@ +------------------------------------------------------------------- +Wed Jul 19 12:00:00 UTC 2023 - cunix@mail.de + +- Update to 4.1.1 + + Added: + * 3.x compatibility for animation loop mode + + Changed: + * Allow unbundling brotli to use system library + * Check parameter validity in "Object::set_script" + * Focus current node after connecting + * Sort project tags before saving + * Project converter: Use same rendering driver as Project Manager + * Take eye offset into account for depth in StandardMaterial3D + + Fixed: + * build with "use_sowrap=no" and various warnings/errors + * "Camera2D.rotating" not being converted and reversed properly + * 3D viewport grid disappearing on scene tab changes + * "tween_property" on "Basis" to properly update its value + * dropping files from "res://" to "res://" + * Do not change a node unique name to the same name + * Emit "history_changed" on merged UndoRedo actions + * Cursor behavior for multiselect in Tree while holding CTRL + * Invalid minimum size for translated messages in option button + * Fallback logic of "OS::shell_show_in_file_manage"` + * Avoid freeze when interacting with menus on Wayland + * "move_to_trash" wrongly reporting files as not found + * Threading bug in Vulkan rendering device + +- "xkb_loaded.patch" dropped: accepted upstream + +------------------------------------------------------------------- +Fri Jul 7 12:00:00 UTC 2023 - cunix@mail.de + +- Update to 4.1 + + Added: + * Platform-specific CA bundles + * "Center View" button in 2D editor + * Proper snapping to tile polygon editor + * Ability to look-at in 3D model-space + * Move control points button to Path3D Editor + * "TRANS_SPRING" mode to "Tween" + * Frame delta smoothing option + * Square fill mode to GradientTexture2D + * "ProjectSettings.set_as_basic()" and "ProjectSettings.set_as_internal()" + exposed to scripting + * Let user scripts disable thread safety checks + * multi-window for code and shader editors + * Remember snapping options per-project + * Project tags + * Make create folder popup support nested folders + * Relative path support for "EditorPlugin.add_autoload_singleton" + * Export options for EditorExportPlugins + * Editor support for icons of custom, scripted, and GDExtension classes + * Backwards compatibility system for GDExtension + * GDExtensions allowed to add editor plugins + * GDExtension "@since" attribute + * Boolean operators for all Variant types + * Static variables in GDScript + * Multiline cells in "Tree" + * horizontal/vertical "custom_step" editor property for "ScrollContainer" + * "screen_get_pixel" method + * Vertical icon alignment for buttons + * All auto-wrap modes in "TextEdit" exposed + * Tab stops support in "Label" and "RichTextLabel" + * "Window.get_window_id()" + * Method to check if native window is focused + * Support for extending GLTF with more texture formats and support WebP + * non-standard OBJ vertex entries supported + * NavigationAgent path postprocessing and pathfinding algorithm options exposed + * "audio/general/text_to_speech" project setting to enable/disable TTS + * Default error handler for X11 to avoid crashes + * Shader cache for GLES3 + * Vulkan pipeline caching + * NoiseTexture3D + * "EXPOSURE" and "LIGHT_IS_DIRECTIONAL" built-in for spatial shaders + * Option for ButtonGroups to be unpressed + + Changed: + * Node processing refactored to allow Scene multi-threading + * Node children management optimized + * Replace invalid characters in node names by underscores + instead of removing them + * Remove constrained view in the 2D editor + * Reorganize context menu in FileSystem dock + * Preserve scene unique names when saving branch as scene + * Allow showing messages from threads in "Editor Log" + * Store sensitive export options in dedicated credentials file + * Rework GDExtension interface from a struct to loading function pointers + * Make "TextureButton" and "Button" update on texture change + * Use defined key mapping for closing popups and dialogs + * Disable texture format import overrides by default + * Navigation mesh edge connections optional + * Disable weak crypto and TLS versions + * Propagate previously unused "NOTIFICATION_WORLD_2D_CHANGED", + make CanvasItem/CollisionObject2D use it + * Rework particle turbulence + * (Re-)Implement "Light3D.shadow_reverse_cull_face" + + Fixed: + * 3D viewport front/rear axis and "Focus" button + * AudioListener2D ignoring rotation for positional audio + * Trim when importing WAV + * Invalid 2D global position when read outside tree + * "View Owners" dialog not acknowledging that some resources aren't scenes + * Avoid error spam on first opening of a not yet imported project + * GDExtension Variant type conversion + * GDScript access to identifiers that are reserved keywords + * Ensure that controls update all their sizing information when required + * Input: just pressed and released with short presses + * Sliding window problem + * Temporary file permissions + + and much more: + https://downloads.tuxfamily.org/godotengine/4.1/Godot_v4.1-stable_changelog_chrono.txt + +- "certs_fallback.patch" dropped: + godot is now aware of openSUSE certs in + "/var/lib/ca-certificates/ca-bundle.pem" + +- "tinyexr_thirdparty_upstream.patch" dropped: + bundled tinyexr 1.0.5 has patch applied + +- "xkb_loaded.patch" added for x11 build failure with "use_sowrap=no" + ------------------------------------------------------------------- Mon May 22 12:00:00 UTC 2023 - cunix@mail.de diff --git a/godot.spec b/godot.spec index 7eef236..01f7d9f 100644 --- a/godot.spec +++ b/godot.spec @@ -21,10 +21,15 @@ %define faster_build 0 %define _buildshell /bin/bash +# not needed anymore since 4.1 %define ca_bundle %{_localstatedir}/lib/ca-certificates/ca-bundle.pem +# building with default gcc 7.5 fails since 4.1 on Leap +# https://github.com/godotengine/godot/issues/79352 +%define compiler_version_leap 10 + Name: godot -Version: 4.0.3 +Version: 4.1.1 Release: 0 Summary: Cross-Platform Game Engine with an Integrated Editor License: MIT @@ -32,15 +37,16 @@ Group: Development/Tools/Other URL: https://godotengine.org/ Source0: https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{version}-stable.tar.xz Source1: https://downloads.tuxfamily.org/godotengine/%{version}/%{name}-%{version}-stable.tar.xz.sha256 -# Use system certificates as fallback for certificates -Patch0: certs_fallback.patch -# Heap-buffer-overflow in bundled tinyexr -Patch1: tinyexr_thirdparty_upstream.patch BuildRequires: Mesa-devel BuildRequires: desktop-file-utils BuildRequires: fdupes +%if %{suse_version} > 1500 BuildRequires: gcc BuildRequires: gcc-c++ +%else +BuildRequires: gcc%{compiler_version_leap} +BuildRequires: gcc%{compiler_version_leap}-c++ +%endif BuildRequires: pkgconfig BuildRequires: python3 BuildRequires: scons @@ -49,6 +55,7 @@ BuildRequires: yasm-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(libpcre2-32) BuildRequires: pkgconfig(libpulse) @@ -86,6 +93,8 @@ BuildRequires: pkgconfig(freetype2) >= 2.10.2 # Using bundled freetype2 throws build errors, if # we don't use bundled libpng and zlib as well. BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libbrotlicommon) +BuildRequires: pkgconfig(libbrotlidec) BuildRequires: glslang-devel BuildRequires: mbedtls-devel < 3 BuildRequires: pkgconfig(graphite2) @@ -132,20 +141,20 @@ Provides: bundled(Tangent_Space_Normal_Maps) Provides: bundled(amd-fsr) = 1.0.2 Provides: bundled(astcenc) = 4.4.0 Provides: bundled(basis_universal) = 1.16.4 -Provides: bundled(brotli) Provides: bundled(cvtt) Provides: bundled(doctest) = 2.4.11 Provides: bundled(etcpak) = 1.0 -Provides: bundled(glad) = 2.0.2 +Provides: bundled(glad) = 2.0.4 Provides: bundled(google-droid-fonts) Provides: bundled(hqx) -Provides: bundled(icu4c) = 72.1 +Provides: bundled(icu4c) = 73.1 Provides: bundled(ifaddrs-android) Provides: bundled(jpeg-compressor) = 2.00 Provides: bundled(meshoptimizer) Provides: bundled(minimp3) -Provides: bundled(msdfgen) = 1.9.2 +Provides: bundled(msdfgen) = 1.10 Provides: bundled(noto-sans-fonts) +Provides: bundled(nvapi) = R525 Provides: bundled(oidn) = 1.9.2 Provides: bundled(openxr) = 1.0.26 Provides: bundled(pcg) @@ -153,17 +162,17 @@ Provides: bundled(polyclipping) Provides: bundled(polypartition) Provides: bundled(pvrtccompressor) Provides: bundled(smaz) -Provides: bundled(spirv-reflect) = sdk-1.3.231.1 +Provides: bundled(spirv-reflect) = sdk-1.3.250.0 Provides: bundled(stb) Provides: bundled(thorvg) = 0.9.0 -Provides: bundled(tinyexr) = 1.0.1 +Provides: bundled(tinyexr) = 1.0.5 Provides: bundled(vhacd) -Provides: bundled(volk) = sdk-1.3.231.1 -Provides: bundled(vulkan) = sdk-1.3.231.1 +Provides: bundled(volk) = sdk-1.3.250.0 +Provides: bundled(vulkan) = sdk-1.3.250.0 Provides: bundled(yuv2rgb) # Can be unbundled if packaged -Provides: bundled(recastnavigation) +Provides: bundled(recastnavigation) = 1.6.0 Provides: bundled(squish) = 1.15 Provides: bundled(xatlas) @@ -176,14 +185,15 @@ Provides: bundled(embree) = 3.13.5 %if 0%{?suse_version} > 1500 %else -Provides: bundled(glslang) = 11.12.0 +Provides: bundled(brotli) +Provides: bundled(glslang) = 12.2.0 # see comments for freetype2, libpng and zlib Factory BuildRequires -Provides: bundled(freetype2) = 2.12.1 +Provides: bundled(freetype2) = 2.13.0 Provides: bundled(graphite) = 1.3.14 -Provides: bundled(harfbuzz) = 6.0.0 +Provides: bundled(harfbuzz) = 7.3.0 Provides: bundled(libpng) = 1.6.38 -Provides: bundled(libzstd) +Provides: bundled(libzstd) = 1.5.5 Provides: bundled(zlib) %if 0%{?sle_version} < 150200 Provides: bundled(mbedtls) = 2.28.3 @@ -230,8 +240,6 @@ Bash command line completion support for %{name} and %{name}-runner %prep %setup -q -n %{name}-%{version}-stable -%patch0 -p1 -%patch1 -p1 cp thirdparty/README.md thirdparty_README.md @@ -242,7 +250,8 @@ if [[ -z "$(desktop-file-validate misc/dist/linux/org.godotengine.Godot.desktop) then # desktop-file-utils version >= 0.25 echo desktop-file-utils is up to date and recognizes PrefersNonDefaultGPU. - # rpmlint complains nevertheless (on Tumbleweed). A false negative? + # rpmlint complains nevertheless with older rpmlint-mini. + # Tumbleweed is fixed with update of rpmlint-mini. # see https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html#recognized-keys # Perhaps because rpmlint-mini includes as of today (18.09.2020) # desktop-file-utils-0.24 while we checked for available default version >= 0.25 @@ -277,7 +286,7 @@ unbundle_libs=('certs' 'libogg' 'libtheora' 'libvorbis' \ # Unbundle more libs for Tumbleweed %if %{suse_version} > 1500 -unbundle_libs+=('freetype' 'glslang' 'graphite' 'harfbuzz' 'libpng' 'mbedtls' 'zlib' 'zstd') +unbundle_libs+=('brotli' 'freetype' 'glslang' 'graphite' 'harfbuzz' 'libpng' 'mbedtls' 'zlib' 'zstd') %else # Unbundle more libs for coming Leap %if 0%{?sle_version} >= 150200 && 0%{?is_opensuse} @@ -296,12 +305,23 @@ done mkdir -pv thirdparty/certs touch thirdparty/certs/ca-certificates.crt +use_sowrap="use_sowrap=no " rm -rf thirdparty/linuxbsd_headers +%if %{suse_version} > 1500 +%define ccflags %{optflags} +compiler="" +linkflags="" +%else +%define ccflags %{optflags} -fPIE +compiler="CC=gcc-%{compiler_version_leap} CXX=g++-%{compiler_version_leap}" +linkflags="LINKFLAGS=-pie" +%endif + %define build_args_common %{?_smp_mflags} \\\ progress=no verbose=yes udev=yes use_lto=1 \\\ - use_static_cpp=no CCFLAGS='%{optflags}' \\\ - system_certs_path=%{ca_bundle} use_sowrap=no $system_libs + use_static_cpp=no CCFLAGS='%{ccflags}' $linkflags $compiler \\\ + system_certs_path=%{ca_bundle} $use_sowrap $system_libs %ifarch aarch64 %arm # Disable unsupported features - https://github.com/godotengine/godot/issues/48297#issuecomment-829165296 diff --git a/tinyexr_thirdparty_upstream.patch b/tinyexr_thirdparty_upstream.patch deleted file mode 100644 index 4b297f5..0000000 --- a/tinyexr_thirdparty_upstream.patch +++ /dev/null @@ -1,25 +0,0 @@ -From cc1b199dd17b700c3130a53866ea462ab88e7f82 Mon Sep 17 00:00:00 2001 -From: 0xdd96 <1011085630@qq.com> -Date: Wed, 6 Jul 2022 12:14:50 +0800 -Subject: [PATCH] Add bounds check to address #169 -References: https://bugzilla.opensuse.org/show_bug.cgi?id=1203278 - https://github.com/syoyo/tinyexr/issues/169 - https://github.com/syoyo/tinyexr/pull/170/commits/cc1b199dd17b700c3130a53866ea462ab88e7f82 -Rebased: 20220912 by cunix - -diff -r -U 5 a/thirdparty/tinyexr/tinyexr.h b/thirdparty/tinyexr/tinyexr.h ---- a/thirdparty/tinyexr/tinyexr.h -+++ b/thirdparty/tinyexr/tinyexr.h -@@ -1454,11 +1454,11 @@ - in += count; - } else { - int count = *in++; - inLength -= 2; - -- if (0 > (maxLength -= count + 1)) return 0; -+ if (0 > (maxLength -= count + 1) || inLength < 0) return 0; - - memset(out, *reinterpret_cast(in), count + 1); - out += count + 1; - - in++;