SHA256
1
0
forked from pool/gtk4

Accepting request 1070735 from GNOME:Next

- Add 3e3158ce12741b58ce53f132b48f26438094886d.patch: widget: Use
  the correct template in dispose_template(). Fixes crashes in
  various apps.
- Refresh patches with quilt.

OBS-URL: https://build.opensuse.org/request/show/1070735
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gtk4?expand=0&rev=119
This commit is contained in:
Bjørn Lie 2023-03-10 20:51:50 +00:00 committed by Git OBS Bridge
parent b2d34e5c5b
commit eae0b7ccb4
4 changed files with 48 additions and 12 deletions

View File

@ -13,11 +13,11 @@ This reverts commit 802bf4199911c811938b0454a876089bafa97dba.
meson.build | 47 +++++++++++++++++++++++++++++++++-------------- meson.build | 47 +++++++++++++++++++++++++++++++++--------------
1 file changed, 33 insertions(+), 14 deletions(-) 1 file changed, 33 insertions(+), 14 deletions(-)
diff --git a/meson.build b/meson.build Index: gtk-4.10.0/meson.build
index 1b8f2d0248..4fc808dbd4 100644 ===================================================================
--- a/meson.build --- gtk-4.10.0.orig/meson.build
+++ b/meson.build +++ gtk-4.10.0/meson.build
@@ -471,6 +471,9 @@ if not os_win32 @@ -431,6 +431,9 @@ if not os_win32
endif endif
endif endif
@ -27,7 +27,7 @@ index 1b8f2d0248..4fc808dbd4 100644
cairo_backends = [] cairo_backends = []
foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled], foreach backend: [ ['cairo-xlib', cairo_req, x11_enabled],
['cairo-win32', cairo_req, win32_enabled], ['cairo-win32', cairo_req, win32_enabled],
@@ -601,14 +604,26 @@ if x11_enabled @@ -559,14 +562,26 @@ if x11_enabled
cdata.set('HAVE_RANDR15', xrandr15_dep.found()) cdata.set('HAVE_RANDR15', xrandr15_dep.found())
endif endif
@ -54,7 +54,7 @@ index 1b8f2d0248..4fc808dbd4 100644
# Check whether libepoxy is built with EGL support on Windows # Check whether libepoxy is built with EGL support on Windows
endif endif
@@ -826,7 +841,16 @@ gsk_private_packages = [] # all already in gdk_private_packages @@ -791,7 +806,16 @@ gsk_private_packages = [] # all already
pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : [] pangoft2_pkgs = (wayland_enabled or x11_enabled) ? ['pangoft2'] : []
gtk_private_packages = pangoft2_pkgs gtk_private_packages = pangoft2_pkgs
@ -72,7 +72,7 @@ index 1b8f2d0248..4fc808dbd4 100644
pkg_targets = [] pkg_targets = []
display_backends = [] display_backends = []
foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ] foreach backend: [ 'broadway', 'macos', 'wayland', 'win32', 'x11', ]
@@ -843,23 +867,18 @@ common_pc_variables = [ @@ -808,23 +832,18 @@ common_pc_variables = [
'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME 'gtk_host=@0@-@1@'.format(host_machine.cpu_family(), host_machine.system()), # FIXME
] ]
@ -102,7 +102,7 @@ index 1b8f2d0248..4fc808dbd4 100644
) )
meson.override_dependency(pkg, libgtk_dep) meson.override_dependency(pkg, libgtk_dep)
endforeach endforeach
@@ -870,10 +889,10 @@ if os_unix @@ -835,10 +854,10 @@ if os_unix
unescaped_variables: common_pc_variables, unescaped_variables: common_pc_variables,
name: 'GTK', name: 'GTK',
description: 'GTK Unix print support', description: 'GTK Unix print support',
@ -115,6 +115,3 @@ index 1b8f2d0248..4fc808dbd4 100644
endif endif
subdir('po') subdir('po')
--
2.37.1

View File

@ -0,0 +1,29 @@
From 9b3fb66bd4568c05f4bd10bda7f6cc1d2ed6919e Mon Sep 17 00:00:00 2001
From: Alexander Mikhaylenko <alexm@gnome.org>
Date: Mon, 6 Mar 2023 05:36:16 +0400
Subject: [PATCH] widget: Use the correct template in dispose_template()
In derivable classes, the widget's class can be different from the one
dispose_template() was called for, which can lead to failing the
template != NULL check at best, undefined behavior at worst.
Since we already pass the correct GType into the function, just use that
instead.
---
gtk/gtkwidget.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: gtk-4.10.0/gtk/gtkwidget.c
===================================================================
--- gtk-4.10.0.orig/gtk/gtkwidget.c
+++ gtk-4.10.0/gtk/gtkwidget.c
@@ -11180,7 +11180,8 @@ gtk_widget_dispose_template (GtkWidget *
g_return_if_fail (GTK_IS_WIDGET (widget));
g_return_if_fail (g_type_name (widget_type) != NULL);
- GtkWidgetTemplate *template = GTK_WIDGET_GET_CLASS (widget)->priv->template;
+ GObjectClass *object_class = g_type_class_peek (widget_type);
+ GtkWidgetTemplate *template = GTK_WIDGET_CLASS (object_class)->priv->template;
g_return_if_fail (template != NULL);
/* Tear down the automatic child data */

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Fri Mar 10 09:23:22 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Add 3e3158ce12741b58ce53f132b48f26438094886d.patch: widget: Use
the correct template in dispose_template(). Fixes crashes in
various apps.
- Refresh patches with quilt.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 9 07:36:45 UTC 2023 - Xiaoguang Wang <xiaoguang.wang@suse.com> Thu Mar 9 07:36:45 UTC 2023 - Xiaoguang Wang <xiaoguang.wang@suse.com>

View File

@ -41,6 +41,8 @@ Source99: gtk4-rpmlintrc
Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch Patch0: 0001-Revert-Meson-Simplify-pkgconfig-file-generator.patch
# PATCH-FIX-UPSTREAM 0001-combobox-Avoid-extra-queue_resize.patch bsc#1209043 glgo#GNOME/gtk!5608 xwang@suse.com -- combobox: Avoid extra queue_resize() # PATCH-FIX-UPSTREAM 0001-combobox-Avoid-extra-queue_resize.patch bsc#1209043 glgo#GNOME/gtk!5608 xwang@suse.com -- combobox: Avoid extra queue_resize()
Patch1: 0001-combobox-Avoid-extra-queue_resize.patch Patch1: 0001-combobox-Avoid-extra-queue_resize.patch
# PATCH-FIX-UPSTREAM https://gitlab.gnome.org/GNOME/gtk/-/commit/3e3158ce12741b58ce53f132b48f26438094886d.patch -- widget: Use the correct template in dispose_template()
Patch2: 3e3158ce12741b58ce53f132b48f26438094886d.patch
BuildRequires: cups-devel >= 2.0 BuildRequires: cups-devel >= 2.0
# We do not support building against cups 2.3 betas # We do not support building against cups 2.3 betas