diff --git a/_constraints b/_constraints
index 55ba706..0131c5a 100644
--- a/_constraints
+++ b/_constraints
@@ -5,7 +5,7 @@
8192
- 10
+ 12
diff --git a/godot-4.1-stable.tar.xz b/godot-4.1-stable.tar.xz
deleted file mode 100644
index 344f039..0000000
--- a/godot-4.1-stable.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5ef9a3b3591b1ceb2f89fba9419a05ef436d73514e2e15aebac4bebc246122ef
-size 30679684
diff --git a/godot-4.1-stable.tar.xz.sha256 b/godot-4.1-stable.tar.xz.sha256
deleted file mode 100644
index 5a760a9..0000000
--- a/godot-4.1-stable.tar.xz.sha256
+++ /dev/null
@@ -1 +0,0 @@
-5ef9a3b3591b1ceb2f89fba9419a05ef436d73514e2e15aebac4bebc246122ef godot-4.1-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 6ed85e1..ab8f57f 100644
--- a/godot.changes
+++ b/godot.changes
@@ -1,3 +1,36 @@
+-------------------------------------------------------------------
+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
diff --git a/godot.spec b/godot.spec
index c55d5eb..01f7d9f 100644
--- a/godot.spec
+++ b/godot.spec
@@ -29,7 +29,7 @@
%define compiler_version_leap 10
Name: godot
-Version: 4.1
+Version: 4.1.1
Release: 0
Summary: Cross-Platform Game Engine with an Integrated Editor
License: MIT
@@ -37,9 +37,6 @@ 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
-# Fix build with use_sowrap=no and various warnings/errors
-# https://github.com/godotengine/godot/pull/79097
-Patch0: xkb_loaded.patch
BuildRequires: Mesa-devel
BuildRequires: desktop-file-utils
BuildRequires: fdupes
@@ -96,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)
@@ -142,7 +141,6 @@ 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
@@ -187,6 +185,7 @@ Provides: bundled(embree) = 3.13.5
%if 0%{?suse_version} > 1500
%else
+Provides: bundled(brotli)
Provides: bundled(glslang) = 12.2.0
# see comments for freetype2, libpng and zlib Factory BuildRequires
Provides: bundled(freetype2) = 2.13.0
@@ -241,7 +240,6 @@ Bash command line completion support for %{name} and %{name}-runner
%prep
%setup -q -n %{name}-%{version}-stable
-%patch0 -p1
cp thirdparty/README.md thirdparty_README.md
@@ -288,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}
diff --git a/xkb_loaded.patch b/xkb_loaded.patch
deleted file mode 100644
index c7f47a6..0000000
--- a/xkb_loaded.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From dcd16a5750ac1f11014e89f579baa380bee3263e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?R=C3=A9mi=20Verschelde?=
-Date: Thu, 6 Jul 2023 14:05:28 +0200
-Subject: [PATCH] Linux: Fix build with `use_sowrap=no` and various
- warnings/errors
-
----
- platform/linuxbsd/joypad_linux.cpp | 20 +++++++++++---------
- platform/linuxbsd/x11/display_server_x11.cpp | 6 +++++-
- 2 files changed, 16 insertions(+), 10 deletions(-)
-
-diff --git a/platform/linuxbsd/joypad_linux.cpp b/platform/linuxbsd/joypad_linux.cpp
-index ab79885fb4818..71c03898c8a3f 100644
---- a/platform/linuxbsd/joypad_linux.cpp
-+++ b/platform/linuxbsd/joypad_linux.cpp
-@@ -98,19 +98,20 @@ static bool detect_sandbox() {
-
- JoypadLinux::JoypadLinux(Input *in) {
- #ifdef UDEV_ENABLED
--#ifdef SOWRAP_ENABLED
--#ifdef DEBUG_ENABLED
-- int dylibloader_verbose = 1;
--#else
-- int dylibloader_verbose = 0;
--#endif
- if (detect_sandbox()) {
- // Linux binaries in sandboxes / containers need special handling because
- // libudev doesn't work there. So we need to fallback to manual parsing
- // of /dev/input in such case.
- use_udev = false;
- print_verbose("JoypadLinux: udev enabled, but detected incompatible sandboxed mode. Falling back to /dev/input to detect joypads.");
-- } else {
-+ }
-+#ifdef SOWRAP_ENABLED
-+ else {
-+#ifdef DEBUG_ENABLED
-+ int dylibloader_verbose = 1;
-+#else
-+ int dylibloader_verbose = 0;
-+#endif
- use_udev = initialize_libudev(dylibloader_verbose) == 0;
- if (use_udev) {
- if (!udev_new || !udev_unref || !udev_enumerate_new || !udev_enumerate_add_match_subsystem || !udev_enumerate_scan_devices || !udev_enumerate_get_list_entry || !udev_list_entry_get_next || !udev_list_entry_get_name || !udev_device_new_from_syspath || !udev_device_get_devnode || !udev_device_get_action || !udev_device_unref || !udev_enumerate_unref || !udev_monitor_new_from_netlink || !udev_monitor_filter_add_match_subsystem_devtype || !udev_monitor_enable_receiving || !udev_monitor_get_fd || !udev_monitor_receive_device || !udev_monitor_unref) {
-@@ -124,10 +125,11 @@ JoypadLinux::JoypadLinux(Input *in) {
- print_verbose("JoypadLinux: udev enabled, but couldn't be loaded. Falling back to /dev/input to detect joypads.");
- }
- }
--#endif
-+#endif // SOWRAP_ENABLED
- #else
- print_verbose("JoypadLinux: udev disabled, parsing /dev/input to detect joypads.");
--#endif
-+#endif // UDEV_ENABLED
-+
- input = in;
- monitor_joypads_thread.start(monitor_joypads_thread_func, this);
- joypad_events_thread.start(joypad_events_thread_func, this);
-diff --git a/platform/linuxbsd/x11/display_server_x11.cpp b/platform/linuxbsd/x11/display_server_x11.cpp
-index 8724bc871ad8e..d9e18720dc17e 100644
---- a/platform/linuxbsd/x11/display_server_x11.cpp
-+++ b/platform/linuxbsd/x11/display_server_x11.cpp
-@@ -5449,7 +5449,9 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
- }
- #else
- #ifdef XKB_ENABLED
-- xkb_loaded = true;
-+ bool xkb_loaded = true;
-+ xkb_loaded_v05p = true;
-+ xkb_loaded_v08p = true;
- #endif
- #endif
-
-@@ -5476,6 +5478,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
-
- r_error = OK;
-
-+#ifdef SOWRAP_ENABLED
- {
- if (!XcursorImageCreate || !XcursorImageLoadCursor || !XcursorImageDestroy || !XcursorGetDefaultSize || !XcursorGetTheme || !XcursorLibraryLoadImage) {
- // There's no API to check version, check if functions are available instead.
-@@ -5484,6 +5487,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
- return;
- }
- }
-+#endif
-
- for (int i = 0; i < CURSOR_MAX; i++) {
- cursors[i] = None;