diff mbox series

gtk4: upgrade 4.22.5 -> 4.24.0

Message ID 20261001115440.669670-1-ross.burton@arm.com
State Under Review
Headers show
Series gtk4: upgrade 4.22.5 -> 4.24.0 | expand

Commit Message

Ross Burton Oct. 1, 2026, 11:54 a.m. UTC
Hightlights from the upstream release notes:

* GtkSvgWidget is a widget to display SVG, with some support for
  interactive aspects of SVG

* Wayland:
 - Version 3.2 of the text protocol is supported
 - xdg-session-management-v1 is used

* GSK:
 - A number of 10bit image formats are supported
 - We are now using clip masks to reduce the number of offscreens

* The gtk4-encode-symbolic tool for producing symbolic png icons has
  been dropped.

* Snapping: GTK can now snap contents to device pixel boundaries,
  for better control of rendering with fractional scales

* GTK now respects the reduced motion setting in various places
  and avoids animations (GtkSpinner, GtkStack, GtkRevealer)

* New GtkShortcutTrigger functions it easier to handle synonymous
  keys (in particular keypad keys).

* Type-to-search (in particular interaction with input methods)
  has been redone, switching from a "pull" to a "push" approach.

* The first part of ongoing frameclock work has landed, improving
  our ability to deliver frames on time

* GTK supports the ext-background-effect Wayland protocol to allow
  blurred background behind windows

* The visible focus timeout can be changed with the new
  gtk-keyboard-focus-visible-timeout setting

* The GDK frameclock has been reworked to improve precision and reduce
  frame drops

Add a hook to rewrite the content of the meson-generated unity sources,
as these contain absolute build paths.  Manipulate the file during the
packaging process so that the actual build tree isn't altered, meaning
rebuilds are not affected.

Based on work by Markus Volk <f_l_k@t-online.de>.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 .../gtk+/{gtk4_4.22.5.bb => gtk4_4.24.0.bb}          | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
 rename meta/recipes-gnome/gtk+/{gtk4_4.22.5.bb => gtk4_4.24.0.bb} (85%)
diff mbox series

Patch

diff --git a/meta/recipes-gnome/gtk+/gtk4_4.22.5.bb b/meta/recipes-gnome/gtk+/gtk4_4.24.0.bb
similarity index 85%
rename from meta/recipes-gnome/gtk+/gtk4_4.22.5.bb
rename to meta/recipes-gnome/gtk+/gtk4_4.24.0.bb
index cf0ea114e08..6437cc6d921 100644
--- a/meta/recipes-gnome/gtk+/gtk4_4.22.5.bb
+++ b/meta/recipes-gnome/gtk+/gtk4_4.24.0.bb
@@ -33,7 +33,7 @@  LIC_FILES_CHKSUM = " \
     file://tests/testgtk.c;endline=25;md5=49d06770681b8322466b52ed19d29fb2 \
 "
 
-SRC_URI[archive.sha256sum] = "7fd725deb2cb3f8dc218ad862c5056ff8548f49d3b0e4081796e444c22d19686"
+SRC_URI[archive.sha256sum] = "28ba4ac1c04f86eac09b79a163cb163a4c2b54442d9f7eccc04679062a581044"
 
 S = "${UNPACKDIR}/${GNOMEBN}-${PV}"
 
@@ -76,6 +76,16 @@  PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled, vulkan-loader vulka
 
 LIBV = "4.0.0"
 
+# gtk/svg is built as a unity target, and meson implements that by generating a
+# source file that #includes the real sources by absolute path. That generated
+# file is part of the debug information and lands in the -src package, so give
+# it the same rewriting that -ffile-prefix-map does for the compiler. Otherwise
+# the build directory leaks into the package and buildpaths QA rejects it.
+gtk4_rewrite_unity_sources() {
+	find ${PKGDEST}/${PN}-src -name '*-unity*.c' -exec sed -i -e 's|${B}|${TARGET_DBGSRC_DIR}|g' -e 's|${S}|${TARGET_DBGSRC_DIR}|g' {} +
+}
+PACKAGEFUNCS += "gtk4_rewrite_unity_sources"
+
 FILES:${PN}:append = " \
     ${datadir}/bash-completion \
     ${datadir}/gtk-4.0/emoji/ \