From d8712ea1438ccd9ed8547866b6db952e1ab5b2f7 Mon Sep 17 00:00:00 2001 From: Yoann Congal Date: Sat, 14 Mar 2026 16:15:24 +0100 Subject: [PATCH] gtk+3: fix incompatible-pointer-types errors for native build on Fedora 41 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport 2 patchs to fix incompatible-pointer-types error when building gtk+3-native on Fedora 41 host: tests/testinput.c:197:79: error: passing argument 1 of ‘gdk_event_get_source_device’ from incompatible pointer type [-Wincompatible-pointer-types] gtk/gtklabel.c:4235:32: error: passing argument 1 of ‘gtk_widget_queue_resize’ from incompatible pointer type [-Wincompatible-pointer-types] On autobuilder: fedora41-vk-1:~$ gcc --version gcc (GCC) 14.3.1 20251022 (Red Hat 14.3.1-4) GCC 14 notoriously restricted how pointer types are converted: https://gcc.gnu.org/gcc-14/porting_to.html#incompatible-pointer-types Suggested-by: Fabien Thomas (From OE-Core rev: 99c8e2def939f0801a67fb8384c57d08732dd020) Signed-off-by: Yoann Congal Signed-off-by: Paul Barker --- ...-type-when-calling-GtkWidget-methods.patch | 28 +++++++++++ ...ests-Add-GdkEvent-casts-in-testinput.patch | 48 +++++++++++++++++++ meta/recipes-gnome/gtk+/gtk+3_3.24.34.bb | 2 + 3 files changed, 78 insertions(+) create mode 100644 meta/recipes-gnome/gtk+/gtk+3/0001-Use-the-right-type-when-calling-GtkWidget-methods.patch create mode 100644 meta/recipes-gnome/gtk+/gtk+3/0002-tests-Add-GdkEvent-casts-in-testinput.patch diff --git a/meta/recipes-gnome/gtk+/gtk+3/0001-Use-the-right-type-when-calling-GtkWidget-methods.patch b/meta/recipes-gnome/gtk+/gtk+3/0001-Use-the-right-type-when-calling-GtkWidget-methods.patch new file mode 100644 index 0000000000..76de563065 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/0001-Use-the-right-type-when-calling-GtkWidget-methods.patch @@ -0,0 +1,28 @@ +From a3e82f20a1a1e7d8ffbc960a8bb4aa65b0d151ee Mon Sep 17 00:00:00 2001 +From: Yoann Congal +Date: Tue, 6 Dec 2022 21:49:22 +0000 +Subject: [PATCH] Use the right type when calling GtkWidget methods + +From: Emmanuele Bassi + +Let's avoid complaints from the compiler. + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gtk/-/commit/a3e82f20a1a1e7d8ffbc960a8bb4aa65b0d151ee] +Signed-off-by: Yoann Congal +--- + gtk/gtklabel.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c +index 7933ab2af73..40a569004b6 100644 +--- a/gtk/gtklabel.c ++++ b/gtk/gtklabel.c +@@ -4232,7 +4232,7 @@ gtk_label_style_updated (GtkWidget *widget) + if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_FONT)) + { + gtk_label_clear_layout (GTK_LABEL (widget)); +- gtk_widget_queue_resize (label); ++ gtk_widget_queue_resize (widget); + } + + if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_ATTRS) || diff --git a/meta/recipes-gnome/gtk+/gtk+3/0002-tests-Add-GdkEvent-casts-in-testinput.patch b/meta/recipes-gnome/gtk+/gtk+3/0002-tests-Add-GdkEvent-casts-in-testinput.patch new file mode 100644 index 0000000000..c6ec597384 --- /dev/null +++ b/meta/recipes-gnome/gtk+/gtk+3/0002-tests-Add-GdkEvent-casts-in-testinput.patch @@ -0,0 +1,48 @@ +From 76bc2a57136fd6cf0374fa3f86a7ba646b779803 Mon Sep 17 00:00:00 2001 +From: Yoann Congal +Date: Fri, 19 Jan 2024 10:41:33 +0000 +Subject: [PATCH] tests: Add GdkEvent casts in testinput + +From: David King + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gtk/-/commit/76bc2a57136fd6cf0374fa3f86a7ba646b779803] +Signed-off-by: Yoann Congal +--- + tests/testinput.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/testinput.c b/tests/testinput.c +index b68552a4280..3d4d7f6f875 100644 +--- a/tests/testinput.c ++++ b/tests/testinput.c +@@ -194,7 +194,7 @@ button_press_event (GtkWidget *widget, GdkEventButton *event) + + print_axes (event->device, event->axes); + gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); +- draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device (event)), ++ draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device ((GdkEvent *)event)), + event->x, event->y, pressure); + + motion_time = event->time; +@@ -239,10 +239,10 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event) + gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_X, &x); + gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_Y, &y); + gdk_device_get_axis (event->device, events[i]->axes, GDK_AXIS_PRESSURE, &pressure); +- draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device (event)), ++ draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device ((GdkEvent *)event)), + x, y, pressure); + +- print_axes (gdk_event_get_source_device (event), events[i]->axes); ++ print_axes (gdk_event_get_source_device ((GdkEvent *)event), events[i]->axes); + } + gdk_device_free_history (events, n_events); + } +@@ -252,7 +252,7 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event) + + gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure); + +- draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device (event)), ++ draw_brush (widget, gdk_device_get_source (gdk_event_get_source_device ((GdkEvent *)event)), + event->x, event->y, pressure); + } + motion_time = event->time; diff --git a/meta/recipes-gnome/gtk+/gtk+3_3.24.34.bb b/meta/recipes-gnome/gtk+/gtk+3_3.24.34.bb index e6c8e43923..01677e33f8 100644 --- a/meta/recipes-gnome/gtk+/gtk+3_3.24.34.bb +++ b/meta/recipes-gnome/gtk+/gtk+3_3.24.34.bb @@ -7,6 +7,8 @@ SRC_URI = "${GNOME_MIRROR}/gtk+/${MAJ_VER}/gtk+-${PV}.tar.xz \ file://0003-Add-disable-opengl-configure-option.patch \ file://link_fribidi.patch \ file://CVE-2024-6655.patch \ + file://0001-Use-the-right-type-when-calling-GtkWidget-methods.patch \ + file://0002-tests-Add-GdkEvent-casts-in-testinput.patch \ " SRC_URI[sha256sum] = "dbc69f90ddc821b8d1441f00374dc1da4323a2eafa9078e61edbe5eeefa852ec"