Commit graph

56734 commits

Author SHA1 Message Date
Jehan
bf54bfaeb9 libgimp: 3 new functions backported for the 3.0.8 release.
And one function deprecated as of 3.0.8 too, in favor of one of the new
functions.

(cherry picked from commit 6c7e56f205)
2026-01-23 21:46:43 +01:00
Bruno Lopes
f62f8389ab build/macos: Other /opt/local check fix 2026-01-23 16:21:51 -03:00
Bruno Lopes
5837be97d8 build/macos: Fix /opt/local check
shell syntax requires spaces.
2026-01-23 16:16:35 -03:00
Jacob Boerema
d9d0f5b4e6 plug-ins: Fix #15732 PSP File Parsing Integer Overflow...
Leading to Heap Corruption

An integer overflow vulnerability has been identified in the PSP
(Paint Shop Pro) file parser of GIMP. The issue occurs in the
read_creator_block() function, where the Creator metadata block is
processed. Specifically, a 32-bit length value read from the file is
used directly for memory allocation without proper validation.
Trigger -> when length is set to 0xFFFFFFFF

To fix this, we check that using that length doesn't exceed the end
of the creator block. If it does, we return with an error message.
2026-01-23 11:35:56 -05:00
Bruno Lopes
61c078fa43 meson, tools: sys.executable is not the same as python.full_path()
This avoids using the python chosen by Meson's find_program(),
which is not the one from find_installation() and can not have GI.
2026-01-22 18:40:36 -03:00
Alx Sa
dd28bae44c widgets: Make Fx icon invisible when no filters
We use a GimpCellRenderToggle for the Fx icon
in the layer and channel docks. If you hover over it
when there's no filter, a square "checkbox" will appear
and give the impression you can click on it, even though
you currently can not.

This patch connects the "visible" property of the toggle to
the number of filters attached to the drawable, similar to
what we did for "active". This prevents the checkbox from
appearing, and will hopefully reduce user confusion.
2026-01-22 02:06:01 +00:00
Jehan
722fe8c236 NEWS: update. 2026-01-21 21:52:02 +01:00
Jehan
e28c97d28f libgimpwidgets: add an API warning for deleting GIMP_ICON_TEXTURE later. 2026-01-21 21:45:29 +01:00
Jehan
1ff60b7f51 gimp-data: bump.
Not strictly needed, but for allowing shallow submodule clones, it's
better to always be at HEAD.
2026-01-21 21:09:54 +01:00
Bruno Lopes
90bd25567a build/windows: Use PYTHON_VERSION on Inno scripts
Let's use the facility recently introduced by 0bca2158

This avoids future breakages when MSYS2 update the python version in the future.
2026-01-20 15:03:50 -03:00
Alx Sa
cf41831a58 display, widgets: Change Navigation/Selection editor UI...
...for dark mode.

The Navigation and Selection Editor
docks use GIMP_ICON_TEXTURE as their
default background when there's no
active image. On dark mode, this creates
large bright areas in the UI.
This patch removes the calls to
gimp_view_renderer_set_background ()
for these docks so the theme background
is used instead.
2026-01-20 16:46:12 +00:00
Bruno Lopes
f1d9c1f825 gimp-data: Update GIMP .icns to work on all macOS versions
See: https://gitlab.gnome.org/GNOME/gimp/-/issues/15023
2026-01-19 20:45:57 -03:00
Bruno Lopes
6444079d22 build/macos: Set background for .dmg on CI
By using a pre-made .DS_Store file, this bypasses Apple Script
restrictions which made impossible to set custom background on CI.
We don't have rights to tweak com.apple.TCC like gimp-macos-build.

.DS_Store is a binary file, but it is tiny and rarely updated,
which follows the precedent of build/windows/store/*.pfx.
2026-01-19 18:03:57 -03:00
Bruno Lopes
57bdf8baf4 build/linux: Add missing FIXMEs to snapcraft.yaml 2026-01-19 15:13:56 -03:00
Sabri Ünal
79910889a5 Update Turkish translation 2026-01-19 16:13:22 +00:00
Bruno Lopes
45dddaa816 build/macos: Update comment about Liquid Glass
It is stalled for now because GNOME runner does not have Xcode.app
2026-01-18 16:36:40 -03:00
Bruno Lopes
2629ac59ac gimp-data: Generate .icon assets for macOS 26+ 2026-01-18 16:04:11 -03:00
Alx Sa
dd2faac351 plug-ins: Resolve ZDI-CAN-28530 for ICNS load
Our ICNS importer did not verify that the ICNS resource
data size was defined as larger than 0. Therefore, it
was possible to create a malicious file that would infinitely
load since the file cursor would not advance. This patch
adds a check for the icon size being 0, and stops the loop
if this is encountered.

Additionally, there is no header defined limit for the number of
icons in an ICNS file. This patch switches from using a hardcoded
256 icon limit to using GLists to dynamically add icons as we read
them in.
2026-01-18 17:17:31 +00:00
Bruno Lopes
608b0289e9 build/windows: Avoid calling Internet Explorer parser on .PS1 scripts
We started to get this error on CI:

> Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available.

So, for simple requests, let's use the Invoke-RestMethod cmdlet.
For download requests, let's use Invoke-WebRequest -UseBasicParsing
2026-01-18 12:34:48 -03:00
Bruno Lopes
5a87f29e8c build/macos: Update Homebrew PR number on libthai comment 2026-01-17 19:01:59 -03:00
Bruno Lopes
9143922d8b build/linux: Update v0.3.29.tar.gz to 0.3.31
Synced from cf450908d1
2026-01-17 18:35:47 -03:00
Bruno Lopes
0e2f0f6880 build/macos, plug-ins: Generate file associations for macOS automatically
Following 2ce3c604 (for Windows) and d56676a2 (for Linux)

To make this possible the generate_mime_ext.py internals were
changed to construct a dictionary instead of a list like before,
because macOS supports both extension and mimetype (and also UTI).
2026-01-17 18:13:23 -03:00
Bruno Lopes
c71c160866 build/macos: Add '(INFO)'messages to assets section of DMG script 2026-01-17 17:08:21 -03:00
Bruno Lopes
bc8ff6a3cb build/macos: Organize files section on DMG script
Merely cosmetical changes to align with the MSIX script
2026-01-17 17:08:21 -03:00
Bruno Lopes
f3c957d729 build/macos: Explain why we do not use -mountrandom on DMG attaching 2026-01-17 17:08:21 -03:00
Alx Sa
916cf84e96 display: Update vector layer fill with DnD color/patterns
This patch adds to the code that updates
text layers when colors are drag and dropped
on them. It now also allows color and
pattern drag and drops to update the fill
of vector layers.

Link layers are also protected so they won't
be destructively changed unless 
rasterized.
2026-01-17 15:06:56 +00:00
Bruno Lopes
84e348a27c build/macos: Hide Finder path bar on macOS dmg 2026-01-16 13:46:14 -03:00
Bruno Lopes
62cf8034a2 plug-ins: Fix .py plugins on non-relocatable macOS builds
We can't rely on python3 from shebang or python3 from .interp since
the found python by Meson can be python3.XX on MacPorts and Homebrew,
even with the PATH environment variable properly set.

Also, explains better the purpose of python 3 on relocatable builds.
2026-01-15 18:39:32 -03:00
Bruno Lopes
8a42c03f0b app: babl is now relocatable on macOS
Since babl 0.1.120. See: GNOME/babl@66ef020f

Properly fixes Infrastructure/gimp-macos-build#13 (closed)
2026-01-15 18:10:48 -03:00
Alx Sa
6a8e426002 text: Prevent CRITICAL when modifying non-raster text layer
This patch prevents the following CRITICAL:
gimp_rasterizable_restore: assertion 
'gimp_rasterizable_is_rasterized (rasterizable)' failed

It is possible to call gimp_text_layer_set () on a text layer
that is not rasterized. Since gimp_rasterizable_restore ()
is always run even when we don't need to restore the layer
to non-rasterized format, it threw a CRITICAL. This patch
adds a check for gimp_rasterizable_is_rasterized (), similar
to earlier in this same function, to prevent the call on
non-rasterized layers.
2026-01-15 20:48:08 +00:00
Jacob Boerema
bdf0da27a3 plug-ins: fix indentation from previous commit 2026-01-15 10:33:33 -05:00
Jacob Boerema
68b27dfb1c plug-ins: fix #15293 security issue ZDI-CAN-28265
Just like we did in commit 4eb106f2bf
we need to make sure that the offset in the colormap is valid before
using it, before using it to compute the RGB values.
2026-01-15 10:12:07 -05:00
Alx Sa
13acebd200 plug-ins: Correct JPEG2000 export quality setting
Resolves #15684
In addition to setting the tcp_distoratio parameter to
the user's preferred quality, we also needed to enable
the cp_fixed_quality setting in OpenJPEG to actually
compress JPEG2000 images with different quality values.

Additionally, OpenJPEG expects the quality value to range
from 1.0 to 100.0, while we had it as 0.0 to 1.0. This patch
fixes both issues.
2026-01-15 13:20:40 +00:00
Bruno Lopes
0cf15a4fac build/macos: Bundle libthai files from MacPorts
See: https://github.com/macports/macports-ports/pull/30702
2026-01-14 16:12:31 -03:00
Bruno Lopes
fce749f63c build/macos: Update lib/gio and share/*iso_639_3.mo comments 2026-01-14 11:23:49 -03:00
Bruno Lopes
e062830859 build/macos: Fix wrong .gitignore cleanup 2026-01-14 10:51:39 -03:00
Jacob Boerema
0376564f5f libgimp: fix missing GIMP_TYPE_LINK_LAYER initialization
When calling `gimp_link_layer_new` from a plug-in, a critical was
shown:
LibGimp-CRITICAL **: 13:01:54.601: gimp_gp_param_to_value: type name
 GimpLinkLayer is not registered

I noticed that its type was not initialized in libgimp/gimp.c.
This commit adds that initialization.
2026-01-13 14:18:39 -05:00
Bruno Lopes
b852942c2f gitlab-ci: Ensure zsh is used as shell on macOS jobs 2026-01-13 08:09:45 -03:00
Bruno Lopes
3387f7f777 build/macos, gitlab-ci: Distribute .DMG for in-house builds
Just initial work so we have some dmg.
2026-01-13 07:52:43 -03:00
Bruno Lopes
4471c1a159 gitlab-ci: Set expire_in for gimp-macos-inhouse job
This was mislook. It should have expire_ij like other gimp jobs.
2026-01-12 20:01:25 -03:00
Bruno Lopes
e0edbe3e37 build/windows: Remove dangling GIMP_MUTEX_VERSION set on MSIX script
This is a leftover from 143e4cb7
2026-01-12 19:57:42 -03:00
Jacob Boerema
87e071300a plug-ins: fix incorrect psd dropshadow offsets
Some dropshadow offsets were incorrect when loading PSD's.
Photoshop has a global lighting angle that can override the angle
set for a dropshadow and we did not account for that.
This also showed that our computation of the X and Y values needed
to be adjusted.
Besides that I noticed a weird offset with angle values > 0xFF00 that
happened because we interpreted angle as unsigned when it should be
signed.

This adds support for loading the Global Lighting Angle, and using
that value in the legacy dropshadow effect.
We read the angle by using GUINT16_TO_BE because it's a signed int;
that also removes the need to check for 0xFF00.
Next we adjust the way we compute X and Y.
2026-01-12 09:14:16 -05:00
Alx Sa
058ada8f3f plug-ins: Add overflow checks for ICO loading
As pointed out by Dhiraj, it is possible to set width and
height values in the ICO header that will overflow a 32 bit
integer when loaded in. This patch adds checks using
g_size_check_mul () and g_try_new () to catch these
overflows and prevent them from crashing the plug-in.
2026-01-12 12:17:00 +00:00
Bruno Lopes
88813b0c12 plug-ins: Remove bogus generate_associations.py script
Its code was incorporated into another script since d56676a2
2026-01-12 08:33:22 -03:00
Bruno Lopes
83a18b0e4e build/macos: Add tagged babl and GEGL support to in-house builds
This is not useful right now since they are not used for releases,
but will be in the future.
2026-01-12 08:24:07 -03:00
Bruno Lopes
a4ef25fefd build/macos: Guard against false positives on orphan binary check
Following e2d1ec73

This is not needed on Homebrew packages but seems that some
packages from MacPorts are built with debug symbols, but we
never have access to the .o (since they were in the servers).
2026-01-11 17:33:34 -03:00
Bruno Lopes
73605901d8 plugins: Make file-raw-utils.c use proper macOS 10.10+ API
This maintains backwards compatibility for MacPorts guys sake.
2026-01-11 14:56:16 -03:00
Ibai Oihanguren Sala
30ffe57fe9 Update Basque translation 2026-01-11 17:27:25 +00:00
Cheng-Chia Tseng
275e5b8177 Update Chinese (Taiwan) translation 2026-01-11 09:44:16 +00:00
Cheng-Chia Tseng
126e13f2a7 Update Chinese (Taiwan) translation 2026-01-11 09:24:02 +00:00