Update to 3.24.33
This commit is contained in:
parent
dd03259ec1
commit
b6d0a93efb
2
.gitignore
vendored
2
.gitignore
vendored
@ -200,3 +200,5 @@ gtk+-2.90.5.tar.bz2
|
||||
/gtk+-3.24.29.tar.xz
|
||||
/gtk+-3.24.30.tar.xz
|
||||
/gtk+-3.24.31.tar.xz
|
||||
/gtk+-3.24.32.tar.xz
|
||||
/gtk+-3.24.33.tar.xz
|
||||
|
@ -1,53 +0,0 @@
|
||||
From 7f295eeb324c3d793bdf302fa7ea9ebdd8a52bcf Mon Sep 17 00:00:00 2001
|
||||
From: David King <amigadave@amigadave.com>
|
||||
Date: Thu, 23 Dec 2021 10:53:57 +0000
|
||||
Subject: [PATCH] meson: Do not install reftests
|
||||
|
||||
Match the testsuite in the main branch.
|
||||
---
|
||||
testsuite/reftests/meson.build | 25 +------------------------
|
||||
1 file changed, 1 insertion(+), 24 deletions(-)
|
||||
|
||||
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
|
||||
index b4bf6784cc..2135ebb434 100644
|
||||
--- a/testsuite/reftests/meson.build
|
||||
+++ b/testsuite/reftests/meson.build
|
||||
@@ -22,9 +22,7 @@ libreftest = shared_library('reftest',
|
||||
|
||||
gtk_reftest = executable('gtk-reftest', 'gtk-reftest.c',
|
||||
link_with : [libgtkreftestprivate, libreftest],
|
||||
- dependencies : libgtk_dep,
|
||||
- install: get_option('installed_tests'),
|
||||
- install_dir: installed_test_bindir)
|
||||
+ dependencies : libgtk_dep)
|
||||
|
||||
test_data = [
|
||||
'721800-0px-dotted-border.css',
|
||||
@@ -457,24 +455,3 @@ foreach testname : test_data
|
||||
is_parallel: false)
|
||||
endif
|
||||
endforeach
|
||||
-
|
||||
-reftests_installed_tests = [
|
||||
- 'reftests-dark.test',
|
||||
- 'reftests-hc.test',
|
||||
- 'reftests-hci.test',
|
||||
- 'reftests.test',
|
||||
-]
|
||||
-
|
||||
-if get_option('installed_tests')
|
||||
- test_cdata = configuration_data()
|
||||
- test_cdata.set('libexecdir', gtk_libexecdir)
|
||||
-
|
||||
- foreach t: reftests_installed_tests
|
||||
- configure_file(input: '@0@.in'.format(t),
|
||||
- output: t,
|
||||
- configuration: test_cdata,
|
||||
- install_dir: installed_test_datadir)
|
||||
- endforeach
|
||||
-
|
||||
- install_data(test_data, install_dir: testexecdir)
|
||||
-endif
|
||||
--
|
||||
2.33.1
|
||||
|
@ -1,316 +0,0 @@
|
||||
From 9bad0a2d5e35fdd2d89efedae1298d7c3dd158a3 Mon Sep 17 00:00:00 2001
|
||||
From: David King <amigadave@amigadave.com>
|
||||
Date: Tue, 21 Dec 2021 10:09:29 +0000
|
||||
Subject: [PATCH 1/3] meson: Remove missing reftests
|
||||
|
||||
Removed from autotools build in commit
|
||||
93e1f7f1ec709325fe9b0554b92add06ad988ae8.
|
||||
---
|
||||
testsuite/reftests/meson.build | 7 -------
|
||||
1 file changed, 7 deletions(-)
|
||||
|
||||
diff --git a/testsuite/reftests/meson.build b/testsuite/reftests/meson.build
|
||||
index 9bfe1bb698..b4bf6784cc 100644
|
||||
--- a/testsuite/reftests/meson.build
|
||||
+++ b/testsuite/reftests/meson.build
|
||||
@@ -291,9 +291,6 @@ test_data = [
|
||||
'label-text-shadow-clipping.css',
|
||||
'label-text-shadow-clipping.ref.ui',
|
||||
'label-text-shadow-clipping.ui',
|
||||
- 'label-text-shadow-changes-modify-clip.css',
|
||||
- 'label-text-shadow-changes-modify-clip.ref.ui',
|
||||
- 'label-text-shadow-changes-modify-clip.ui',
|
||||
'label-width-chars-dont-shrink.ref.ui',
|
||||
'label-width-chars-dont-shrink.ui',
|
||||
'label-wrap-justify.ref.ui',
|
||||
@@ -405,10 +402,6 @@ test_data = [
|
||||
'textview-margins.ui',
|
||||
'textview-tags.ref.ui',
|
||||
'textview-tags.ui',
|
||||
- 'toplevel-vs-popup.ref.ui',
|
||||
- 'toplevel-vs-popup.ui',
|
||||
- 'treeview-crash-too-wide.ref.ui',
|
||||
- 'treeview-crash-too-wide.ui',
|
||||
'treeview-fixed-height.css',
|
||||
'treeview-fixed-height.ref.ui',
|
||||
'treeview-fixed-height.ui',
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From 2b566f0633a740cca2b30941231f0507de873002 Mon Sep 17 00:00:00 2001
|
||||
From: David King <amigadave@amigadave.com>
|
||||
Date: Tue, 21 Dec 2021 11:10:37 +0000
|
||||
Subject: [PATCH 2/3] meson: Install example schema XML
|
||||
|
||||
---
|
||||
examples/application10/meson.build | 4 +++-
|
||||
examples/application5/meson.build | 4 +++-
|
||||
examples/application6/meson.build | 4 +++-
|
||||
examples/application7/meson.build | 4 +++-
|
||||
examples/application8/meson.build | 4 +++-
|
||||
examples/application9/meson.build | 4 +++-
|
||||
6 files changed, 18 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/examples/application10/meson.build b/examples/application10/meson.build
|
||||
index ce842ae794..417a64155e 100644
|
||||
--- a/examples/application10/meson.build
|
||||
+++ b/examples/application10/meson.build
|
||||
@@ -5,7 +5,7 @@ app10_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app10_schemas = gnome.compile_schemas()
|
||||
+app10_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app10 = executable(
|
||||
@@ -21,3 +21,5 @@ app10 = executable(
|
||||
app10_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
diff --git a/examples/application5/meson.build b/examples/application5/meson.build
|
||||
index f0fed1ca59..8ecb41948e 100644
|
||||
--- a/examples/application5/meson.build
|
||||
+++ b/examples/application5/meson.build
|
||||
@@ -5,7 +5,7 @@ app5_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app5_schemas = gnome.compile_schemas()
|
||||
+app5_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app5 = executable(
|
||||
@@ -19,3 +19,5 @@ app5 = executable(
|
||||
app5_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
diff --git a/examples/application6/meson.build b/examples/application6/meson.build
|
||||
index 2d923f35a3..8a172e2e26 100644
|
||||
--- a/examples/application6/meson.build
|
||||
+++ b/examples/application6/meson.build
|
||||
@@ -5,7 +5,7 @@ app6_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app6_schemas = gnome.compile_schemas()
|
||||
+app6_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app6 = executable(
|
||||
@@ -21,3 +21,5 @@ app6 = executable(
|
||||
app6_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
diff --git a/examples/application7/meson.build b/examples/application7/meson.build
|
||||
index cc32f36ad0..4c46221085 100644
|
||||
--- a/examples/application7/meson.build
|
||||
+++ b/examples/application7/meson.build
|
||||
@@ -5,7 +5,7 @@ app7_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app7_schemas = gnome.compile_schemas()
|
||||
+app7_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app7 = executable(
|
||||
@@ -21,3 +21,5 @@ app7 = executable(
|
||||
app7_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
diff --git a/examples/application8/meson.build b/examples/application8/meson.build
|
||||
index 1192f4d688..ee49034d2b 100644
|
||||
--- a/examples/application8/meson.build
|
||||
+++ b/examples/application8/meson.build
|
||||
@@ -5,7 +5,7 @@ app8_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app8_schemas = gnome.compile_schemas()
|
||||
+app8_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app8 = executable(
|
||||
@@ -21,3 +21,5 @@ app8 = executable(
|
||||
app8_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
diff --git a/examples/application9/meson.build b/examples/application9/meson.build
|
||||
index fccee738cb..46b77c4d17 100644
|
||||
--- a/examples/application9/meson.build
|
||||
+++ b/examples/application9/meson.build
|
||||
@@ -5,7 +5,7 @@ app9_resources = gnome.compile_resources(
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
-app9_schemas = gnome.compile_schemas()
|
||||
+app9_schemas = gnome.compile_schemas(depend_files: files(['org.gtk.exampleapp.gschema.xml']))
|
||||
|
||||
|
||||
app9 = executable(
|
||||
@@ -21,3 +21,5 @@ app9 = executable(
|
||||
app9_schemas,
|
||||
dependencies: libgtk_dep
|
||||
)
|
||||
+
|
||||
+install_data('org.gtk.exampleapp.gschema.xml', install_dir: gtk_schemasdir)
|
||||
--
|
||||
2.33.1
|
||||
|
||||
|
||||
From e36849e6a397bc7e0356bd51583d79f821f9c3db Mon Sep 17 00:00:00 2001
|
||||
From: David King <amigadave@amigadave.com>
|
||||
Date: Tue, 21 Dec 2021 14:04:40 +0000
|
||||
Subject: [PATCH 3/3] Revert "meson: simplify builtin_immodules build option"
|
||||
|
||||
This reverts commit 749a58ab26bc01381d66ccefdd3aa42a34353e70.
|
||||
|
||||
This maintains feature parity with the autotools build.
|
||||
---
|
||||
gtk/meson.build | 2 +-
|
||||
meson.build | 30 ++++++++++++++++++++++++------
|
||||
meson_options.txt | 4 ++--
|
||||
modules/input/meson.build | 2 +-
|
||||
4 files changed, 28 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/gtk/meson.build b/gtk/meson.build
|
||||
index 9754686cca..12aa7db5c3 100644
|
||||
--- a/gtk/meson.build
|
||||
+++ b/gtk/meson.build
|
||||
@@ -959,7 +959,7 @@ foreach l: immodules
|
||||
cond = l.get(2, true)
|
||||
cflags = l.get(3, [])
|
||||
|
||||
- if cond and builtin_immodules
|
||||
+ if cond and (builtin_immodules.contains(name) or builtin_all_immodules)
|
||||
gtk_cargs += ['-DINCLUDE_IM_@0@'.format(name.underscorify())]
|
||||
mod = static_library('staticimmodule-@0@'.format(name),
|
||||
sources + gtk_dep_sources,
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 16d1597116..15cca3de15 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -499,6 +499,8 @@ else
|
||||
cdata.set_quoted('ISO_CODES_PREFIX', get_option('prefix'))
|
||||
endif
|
||||
|
||||
+backend_immodules = []
|
||||
+
|
||||
pc_gdk_extra_libs = []
|
||||
|
||||
cairo_found_type = cairo_dep.type_name()
|
||||
@@ -554,6 +556,7 @@ if wayland_enabled
|
||||
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
|
||||
wlcursordep = dependency('wayland-cursor', version: wayland_req)
|
||||
wlegldep = dependency('wayland-egl')
|
||||
+ backend_immodules += ['wayland']
|
||||
|
||||
wayland_pkgs = [
|
||||
'wayland-client', wayland_req,
|
||||
@@ -578,6 +581,8 @@ if x11_enabled
|
||||
fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
|
||||
atkbridge_dep = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
|
||||
|
||||
+ backend_immodules += ['xim']
|
||||
+
|
||||
x11_pkgs = ['fontconfig', 'x11', 'xext', 'xi', 'xrandr']
|
||||
|
||||
if xcursor_dep.found()
|
||||
@@ -656,10 +661,12 @@ endif
|
||||
|
||||
if broadway_enabled
|
||||
pc_gdk_extra_libs += ['-lz']
|
||||
+ backend_immodules += ['broadway']
|
||||
endif
|
||||
|
||||
if quartz_enabled
|
||||
pc_gdk_extra_libs += ['-Wl,-framework,Cocoa', '-Wl,-framework,Carbon', '-Wl,-framework,CoreGraphics']
|
||||
+ backend_immodules += ['quartz']
|
||||
endif
|
||||
|
||||
extra_demo_ldflags = []
|
||||
@@ -674,6 +681,7 @@ if win32_enabled
|
||||
pc_gdk_extra_libs += ['-Wl,-luuid']
|
||||
endif
|
||||
pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32']
|
||||
+ backend_immodules += ['ime']
|
||||
|
||||
# Check whether libepoxy is built with EGL support on Windows
|
||||
win32_has_egl = epoxy_dep.get_variable(
|
||||
@@ -684,20 +692,30 @@ endif
|
||||
|
||||
# IMModules stuff-unfortunately we need to put items here
|
||||
# as they can be built as modules or built directly into GTK
|
||||
+builtin_all_immodules = false
|
||||
+
|
||||
builtin_modules_opt = get_option('builtin_immodules')
|
||||
-if builtin_modules_opt == 'auto'
|
||||
+builtin_immodules = []
|
||||
+
|
||||
+if builtin_modules_opt == ''
|
||||
if os_win32
|
||||
# Current MSVC projects build all immodules directly into GTK by default,
|
||||
# as does the mingw autotools build
|
||||
message('IMModules are built into GTK for MSVC builds by default')
|
||||
- builtin_immodules = true
|
||||
+ builtin_immodules = ['all']
|
||||
else
|
||||
- builtin_immodules = false
|
||||
+ builtin_immodules = ['none']
|
||||
endif
|
||||
-elif builtin_modules_opt == 'yes'
|
||||
- builtin_immodules = true
|
||||
else
|
||||
- builtin_immodules = false
|
||||
+ builtin_immodules = builtin_modules_opt.split(',')
|
||||
+endif
|
||||
+
|
||||
+if builtin_immodules.contains('none')
|
||||
+ builtin_immodules = []
|
||||
+elif builtin_immodules.contains('all')
|
||||
+ builtin_all_immodules = true
|
||||
+elif builtin_immodules.contains('backend')
|
||||
+ builtin_immodules += backend_immodules
|
||||
endif
|
||||
|
||||
proto_sources = [
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 1ca55b1467..94099aa01e 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -45,5 +45,5 @@ option('installed_tests', type: 'boolean', value: 'false',
|
||||
description : 'enable installed tests')
|
||||
|
||||
# input modules
|
||||
-option('builtin_immodules', type: 'combo', choices : ['yes', 'no', 'auto'],
|
||||
- value: 'auto', description: 'Build immodules into GTK so/DLL')
|
||||
+option('builtin_immodules', type: 'string',
|
||||
+ value: '', description: 'Build specified immodules into GTK so/DLL (comma-separated list), "all", "none" or "backend"')
|
||||
diff --git a/modules/input/meson.build b/modules/input/meson.build
|
||||
index 7b201af894..95534b05ec 100644
|
||||
--- a/modules/input/meson.build
|
||||
+++ b/modules/input/meson.build
|
||||
@@ -7,7 +7,7 @@ foreach l: immodules
|
||||
cond = l.get(2, true)
|
||||
cflags = l.get(3, [])
|
||||
|
||||
- if cond and not builtin_immodules
|
||||
+ if cond and not (builtin_immodules.contains(name) or builtin_all_immodules)
|
||||
shared_module('im-@0@'.format(name),
|
||||
immod_sources,
|
||||
c_args: common_cflags + cflags,
|
||||
--
|
||||
2.33.1
|
||||
|
277
gtk3-3.24.33-array-bounds-gcc12.patch
Normal file
277
gtk3-3.24.33-array-bounds-gcc12.patch
Normal file
@ -0,0 +1,277 @@
|
||||
From a5d208adafec044b2c9e36ec5eb0f43db8be0564 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Bloomfield <PeterBloomfield@bellsouth.net>
|
||||
Date: Fri, 29 Apr 2022 22:06:12 -0400
|
||||
Subject: [PATCH 1/2] gtkimagedefinition: Check array bounds
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
`jhbuild build gtk+-3` with GCC 12 fails with:
|
||||
```
|
||||
In function ‘gtk_image_definition_ref’,
|
||||
inlined from ‘gtk_image_definition_new_empty’
|
||||
at ../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:107:10:
|
||||
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:241:13: error:
|
||||
array subscript ‘GtkImageDefinition {aka union _GtkImageDefinition}[0]’
|
||||
is partly outside array bounds of ‘GtkImageDefinitionEmpty[1]’
|
||||
{aka ‘struct _GtkImageDefinitionEmpty[1]’} [-Werror=array-bounds]
|
||||
241 | def->empty.ref_count++;
|
||||
| ~~~~~~~~~~^~~~~~~~~~
|
||||
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:
|
||||
In function ‘gtk_image_definition_new_empty’:
|
||||
../../../../jhbuild/checkout/gtk+-3/gtk/gtkimagedefinition.c:105:34: note:
|
||||
object ‘empty’ of size 8
|
||||
105 | static GtkImageDefinitionEmpty empty = { GTK_IMAGE_EMPTY, 1 };
|
||||
| ^~~~~
|
||||
```
|
||||
and many similar errors.
|
||||
|
||||
Fix it by casting `GtkImageDefinition` to `GtkImageDefinitionEmpty` or
|
||||
similar, as appropriate.
|
||||
|
||||
Essentially backports 4dcd02e85315f487310e2e01fe9412706a77dc35 from main to gtk-3-24.
|
||||
---
|
||||
gtk/gtkimagedefinition.c | 43 +++++++++++++++++++++++++++++-----------
|
||||
1 file changed, 31 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/gtk/gtkimagedefinition.c b/gtk/gtkimagedefinition.c
|
||||
index bd59420d5c..9ef8223911 100644
|
||||
--- a/gtk/gtkimagedefinition.c
|
||||
+++ b/gtk/gtkimagedefinition.c
|
||||
@@ -121,12 +121,14 @@ gtk_image_definition_alloc (GtkImageType type)
|
||||
sizeof (GtkImageDefinitionSurface)
|
||||
};
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionEmpty *empty_def;
|
||||
|
||||
g_assert (type < G_N_ELEMENTS (sizes));
|
||||
|
||||
def = g_malloc0 (sizes[type]);
|
||||
- def->type = type;
|
||||
- def->empty.ref_count = 1;
|
||||
+ empty_def = (GtkImageDefinitionEmpty *) def;
|
||||
+ empty_def->type = type;
|
||||
+ empty_def->ref_count = 1;
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -136,13 +138,15 @@ gtk_image_definition_new_pixbuf (GdkPixbuf *pixbuf,
|
||||
int scale)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionPixbuf *pixbuf_def;
|
||||
|
||||
if (pixbuf == NULL || scale <= 0)
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_PIXBUF);
|
||||
- def->pixbuf.pixbuf = g_object_ref (pixbuf);
|
||||
- def->pixbuf.scale = scale;
|
||||
+ pixbuf_def = (GtkImageDefinitionPixbuf *) def;
|
||||
+ pixbuf_def->pixbuf = g_object_ref (pixbuf);
|
||||
+ pixbuf_def->scale = scale;
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -151,12 +155,14 @@ GtkImageDefinition *
|
||||
gtk_image_definition_new_stock (const char *stock_id)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionStock *stock_def;
|
||||
|
||||
if (stock_id == NULL || stock_id[0] == '\0')
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_STOCK);
|
||||
- def->stock.id = g_strdup (stock_id);
|
||||
+ stock_def = (GtkImageDefinitionStock *) def;
|
||||
+ stock_def->id = g_strdup (stock_id);
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -165,13 +171,15 @@ GtkImageDefinition *
|
||||
gtk_image_definition_new_icon_set (GtkIconSet *icon_set)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionIconSet *icon_set_def;
|
||||
|
||||
if (icon_set == NULL)
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_ICON_SET);
|
||||
+ icon_set_def = (GtkImageDefinitionIconSet *) def;
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
|
||||
- def->icon_set.icon_set = gtk_icon_set_ref (icon_set);
|
||||
+ icon_set_def->icon_set = gtk_icon_set_ref (icon_set);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
|
||||
return def;
|
||||
@@ -182,13 +190,15 @@ gtk_image_definition_new_animation (GdkPixbufAnimation *animation,
|
||||
int scale)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionAnimation *animation_def;
|
||||
|
||||
if (animation == NULL || scale <= 0)
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_ANIMATION);
|
||||
- def->animation.animation = g_object_ref (animation);
|
||||
- def->animation.scale = scale;
|
||||
+ animation_def = (GtkImageDefinitionAnimation *) def;
|
||||
+ animation_def->animation = g_object_ref (animation);
|
||||
+ animation_def->scale = scale;
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -197,12 +207,14 @@ GtkImageDefinition *
|
||||
gtk_image_definition_new_icon_name (const char *icon_name)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionIconName *icon_name_def;
|
||||
|
||||
if (icon_name == NULL || icon_name[0] == '\0')
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_ICON_NAME);
|
||||
- def->icon_name.icon_name = g_strdup (icon_name);
|
||||
+ icon_name_def = (GtkImageDefinitionIconName *) def;
|
||||
+ icon_name_def->icon_name = g_strdup (icon_name);
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -211,12 +223,14 @@ GtkImageDefinition *
|
||||
gtk_image_definition_new_gicon (GIcon *gicon)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionGIcon *gicon_def;
|
||||
|
||||
if (gicon == NULL)
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_GICON);
|
||||
- def->gicon.gicon = g_object_ref (gicon);
|
||||
+ gicon_def = (GtkImageDefinitionGIcon *) def;
|
||||
+ gicon_def->gicon = g_object_ref (gicon);
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -225,12 +239,14 @@ GtkImageDefinition *
|
||||
gtk_image_definition_new_surface (cairo_surface_t *surface)
|
||||
{
|
||||
GtkImageDefinition *def;
|
||||
+ GtkImageDefinitionSurface *surface_def;
|
||||
|
||||
if (surface == NULL)
|
||||
return NULL;
|
||||
|
||||
def = gtk_image_definition_alloc (GTK_IMAGE_SURFACE);
|
||||
- def->surface.surface = cairo_surface_reference (surface);
|
||||
+ surface_def = (GtkImageDefinitionSurface *) def;
|
||||
+ surface_def->surface = cairo_surface_reference (surface);
|
||||
|
||||
return def;
|
||||
}
|
||||
@@ -238,7 +254,10 @@ gtk_image_definition_new_surface (cairo_surface_t *surface)
|
||||
GtkImageDefinition *
|
||||
gtk_image_definition_ref (GtkImageDefinition *def)
|
||||
{
|
||||
- def->empty.ref_count++;
|
||||
+ GtkImageDefinitionEmpty *empty_def;
|
||||
+
|
||||
+ empty_def = (GtkImageDefinitionEmpty *) def;
|
||||
+ empty_def->ref_count++;
|
||||
|
||||
return def;
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
||||
|
||||
From 54d319bc32bc2c6ac6c77671bfd419bdeff6edcb Mon Sep 17 00:00:00 2001
|
||||
From: Peter Bloomfield <PeterBloomfield@bellsouth.net>
|
||||
Date: Sat, 30 Apr 2022 12:59:48 -0400
|
||||
Subject: [PATCH 2/2] gtkimagedefinition: Extend commit b38266c0
|
||||
|
||||
Similarly, uses casts in `gtk_image_definition_unref()`. Compilation
|
||||
succeeds without them, unlike in `gtk_image_definition_ref()`, because
|
||||
`gtk_image_definition_unref()` is not called internally, unlike
|
||||
`gtk_image_definition_ref()`. But the build would fail if some function
|
||||
defined in the module were changed in the future to call
|
||||
`gtk_image_definition_unref()`, and we can future-proof it now. This
|
||||
also removes an inconsistency in how we access the members of the union.
|
||||
---
|
||||
gtk/gtkimagedefinition.c | 35 ++++++++++++++++++++++++++---------
|
||||
1 file changed, 26 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/gtk/gtkimagedefinition.c b/gtk/gtkimagedefinition.c
|
||||
index 9ef8223911..a26d6eb15c 100644
|
||||
--- a/gtk/gtkimagedefinition.c
|
||||
+++ b/gtk/gtkimagedefinition.c
|
||||
@@ -265,9 +265,19 @@ gtk_image_definition_ref (GtkImageDefinition *def)
|
||||
void
|
||||
gtk_image_definition_unref (GtkImageDefinition *def)
|
||||
{
|
||||
- def->empty.ref_count--;
|
||||
+ GtkImageDefinitionEmpty *empty_def;
|
||||
+ GtkImageDefinitionPixbuf *pixbuf_def;
|
||||
+ GtkImageDefinitionAnimation *animation_def;
|
||||
+ GtkImageDefinitionSurface *surface_def;
|
||||
+ GtkImageDefinitionStock *stock_def;
|
||||
+ GtkImageDefinitionIconSet *icon_set_def;
|
||||
+ GtkImageDefinitionIconName *icon_name_def;
|
||||
+ GtkImageDefinitionGIcon *gicon_def;
|
||||
+
|
||||
+ empty_def = (GtkImageDefinitionEmpty *) def;
|
||||
+ empty_def->ref_count--;
|
||||
|
||||
- if (def->empty.ref_count > 0)
|
||||
+ if (empty_def->ref_count > 0)
|
||||
return;
|
||||
|
||||
switch (def->type)
|
||||
@@ -277,27 +287,34 @@ gtk_image_definition_unref (GtkImageDefinition *def)
|
||||
g_assert_not_reached ();
|
||||
break;
|
||||
case GTK_IMAGE_PIXBUF:
|
||||
- g_object_unref (def->pixbuf.pixbuf);
|
||||
+ pixbuf_def = (GtkImageDefinitionPixbuf *) def;
|
||||
+ g_object_unref (pixbuf_def->pixbuf);
|
||||
break;
|
||||
case GTK_IMAGE_ANIMATION:
|
||||
- g_object_unref (def->animation.animation);
|
||||
+ animation_def = (GtkImageDefinitionAnimation *) def;
|
||||
+ g_object_unref (animation_def->animation);
|
||||
break;
|
||||
case GTK_IMAGE_SURFACE:
|
||||
- cairo_surface_destroy (def->surface.surface);
|
||||
+ surface_def = (GtkImageDefinitionSurface *) def;
|
||||
+ cairo_surface_destroy (surface_def->surface);
|
||||
break;
|
||||
case GTK_IMAGE_STOCK:
|
||||
- g_free (def->stock.id);
|
||||
+ stock_def = (GtkImageDefinitionStock *) def;
|
||||
+ g_free (stock_def->id);
|
||||
break;
|
||||
case GTK_IMAGE_ICON_SET:
|
||||
+ icon_set_def = (GtkImageDefinitionIconSet *) def;
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
|
||||
- gtk_icon_set_unref (def->icon_set.icon_set);
|
||||
+ gtk_icon_set_unref (icon_set_def->icon_set);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS;
|
||||
break;
|
||||
case GTK_IMAGE_ICON_NAME:
|
||||
- g_free (def->icon_name.icon_name);
|
||||
+ icon_name_def = (GtkImageDefinitionIconName *) def;
|
||||
+ g_free (icon_name_def->icon_name);
|
||||
break;
|
||||
case GTK_IMAGE_GICON:
|
||||
- g_object_unref (def->gicon.gicon);
|
||||
+ gicon_def = (GtkImageDefinitionGIcon *) def;
|
||||
+ g_object_unref (gicon_def->gicon);
|
||||
break;
|
||||
}
|
||||
|
||||
--
|
||||
GitLab
|
||||
|
13
gtk3.spec
13
gtk3.spec
@ -18,17 +18,15 @@
|
||||
%global __provides_exclude_from ^%{_libdir}/gtk-3.0
|
||||
|
||||
Name: gtk3
|
||||
Version: 3.24.31
|
||||
Release: 3%{?dist}
|
||||
Version: 3.24.33
|
||||
Release: 1%{?dist}
|
||||
Summary: GTK+ graphical user interface library
|
||||
|
||||
License: LGPLv2+
|
||||
URL: https://gtk.org
|
||||
Source0: https://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4273
|
||||
Patch0: gtk3-3.24.31-meson.patch
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4280
|
||||
Patch1: gtk3-3.24.31-meson-reftest.patch
|
||||
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/4677
|
||||
Patch0: gtk3-3.24.33-array-bounds-gcc12.patch
|
||||
|
||||
BuildRequires: pkgconfig(atk) >= %{atk_version}
|
||||
BuildRequires: pkgconfig(atk-bridge-2.0)
|
||||
@ -299,6 +297,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || :
|
||||
%{_datadir}/installed-tests/
|
||||
|
||||
%changelog
|
||||
* Thu May 12 2022 David King <amigadave@amigadave.com> - 3.24.33-1
|
||||
- Update to 3.24.33
|
||||
|
||||
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.24.31-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (gtk+-3.24.31.tar.xz) = e7f8e5003a919e297bd3e616acccbc5cc9bf9c9d41377c108c24db51817fcccec919abc12d05c0ed585d49526d52f0395a1c0f3ed9d9ef816bb0c4b2aa615f9b
|
||||
SHA512 (gtk+-3.24.33.tar.xz) = 35c844af67d442a9d55197028c6b660668c701ad8f83a64791669fca2930ada15194452b59b2ee11f8068098986218744fe9fc4742897af5a6b3eba23c98395e
|
||||
|
Loading…
Reference in New Issue
Block a user