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++;