summaryrefslogtreecommitdiffstats
path: root/meta-gnome/recipes-gimp
diff options
context:
space:
mode:
Diffstat (limited to 'meta-gnome/recipes-gimp')
-rw-r--r--meta-gnome/recipes-gimp/babl/babl_0.1.126.bb (renamed from meta-gnome/recipes-gimp/babl/babl_0.1.118.bb)2
-rw-r--r--meta-gnome/recipes-gimp/gegl/gegl/0001-gegl-Add-gegl-arm.def-file.patch53
-rw-r--r--meta-gnome/recipes-gimp/gegl/gegl_0.4.70.bb (renamed from meta-gnome/recipes-gimp/gegl/gegl_0.4.66.bb)6
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0001-gimp-cross-compile-fix-for-bz2.patch30
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0001-meson.build-require-iso-codes-native.patch35
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch51
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0003-meson.build-reproducibility-fix.patch (renamed from meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-reproducibility-fix.patch)0
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch47
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch33
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14422.patch66
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14423.patch106
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14424.patch34
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14425.patch79
-rw-r--r--meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb (renamed from meta-gnome/recipes-gimp/gimp/gimp_3.0.6.bb)32
-rw-r--r--meta-gnome/recipes-gimp/mypaint/mypaint-brushes_2.0.2.bb (renamed from meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb)5
15 files changed, 154 insertions, 425 deletions
diff --git a/meta-gnome/recipes-gimp/babl/babl_0.1.118.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.126.bb
index b120208fad..10e2c482a5 100644
--- a/meta-gnome/recipes-gimp/babl/babl_0.1.118.bb
+++ b/meta-gnome/recipes-gimp/babl/babl_0.1.126.bb
@@ -10,7 +10,7 @@ inherit setuptools3 gnomebase gobject-introspection vala
10DEPENDS += "lcms" 10DEPENDS += "lcms"
11 11
12SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz" 12SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
13SRC_URI[sha256sum] = "c3febe923e225c2a58f952689a89bb1db956788bfecb18a7eff6fc94da9e2469" 13SRC_URI[sha256sum] = "3f090f4b2a61fecf7c8dc60a5804bbc77cefd8d778af2ded059f0e367a52930e"
14 14
15FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}" 15FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}"
16 16
diff --git a/meta-gnome/recipes-gimp/gegl/gegl/0001-gegl-Add-gegl-arm.def-file.patch b/meta-gnome/recipes-gimp/gegl/gegl/0001-gegl-Add-gegl-arm.def-file.patch
deleted file mode 100644
index 1a2d39af4a..0000000000
--- a/meta-gnome/recipes-gimp/gegl/gegl/0001-gegl-Add-gegl-arm.def-file.patch
+++ /dev/null
@@ -1,53 +0,0 @@
1From 69c263ae5f3d4a2d251e00c7236efd035db2bb5a Mon Sep 17 00:00:00 2001
2From: Bruno Lopes <brunvonlope@outlook.com>
3Date: Sat, 13 Dec 2025 08:48:21 -0300
4Subject: [PATCH] gegl: Add gegl-arm.def file
5
6Fix def-file problem in arm environment.
7
8Problem found in gegl/gegl.def
9 the following symbols are in the library,
10 but are not listed in the .def-file:
11 + gegl_downscale_2x2_arm_neon
12 + gegl_downscale_2x2_get_fun_arm_neon
13 + gegl_downscale_2x2_nearest_arm_neon
14 + gegl_resample_bilinear_arm_neon
15 + gegl_resample_boxfilter_arm_neon
16 + gegl_resample_nearest_arm_neon
17
18Upstream-Status: Backport [https://github.com/GNOME/gegl/commit/69c263ae5f3d4a2d251e00c7236efd035db2bb5a]
19Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com>
20---
21 gegl/gegl-arm.def | 6 ++++++
22 gegl/meson.build | 2 +-
23 2 files changed, 7 insertions(+), 1 deletion(-)
24 create mode 100644 gegl/gegl-arm.def
25
26diff --git a/gegl/gegl-arm.def b/gegl/gegl-arm.def
27new file mode 100644
28index 000000000..cb8277cf6
29--- /dev/null
30+++ b/gegl/gegl-arm.def
31@@ -0,0 +1,6 @@
32+ gegl_downscale_2x2_arm_neon
33+ gegl_downscale_2x2_get_fun_arm_neon
34+ gegl_downscale_2x2_nearest_arm_neon
35+ gegl_resample_bilinear_arm_neon
36+ gegl_resample_boxfilter_arm_neon
37+ gegl_resample_nearest_arm_neon
38diff --git a/gegl/meson.build b/gegl/meson.build
39index 0548b069d..85e89bbd2 100644
40--- a/gegl/meson.build
41+++ b/gegl/meson.build
42@@ -102,7 +102,7 @@ if host_cpu_family == 'x86_64'
43 simd_extra_def = ['gegl-x86_64.def']
44 elif host_cpu_family == 'arm'
45 simd_extra = [lib_gegl_arm_neon]
46- simd_extra_def = []
47+ simd_extra_def = ['gegl-arm.def']
48 else
49 simd_extra = []
50 simd_extra_def = []
51--
522.43.0
53
diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.66.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.70.bb
index 3ec7457866..64ff475dc4 100644
--- a/meta-gnome/recipes-gimp/gegl/gegl_0.4.66.bb
+++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.70.bb
@@ -27,10 +27,8 @@ ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
27 27
28SHPV = "${@gnome_verdir("${PV}")}" 28SHPV = "${@gnome_verdir("${PV}")}"
29 29
30SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz \ 30SRC_URI = "https://download.gimp.org/pub/${BPN}/${SHPV}/${BP}.tar.xz"
31 file://0001-gegl-Add-gegl-arm.def-file.patch \ 31SRC_URI[sha256sum] = "47f50d9c3aecd375deb48c11ebfead52d162e4fc162a4b3d44618277f1faec02"
32 "
33SRC_URI[sha256sum] = "92b05855e2190868949d70cea6e9a50b163a6a441242e740a6263975379f993b"
34 32
35PACKAGECONFIG ??= "gexiv2 libraw librsvg pango poppler sdl2" 33PACKAGECONFIG ??= "gexiv2 libraw librsvg pango poppler sdl2"
36PACKAGECONFIG:class-native = "librsvg" 34PACKAGECONFIG:class-native = "librsvg"
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-gimp-cross-compile-fix-for-bz2.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-gimp-cross-compile-fix-for-bz2.patch
deleted file mode 100644
index 380e425f25..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/0001-gimp-cross-compile-fix-for-bz2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
1From a7e40e19d17404cf5ec4135fc1becd5a90f5e1e1 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Wed, 25 Dec 2024 07:27:04 +0100
4Subject: [PATCH] gimp: cross-compile fix for bz2
5
6autotools bzip2 build does not create pkgconfig files so looking for the dependency fails.
7
8Signed-off-by: Markus Volk <f_l_k@t-online.de>
9
10Upstream-Status: Inappropriate [can probably be removed once bzip2 is built with meson or cmake]
11---
12 meson.build | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/meson.build b/meson.build
16index 4e48f8c64c..d5dce47015 100644
17--- a/meson.build
18+++ b/meson.build
19@@ -777,7 +777,7 @@ zlib = dependency('zlib')
20 zlib = dependency('zlib')
21
22 # Compiler-provided headers can't be found in crossroads environment
23-if not meson.is_cross_build()
24+if true
25 bz2 = cc.find_library('bz2')
26 else
27 bz2 = dependency('bzip2')
28--
292.47.1
30
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-meson.build-require-iso-codes-native.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-meson.build-require-iso-codes-native.patch
deleted file mode 100644
index ffb8ef29df..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/0001-meson.build-require-iso-codes-native.patch
+++ /dev/null
@@ -1,35 +0,0 @@
1From 8ccd12d6ec3330e9646ae9db6fd491226d516dc3 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Fri, 28 Mar 2025 01:33:00 +0100
4Subject: [PATCH] meson.build: require iso-codes-native
5
6This fixes:
7FAILED: app/widgets/gimplanguagestore-data.h
8/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/gimp/3.0.2/build/tools/gen-languages
9gimp_language_store_parser_init: 0.006277 seconds
10ERROR: parse_iso_codes: error parsing '/usr/share/xml/iso-codes/iso_639_3.xml': No such file or directory
11
12Upstream-Status: Denied [https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/2185]
13Upstream argues that iso-codes locale (.mo files) are required on the target
14
15Signed-off-by: Markus Volk <f_l_k@t-online.de>
16---
17 meson.build | 2 +-
18 1 file changed, 1 insertion(+), 1 deletion(-)
19
20diff --git a/meson.build b/meson.build
21index efbc2d8175..fd050f4d3c 100644
22--- a/meson.build
23+++ b/meson.build
24@@ -1135,7 +1135,7 @@ endif
25 ################################################################################
26 # ISO codes
27
28-isocodes = dependency('iso-codes', required: false)
29+isocodes = dependency('iso-codes', required: false, native: true)
30 if isocodes.found()
31 isocodes_prefix = isocodes.get_variable(pkgconfig: 'prefix')
32 isocodes_location = isocodes_prefix / 'share' / 'xml' / 'iso-codes'
33--
342.49.0
35
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch b/meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch
new file mode 100644
index 0000000000..826d3394ad
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch
@@ -0,0 +1,51 @@
1From 8ccd12d6ec3330e9646ae9db6fd491226d516dc3 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Fri, 28 Mar 2025 01:33:00 +0100
4Subject: [PATCH] meson.build: use relative path for ISO_CODES_LOCATION
5
6If the host system does not provide iso-codes, the build fails with the following message:
7FAILED: app/widgets/gimplanguagestore-data.h
8/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/gimp/3.0.2/build/tools/gen-languages
9gimp_language_store_parser_init: 0.006277 seconds
10ERROR: parse_iso_codes: Error parsing ‘/usr/share/xml/iso-codes/iso_639_3.xml’: No such file or directory
11
12So far, we have worked around the problem by using the “iso-codes-native” dependency, but the path
13for 'isocodes_prefix' is then generated from the native pkgconfig entry, resulting in a hard-coded path to
14${STAGING_DATADIR_NATIVE}, which then leaks into the binaries of gimp and gimp-console.
15
16Instead, use iso-codes for the target and adjust the path stored in ISO_CODES_LOCATION
17(which is used in tools/gen-languages.c) to a relative path so that the build system can find it.
18
19This allows us to depend on iso-codes for the target system, while still working on host systems that
20do not provide iso-codes.
21
22It also fixes a reproducibility issue:
23ERROR: gimp-3.2.0-r0 do_package_qa: QA Issue: File /usr/bin/gimp-console-3.2 in package gimp contains reference to TMPDIR [buildpaths]
24ERROR: gimp-3.2.0-r0 do_package_qa: QA Issue: File /usr/bin/gimp-3.2 in package gimp contains reference to TMPDIR [buildpaths]
25ERROR: gimp-3.2.0-r0 do_package_qa: Fatal QA errors were found, failing task.
26ERROR: Logfile of failure stored in: /home/flk/bitbake-builds/poky/build/tmp/work/corei7-64-oe-linux/gimp/3.2.0/temp/log.do_package_qa.597065
27ERROR: Task (/home/flk/bitbake-builds/poky/layers/meta-openembedded/meta-gnome/recipes-gimp/gimp/gimp_3.2.0.bb:do_package_qa) failed with exit code '1'
28
29Upstream-Status: Inappropriate [oe-specific]
30
31Signed-off-by: Markus Volk <f_l_k@t-online.de>
32---
33 meson.build | 2 +-
34 1 file changed, 1 insertion(+), 1 deletion(-)
35
36diff --git a/meson.build b/meson.build
37index efbc2d8175..fd050f4d3c 100644
38--- a/meson.build
39+++ b/meson.build
40@@ -1184,7 +1184,7 @@
41 isocodes_prefix = isocodes.get_variable(pkgconfig: 'prefix')
42 isocodes_location = isocodes_prefix / 'share' / 'xml' / 'iso-codes'
43 isocodes_localedir= isocodes_prefix / 'share' / 'locale'
44- conf.set_quoted('ISO_CODES_LOCATION', isocodes_location)
45+ conf.set_quoted('ISO_CODES_LOCATION', '..' / 'recipe-sysroot' / 'usr' / 'share' / 'xml' / 'iso-codes')
46 conf.set_quoted('ISO_CODES_LOCALEDIR', isocodes_localedir)
47 endif
48 conf.set('HAVE_ISO_CODES', isocodes.found())
49--
502.49.0
51
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-reproducibility-fix.patch b/meta-gnome/recipes-gimp/gimp/gimp/0003-meson.build-reproducibility-fix.patch
index 532715d588..532715d588 100644
--- a/meta-gnome/recipes-gimp/gimp/gimp/0002-meson.build-reproducibility-fix.patch
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0003-meson.build-reproducibility-fix.patch
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch b/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch
new file mode 100644
index 0000000000..4eb6f9553d
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch
@@ -0,0 +1,47 @@
1From d00c3c9fb8267f53cf730b8441a7d7f904af5215 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Mon, 20 Apr 2026 09:14:50 +0200
4Subject: [PATCH] meson.build: dont check for python3-pygobject gexiv2 support
5MIME-Version: 1.0
6Content-Type: text/plain; charset=UTF-8
7Content-Transfer-Encoding: 8bit
8
9We only provide support for gexiv2 in python3-pygobject for the target, but
10unfortunately this feature is being requested for the native version, which
11would require gexiv2-native to be compilable — something I consider quite
12hard to achieve and maybe also not desirable at all.
13
14Remove the test for this feature, since we know that our target provides it.
15
16Signed-off-by: Markus Volk <f_l_k@t-online.de>
17
18Upstream-Status: Inappropriate [oe-specific]
19---
20 meson.build | 4 ++--
21 1 file changed, 2 insertions(+), 2 deletions(-)
22
23diff --git a/meson.build b/meson.build
24index 4f6f8ce9a4..4509cd2c39 100644
25--- a/meson.build
26+++ b/meson.build
27@@ -1224,7 +1224,7 @@ foreach py : py_candidates
28 '''except (ImportError):''',
29 ''' sys.exit(1)''']),
30 check: false).returncode() == 0
31- if pygobject_found.returncode() == 0 and pygobject_found.stdout().strip().version_compare(pygobject_minver) and pygobject_gexiv2_found
32+ if pygobject_found.returncode() == 0 and pygobject_found.stdout().strip().version_compare(pygobject_minver)
33 break
34 endif
35 endif
36@@ -1235,7 +1235,7 @@ if not python.found() or not python.language_version().version_compare(python3_m
37 endif
38 message('Found Python @0@'.format(python.language_version()))
39
40-if pygobject_found.returncode() != 0 or not pygobject_found.stdout().strip().version_compare(pygobject_minver) or not pygobject_gexiv2_found
41+if pygobject_found.returncode() != 0 or not pygobject_found.stdout().strip().version_compare(pygobject_minver)
42 error('No suitable PyGObject (with GExiv2 submodule) found. Minimum supported version: @0@'.format(pygobject_minver))
43 endif
44 message('Found PyGObject: @0@'.format(pygobject_found.stdout().strip()))
45--
462.53.0
47
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch b/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch
new file mode 100644
index 0000000000..91e7f92336
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp/0005-docs-meson.build-disable-gimprc-man-build.patch
@@ -0,0 +1,33 @@
1From 47948d14777438ca5e8619a1f9293db28af88305 Mon Sep 17 00:00:00 2001
2From: Markus Volk <f_l_k@t-online.de>
3Date: Mon, 20 Apr 2026 09:24:38 +0200
4Subject: [PATCH] docs/meson.build: disable gimprc man build
5
6This would require a native variant of gimp-console
7
8Signed-off-by: Markus Volk <f_l_k@t-online.de>
9
10Upstream-Status: Inappropriate [oe-specific]
11---
12 docs/meson.build | 4 ++--
13 1 file changed, 2 insertions(+), 2 deletions(-)
14
15diff --git a/docs/meson.build b/docs/meson.build
16index 70b57b52ef..d36e47dbb5 100644
17--- a/docs/meson.build
18+++ b/docs/meson.build
19@@ -16,9 +16,9 @@ gimprc_man = custom_target('gimprc-' + gimp_app_version + '.5',
20 command: [ gimp_exe, '--no-interface',
21 '--dump-gimprc-manpage' ],
22 capture: true,
23- build_by_default: true,
24+ build_by_default: false,
25 env: gimp_run_env,
26- install: true,
27+ install: false,
28 install_dir: get_option('mandir') / 'man5')
29
30 gimptool_man = configure_file(input : 'gimptool.1.in',
31--
322.53.0
33
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14422.patch b/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14422.patch
deleted file mode 100644
index 420e013916..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14422.patch
+++ /dev/null
@@ -1,66 +0,0 @@
1From 0a941cab81396d65a8ab547847f8c542039e214f Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Sun, 23 Nov 2025 16:43:51 +0000
4Subject: [PATCH] plug-ins: Fix ZDI-CAN-28273
5
6From: Alx Sa <cmyk.student@gmail.com>
7
8Resolves #15286
9Adds a check to the memory allocation
10in pnm_load_raw () with g_size_checked_mul ()
11to see if the size would go out of bounds.
12If so, we don't try to allocate and load the
13image.
14
15CVE: CVE-2025-14422
16Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/4ff2d773d58064e6130495de498e440f4a6d5edb]
17Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
18---
19 plug-ins/common/file-pnm.c | 13 +++++++++++--
20 1 file changed, 11 insertions(+), 2 deletions(-)
21
22diff --git a/plug-ins/common/file-pnm.c b/plug-ins/common/file-pnm.c
23index 32a33a4..9d349e9 100644
24--- a/plug-ins/common/file-pnm.c
25+++ b/plug-ins/common/file-pnm.c
26@@ -674,7 +674,7 @@ load_image (GFile *file,
27 GError **error)
28 {
29 GInputStream *input;
30- GeglBuffer *buffer;
31+ GeglBuffer *buffer = NULL;
32 GimpImage * volatile image = NULL;
33 GimpLayer *layer;
34 char buf[BUFLEN + 4]; /* buffer for random things like scanning */
35@@ -708,6 +708,9 @@ load_image (GFile *file,
36 g_object_unref (input);
37 g_free (pnminfo);
38
39+ if (buffer)
40+ g_object_unref (buffer);
41+
42 if (image)
43 gimp_image_delete (image);
44
45@@ -1060,6 +1063,7 @@ pnm_load_raw (PNMScanner *scan,
46 const Babl *format = NULL;
47 gint bpc;
48 guchar *data, *d;
49+ gsize data_size;
50 gushort *s;
51 gint x, y, i;
52 gint start, end, scanlines;
53@@ -1070,7 +1074,12 @@ pnm_load_raw (PNMScanner *scan,
54 bpc = 1;
55
56 /* No overflow as long as gimp_tile_height() < 1365 = 2^(31 - 18) / 6 */
57- data = g_new (guchar, gimp_tile_height () * info->xres * info->np * bpc);
58+ if (! g_size_checked_mul (&data_size, gimp_tile_height (), info->xres) ||
59+ ! g_size_checked_mul (&data_size, data_size, info->np) ||
60+ ! g_size_checked_mul (&data_size, data_size, bpc))
61+ CHECK_FOR_ERROR (FALSE, info->jmpbuf, _("Unsupported maximum value."));
62+
63+ data = g_new (guchar, data_size);
64
65 input = pnmscanner_input (scan);
66
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14423.patch b/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14423.patch
deleted file mode 100644
index 50a0adfe89..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14423.patch
+++ /dev/null
@@ -1,106 +0,0 @@
1From a83e8c4ad8ffbce40aa9f9a0f49880e802ef7da1 Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Sun, 23 Nov 2025 04:22:49 +0000
4Subject: [PATCH] plug-ins: Fix ZDI-CAN-28311
5
6From: Alx Sa <cmyk.student@gmail.com>
7
8Resolves #15292
9The IFF specification states that EHB format images
10have exactly 32 colors in their palette. However, it
11is possible for images in the wild to place an incorrect
12palette size. This patch checks for this, and either limits
13the palette size or breaks accordingly.
14
15CVE: CVE-2025-14423
16Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/481cdbbb97746be1145ec3a633c567a68633c521]
17Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
18---
19 plug-ins/common/file-iff.c | 32 ++++++++++++++++++++++----------
20 1 file changed, 22 insertions(+), 10 deletions(-)
21
22diff --git a/plug-ins/common/file-iff.c b/plug-ins/common/file-iff.c
23index d144a96..f087947 100644
24--- a/plug-ins/common/file-iff.c
25+++ b/plug-ins/common/file-iff.c
26@@ -337,7 +337,7 @@ load_image (GFile *file,
27 width = bitMapHeader->w;
28 height = bitMapHeader->h;
29 nPlanes = bitMapHeader->nPlanes;
30- row_length = (width + 15) / 16;
31+ row_length = ((width + 15) / 16) * 2;
32 pixel_size = nPlanes / 8;
33 aspect_x = bitMapHeader->xAspect;
34 aspect_y = bitMapHeader->yAspect;
35@@ -375,6 +375,18 @@ load_image (GFile *file,
36 {
37 /* EHB mode adds 32 more colors. Each are half the RGB values
38 * of the first 32 colors */
39+ if (palette_size < 32)
40+ {
41+ g_set_error (error, G_FILE_ERROR,
42+ g_file_error_from_errno (errno),
43+ _("Invalid ILBM colormap size"));
44+ return NULL;
45+ }
46+ else if (palette_size > 32)
47+ {
48+ palette_size = 32;
49+ }
50+
51 for (gint j = 0; j < palette_size * 2; j++)
52 {
53 gint offset_index = j + 32;
54@@ -386,7 +398,7 @@ load_image (GFile *file,
55 gimp_cmap[offset_index * 3 + 2] =
56 colorMap->colorRegister[j].blue / 2;
57 }
58- /* EHB mode always has 64 colors */
59+ /* EHB mode always has 64 colors in total */
60 palette_size = 64;
61 }
62 }
63@@ -447,7 +459,7 @@ load_image (GFile *file,
64 {
65 guchar *pixel_row;
66
67- pixel_row = g_malloc (width * pixel_size * sizeof (guchar));
68+ pixel_row = g_malloc0 (width * pixel_size);
69
70 /* PBM uses one byte per pixel index */
71 if (ILBM_imageIsPBM (true_image))
72@@ -459,7 +471,7 @@ load_image (GFile *file,
73 else
74 deleave_rgb_row (bitplanes, pixel_row, width, nPlanes, pixel_size);
75
76- bitplanes += (row_length * 2 * nPlanes);
77+ bitplanes += (row_length * nPlanes);
78
79 gegl_buffer_set (buffer, GEGL_RECTANGLE (0, y_height, width, 1), 0,
80 NULL, pixel_row, GEGL_AUTO_ROWSTRIDE);
81@@ -528,7 +540,7 @@ deleave_ham_row (const guchar *gimp_cmap,
82 /* Deleave rows */
83 for (gint i = 0; i < row_length; i++)
84 {
85- for (gint j = 0; j < 8; j++)
86+ for (gint j = 0; j < nPlanes; j++)
87 {
88 guint8 bitmask = (1 << (8 - j)) - (1 << (7 - j));
89 guint8 control = 0;
90@@ -590,11 +602,11 @@ deleave_ham_row (const guchar *gimp_cmap,
91 }
92
93 static void
94-deleave_rgb_row (IFF_UByte *bitplanes,
95- guchar *pixel_row,
96- gint width,
97- gint nPlanes,
98- gint pixel_size)
99+deleave_rgb_row (IFF_UByte *bitplanes,
100+ guchar *pixel_row,
101+ gint width,
102+ gint nPlanes,
103+ gint pixel_size)
104 {
105 gint row_length = ((width + 15) / 16) * 2;
106 gint current_pixel = 0;
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14424.patch b/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14424.patch
deleted file mode 100644
index e7821d3109..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14424.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From d30875b606085316b1cb7ac1da0d26e5bac0cf2c Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Thu, 13 Nov 2025 18:26:51 -0500
4Subject: [PATCH] app: fix #15288 crash when loading malformed xcf
5
6From: Jacob Boerema <jgboerema@gmail.com>
7
8ZDI-CAN-28376 vulnerability
9
10Add extra tests to not crash on a NULL g_class.
11
12CVE: CVE-2025-14424
13Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/5cc55d078b7fba995cef77d195fac325ee288ddd]
14Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
15---
16 app/core/gimpitemlist.c | 5 ++++-
17 1 file changed, 4 insertions(+), 1 deletion(-)
18
19diff --git a/app/core/gimpitemlist.c b/app/core/gimpitemlist.c
20index 6473938..a431519 100644
21--- a/app/core/gimpitemlist.c
22+++ b/app/core/gimpitemlist.c
23@@ -345,7 +345,10 @@ gimp_item_list_named_new (GimpImage *image,
24 g_return_val_if_fail (GIMP_IS_IMAGE (image), NULL);
25
26 for (iter = items; iter; iter = iter->next)
27- g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (iter->data), item_type), NULL);
28+ {
29+ g_return_val_if_fail (iter->data && ((GTypeInstance*) (iter->data))->g_class, NULL);
30+ g_return_val_if_fail (g_type_is_a (G_OBJECT_TYPE (iter->data), item_type), NULL);
31+ }
32
33 if (! items)
34 {
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14425.patch b/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14425.patch
deleted file mode 100644
index 44e9587570..0000000000
--- a/meta-gnome/recipes-gimp/gimp/gimp/CVE-2025-14425.patch
+++ /dev/null
@@ -1,79 +0,0 @@
1From 042e27792026460badbe49664c02fe181e95cb2b Mon Sep 17 00:00:00 2001
2From: Gyorgy Sarvari <skandigraun@gmail.com>
3Date: Wed, 12 Nov 2025 13:25:44 +0000
4Subject: [PATCH] plug-ins: Mitigate ZDI-CAN-28248 for JP2 images
5
6From: Alx Sa <cmyk.student@gmail.com>
7
8Resolves #15285
9Per the report, it's possible to exceed the size of the pixel buffer
10with a high precision_scaled value, as we size it to the width * bpp.
11This patch includes precision_scaled in the allocation calculation.
12It also adds a g_size_checked_mul () check to ensure there's no
13overflow, and moves the pixel and buffer memory freeing to occur
14in the out section so that it always runs even on failure.
15
16CVE: CVE-2025-14425
17Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/cd1c88a0364ad1444c06536731972a99bd8643fd]
18Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
19---
20 plug-ins/common/file-jp2-load.c | 23 ++++++++++++++++-------
21 1 file changed, 16 insertions(+), 7 deletions(-)
22
23diff --git a/plug-ins/common/file-jp2-load.c b/plug-ins/common/file-jp2-load.c
24index 064b616..604313a 100644
25--- a/plug-ins/common/file-jp2-load.c
26+++ b/plug-ins/common/file-jp2-load.c
27@@ -1045,14 +1045,15 @@ load_image (GimpProcedure *procedure,
28 GimpColorProfile *profile = NULL;
29 GimpImage *gimp_image = NULL;
30 GimpLayer *layer;
31+ GeglBuffer *buffer = NULL;
32+ guchar *pixels = NULL;
33+ gsize pixels_size;
34 GimpImageType image_type;
35 GimpImageBaseType base_type;
36 gint width;
37 gint height;
38 gint num_components;
39- GeglBuffer *buffer;
40 gint i, j, k, it;
41- guchar *pixels;
42 const Babl *file_format;
43 gint bpp;
44 GimpPrecision image_precision;
45@@ -1318,7 +1319,15 @@ load_image (GimpProcedure *procedure,
46 bpp = babl_format_get_bytes_per_pixel (file_format);
47
48 buffer = gimp_drawable_get_buffer (GIMP_DRAWABLE (layer));
49- pixels = g_new0 (guchar, width * bpp);
50+
51+ if (! g_size_checked_mul (&pixels_size, width, (bpp * (precision_scaled / 8))))
52+ {
53+ g_set_error (error, GIMP_PLUG_IN_ERROR, 0,
54+ _("Defined row size is too large in JP2 image '%s'."),
55+ gimp_file_get_utf8_name (file));
56+ goto out;
57+ }
58+ pixels = g_new0 (guchar, pixels_size);
59
60 for (i = 0; i < height; i++)
61 {
62@@ -1344,13 +1353,13 @@ load_image (GimpProcedure *procedure,
63 gegl_buffer_set (buffer, GEGL_RECTANGLE (0, i, width, 1), 0,
64 file_format, pixels, GEGL_AUTO_ROWSTRIDE);
65 }
66-
67- g_free (pixels);
68-
69- g_object_unref (buffer);
70 gimp_progress_update (1.0);
71
72 out:
73+ if (pixels)
74+ g_free (pixels);
75+ if (buffer)
76+ g_object_unref (buffer);
77 if (profile)
78 g_object_unref (profile);
79 if (image)
diff --git a/meta-gnome/recipes-gimp/gimp/gimp_3.0.6.bb b/meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb
index fa192555bc..82c68346eb 100644
--- a/meta-gnome/recipes-gimp/gimp/gimp_3.0.6.bb
+++ b/meta-gnome/recipes-gimp/gimp/gimp_3.2.4.bb
@@ -20,7 +20,7 @@ DEPENDS = " \
20 glib-2.0-native \ 20 glib-2.0-native \
21 gtk+3 \ 21 gtk+3 \
22 harfbuzz \ 22 harfbuzz \
23 iso-codes-native \ 23 iso-codes \
24 jpeg \ 24 jpeg \
25 json-glib \ 25 json-glib \
26 lcms \ 26 lcms \
@@ -32,11 +32,12 @@ DEPENDS = " \
32 librsvg-native \ 32 librsvg-native \
33 libxmu \ 33 libxmu \
34 libxslt-native \ 34 libxslt-native \
35 mypaint-brushes-1.0 \ 35 mypaint-brushes \
36 pango \ 36 pango \
37 poppler \ 37 poppler \
38 poppler-data \ 38 poppler-data \
39 python3-pygobject-native \ 39 python3-pygobject-native \
40 python3-pycairo-native \
40 tiff \ 41 tiff \
41 xz \ 42 xz \
42 zlib \ 43 zlib \
@@ -46,7 +47,9 @@ DEPENDS:append:libc-musl = " libexecinfo"
46 47
47LDFLAGS:append:libc-musl = " -lexecinfo" 48LDFLAGS:append:libc-musl = " -lexecinfo"
48 49
49inherit meson gtk-icon-cache mime-xdg pkgconfig gettext gobject-introspection vala 50inherit meson gtk-icon-cache mime-xdg pkgconfig gettext gobject-introspection vala bash-completion
51
52REQUIRED_DISTRO_FEATURES = "x11"
50 53
51GIR_MESON_OPTION = 'can-crosscompile-gir' 54GIR_MESON_OPTION = 'can-crosscompile-gir'
52VALA_MESON_OPTION = "vala" 55VALA_MESON_OPTION = "vala"
@@ -56,17 +59,14 @@ GIDOCGEN_MESON_OPTION = "gi-docgen"
56GIDOCGEN_MESON_ENABLE_FLAG = "enabled" 59GIDOCGEN_MESON_ENABLE_FLAG = "enabled"
57GIDOCGEN_MESON_DISABLE_FLAG = "disabled" 60GIDOCGEN_MESON_DISABLE_FLAG = "disabled"
58 61
59SRC_URI = "https://download.gimp.org/gimp/v3.0/${BP}.tar.xz \ 62SRC_URI = "https://download.gimp.org/gimp/v3.2/${BP}.tar.xz \
60 file://0001-gimp-cross-compile-fix-for-bz2.patch \
61 file://0002-meson.build-reproducibility-fix.patch \
62 file://0001-meson.build-dont-check-for-lgi.patch \ 63 file://0001-meson.build-dont-check-for-lgi.patch \
63 file://0001-meson.build-require-iso-codes-native.patch \ 64 file://0002-meson.build-use-relative-path-for-ISO_CODES_LOCATION.patch \
64 file://CVE-2025-14422.patch \ 65 file://0003-meson.build-reproducibility-fix.patch \
65 file://CVE-2025-14423.patch \ 66 file://0004-meson.build-dont-check-for-python3-pygobject-gexiv2-.patch \
66 file://CVE-2025-14424.patch \ 67 file://0005-docs-meson.build-disable-gimprc-man-build.patch \
67 file://CVE-2025-14425.patch \ 68"
68 " 69SRC_URI[sha256sum] = "7312bc53e9c6d2d0056ca7b93f1c6b98707946dd934f714c21b8746ecb601588"
69SRC_URI[sha256sum] = "246c225383c72ef9f0dc7703b7d707084bbf177bd2900e94ce466a62862e296b"
70 70
71PACKAGECONFIG[aa] = "-Daa=enabled,-Daa=disabled,aalib" 71PACKAGECONFIG[aa] = "-Daa=enabled,-Daa=disabled,aalib"
72PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" 72PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib"
@@ -135,7 +135,11 @@ do_install:prepend() {
135 135
136FILES:${PN} += "${datadir}/metainfo" 136FILES:${PN} += "${datadir}/metainfo"
137 137
138RDEPENDS:${PN} = "mypaint-brushes-1.0 glib-networking python3-pygobject" 138RDEPENDS:${PN} = "mypaint-brushes glib-networking python3-pygobject python3-pycairo"
139 139
140CVE_STATUS[CVE-2007-3741] = "not-applicable-platform: This only applies for Mandriva Linux" 140CVE_STATUS[CVE-2007-3741] = "not-applicable-platform: This only applies for Mandriva Linux"
141CVE_STATUS[CVE-2025-8672] = "not-applicable-config: the vulnerability only affects MacOS" 141CVE_STATUS[CVE-2025-8672] = "not-applicable-config: the vulnerability only affects MacOS"
142
143CVE_STATUS_GROUPS += "CVE_STATUS_FIXED_ALREADY"
144CVE_STATUS_FIXED_ALREADY[status] = "fixed-version: The issue is fixed since v3.0.8"
145CVE_STATUS_FIXED_ALREADY = "CVE-2025-15059 CVE-2026-0797 CVE-2026-2044 CVE-2026-2045 CVE-2026-2047 CVE-2026-2048"
diff --git a/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes_2.0.2.bb
index b6b8ff8c1f..4e444938b1 100644
--- a/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb
+++ b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes_2.0.2.bb
@@ -4,8 +4,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=65d3616852dbf7b1a6d4b53b00626032"
4 4
5inherit autotools allarch 5inherit autotools allarch
6 6
7SRC_URI = "git://github.com/mypaint/mypaint-brushes.git;protocol=https;branch=v1.3.x" 7SRC_URI = "git://github.com/mypaint/mypaint-brushes.git;protocol=https;branch=master;tag=v${PV}"
8SRCREV = "8a0124ac0675103eae8fa41fad533851768ae1ce" 8SRCREV = "0df6d130152a94c3bd67709941978074a1303cc5"
9PV = "1.3.1"
10 9
11FILES:${PN} += "${datadir}/mypaint-data" 10FILES:${PN} += "${datadir}/mypaint-data"