Commit Graph

54505 Commits

Author SHA1 Message Date
Bruno Lopes 4a9e315e9b
Test: see pdb 2025-04-18 11:48:35 -03:00
Bruno Lopes 550053b76d
.gitlab: Move cp-plug-in-subfolder.py to build/meson
It is not a CI-specific file.
2025-04-17 17:15:24 -03:00
Bruno Lopes 4e00c87ff5
gimp-data: Bump commit regarding Python module 2025-04-17 16:19:52 -03:00
Bruno Lopes ddcc51204b
libgimp: Port from cat to Python 2025-04-17 15:32:20 -03:00
Bruno Lopes 547abb038e
meson: Fix testing option of authors.md being accidentally pushed 2025-04-17 15:10:12 -03:00
Bruno Lopes 30f1a34750
meson: Get date with Python on authors.md generation 2025-04-17 14:49:01 -03:00
Bruno Lopes d88966b272
app, app-tools, data, plug-ins, tools: Do not hardcode python executable
Use 'python' module instead.
2025-04-17 14:32:06 -03:00
Bruno Lopes 49065eb635
plug-ins: Port echo use on gresource generation to Python 2025-04-17 13:57:25 -03:00
Bruno Lopes cbad5f4bb7
gimp-data: Bump commit to latest Python changes 2025-04-17 13:28:40 -03:00
Bruno Lopes 160ec3d0d7
meson: Port meson_dist_script.sh to Python
It's not used by Windows right now, but it can be so let's port it.
2025-04-17 11:18:30 -03:00
Bruno Lopes 42049493cb
tools: Port meson-mkenums.sh to Python 2025-04-17 09:39:08 -03:00
Bruno Lopes c7308335a5
data: Port share/gimp/*/fonts creation to Python 2025-04-17 09:39:04 -03:00
Bruno Lopes 455dc1faa6
app, app-tools, tools: Port Windows's enable_default_bin to Python 2025-04-17 09:39:00 -03:00
Bruno Lopes b95c78fdbd
build/windows: Port list-installer-langs.sh to Python 2025-04-17 09:38:55 -03:00
Bruno Lopes dea5e2414a
tools: Fix 'in-build-gimp.py' indentation to conform with Coding Style 2025-04-16 16:44:22 -03:00
Bruno Lopes 99bf8defe7
tools: Port in-build-gimp.sh to Python
Both .sh and .py versions take 2:15 minutes to generate all the
assets but the more cross platform the better so Python wins.
2025-04-16 13:41:16 -03:00
Bruno Lopes f5ee454098
build/meson: Port check-gimp-data.sh to Python
It is not faster than using 'wc' but it is cross platform.
2025-04-16 07:05:08 -03:00
Bruno Lopes 231b89537e
pdb: Port meson-*.sh to Python
This avoids using CYGWIN-linked binaries from $MSYS_ROOT/usr,
which are extremely slow. Python is cross-platform and faster.
2025-04-15 13:55:19 -03:00
Bruno Lopes 9abc42933a
build/windows: Port 2_bundle-gimp-uni_base.sh to Python
This avoids using CYGWIN-linked binaries from $MSYS_ROOT/usr,
which are extremely slow. Python is cross-platform and faster.
2025-04-15 11:45:15 -03:00
Bruno Lopes c4309ee0ce
Issue #11677: Add fractional scaling support to Installer welcome image 2025-04-14 09:08:24 -03:00
Bruno Lopes 63f5ea9dc5
build, meson, gitlab: Generate native .pdb CodeView symbols on Windows
Reverts dc21fb76

The CodeView format introduces some advantages to our Windows build:
- It is way smaller than DWARF, reducing the .exe installer. With
  the strip of COFF symbols too, the installation is 120MB smaller.
- Can be uploaded as .appxsym to be used on demand by MSIX (in thesis)
- Works better with DIA and DbgHelp debuggers like WinDbg and DrMingW,
  respectively. LLDB also works by using LLDB_USE_NATIVE_PDB_READER=1

Context: that was not working before because DrMingw and LLDB seems to
only search for the build-time .pdb path in '.buildid' section of bins.
See: https://github.com/jrfonseca/drmingw/issues/91 and
https://github.com/llvm/llvm-project/issues/125355. So, we will set
_NT_SYMBOL_PATH at least for $PREFIX/bin for now as workaround.
2025-04-14 07:50:43 -03:00
Alx Sa 19bb4a5251 paint: Prevent crash on out-of-bounds smudge tool
The Smudge Tool gets accumulated buffers from its
history via g_list_nth_data (). However, this function can
return NULL if we go out of bounds. We did not check for
this before trying to use it as a GeglBuffer, which caused
crashes if we ran out of accumulated buffers (e.g. if we
were partially smudging off-canvas).
This patch adds NULL checks to prevent the crashes.
2025-04-13 22:55:12 +00:00
Alx Sa c3814125e3 display: Verify GtkWidget is a GimpCanvas object...
...before trying to get its GimpColorConfig.
Resolves #13691

After the color space invasion, various GimpCanvas
functions are now aware of color management settings.
However, these public GimpCanvas functions do not
require the user to pass in a GimpCanvas, just a GtkWidget.
This can lead to crashes if we pass in a different kind of
GtkWidget, since it may not have a GimpColorConfig property.

One example is the Navigation Dockable, which crashes when
it tries to draw boundaries around the image when "Show All"
is turned on, because it passes a GimpView widget instead of
a GimpCanvas.

This patch adds a check if the "canvas" parameter is actually a
GimpCanvas, and sets the config to NULL otherwise.
2025-04-13 15:31:48 +00:00
Bruno Lopes ea89353fd7
gitlab-ci, build: Drop crossbuilds since they only make sense on Fedora
With grave on heart I am dropping crosbuilds. Always liked them but
actually our crossbuids on Debian are flawed on either GCC or Clang
(with linking either to UCRT or MSVCRT, I tested all possibilities).

The main problem is that Debian does not provide the runtime deps
(unlike Fedora) so we use from MSYS2. This fact tends to cause:
- Linking problems due to undefined references on compiler: #11756
- Clash between Windows runtime and Linux build-time deps: #12970

Worst, these bugs historically are rarely spotted or fixed at all.
Some of them took weeks and even months(!) to be reported by us and,
in the end, there is only one or two guys to do this: me and Jehan.
I do rather prefer to improve native builds than spending more and
more time on fixing crossbuilds without effectively using them.
2025-04-13 11:07:27 -03:00
Alx Sa 2ed959ed7c themes: Keep menubar color consistent when out of focus
Same issue as 484b9cfe, just applied to the
non-merged menubar instead.
2025-04-13 01:04:53 +00:00
Bruno Lopes 2cedc9fc96
build/linux: Do not allow library preloading on AppImage
Closes: #13527
2025-04-12 19:20:29 -03:00
Alx Sa f58ac5f6cd themes: Define merged titlebar icon colors
Resolves #11552
We did not explicitly define the colors for the Minimize,
Maximize, and Close button icons for merged titlebars.
On some system themes, the color used blends into
the titlebar and makes the icon look invisible.
This patch makes sure we always define the icon color
for the Default theme.
2025-04-12 20:59:45 +00:00
Emin Tufan Çetin a5de79e3b2 Update Turkish translation 2025-04-12 16:12:10 +00:00
Emin Tufan Çetin 7d3d041bae Update Turkish translation 2025-04-12 16:07:26 +00:00
Alx Sa a331caa9f2 core: Enable resize for GUI layer duplication
Resolves #13633 (for now)
Same rationale as 975d1a4a, as diagnosed by Thomas Manni.

During 3.2 development, we can review and likely just set this as
the default value inside GimpDrawable.
For now, this is a limited bugfix for 3.0.x.
2025-04-12 14:27:51 +00:00
Bruno Lopes 44e3655536
build/windows: Improve Repair mode to check parent dir
Following eab5e061

This avoids curious users cheating the mode to make multiple installs, which
is unsupported by us since we only allow for different mutexes. See: #1382
2025-04-11 08:20:31 -03:00
Jehan 23d4c6fda9 INSTALL: more info about HEIF support.
It looks like packagers have regular issues with this support. Also I
added info about the fact we also support JPEG2000-in-HEIF (HEJ2) now.
And I made clearer that there may be other encoders/decoders possible
for a given format (though for AV1, we have a clear AOM preference in
our code).

Finally I add info about an environment variable which may be useful
probably in cases when the run prefix differs from the build prefix.
Cf. a case which was recently happening in the Snap package.
See: https://github.com/snapcrafters/gimp/issues/390
2025-04-11 11:25:05 +02:00
Alx Sa 93c3d83dd0 tools: Hide Force slider for Pencil Tool
The Force option does not affect the Pencil Tool's painting.
While Force is already set to be insensitive, hiding the
option entirely makes it even clearer that it can not
be used with this tool.
2025-04-11 02:58:42 +00:00
Jacob Boerema 5273f26ef0 app, pdb: fix #13480 inconsistent use of maximum radius...
for generated brushes.
The maximum radius we allowed for generated brushes was not used
consistently everywhere.
In the API call we clamped it to 0.0-32767.0, while the param_spec
set min and max to 0.1 and 4000.0, and the brush editor used a
maximum of 1000.0.
Using a large value (probably anything larger than 4000) would
sooner or later lead to a crash.

Instead of manual changes everywhere, let's define a maximum and
minimum in one place and use that wherever we need the min/max values.
Use the values as set in the param_spec for the defines.
The only place we can't easily do that is in brush.pdb, so we add
a comment above our defines that the values need updating there too.

Actually we should probably use more defines for other values too,
that way there is less chance of min/max values getting out of synch
throughout our code.
2025-04-11 02:02:40 +00:00
Bruno Lopes e67a99b275
build/windows: Add some comments regarding InstallType and other things
This makes a bit more clear changes introduced by:

itInstall, itReinstall, itUpdate: cbe2f6bec2
itRepair: eab5e0615d
itDowngrade: e447b1244b

Unninstall (settings): b6069baa04
Unninstall (restore): 22e3ae24c7
2025-04-10 15:03:55 -03:00
Bruno Lopes 822981d209
build/windows: Clarify DefaultIcon/uap:Logo "policy" for .ico files 2025-04-10 13:22:29 -03:00
Bruno Lopes d3501ffc35
build/linux: Make AppImage script tool-agnostic (part 3) 2025-04-10 07:33:01 -03:00
Bruno Lopes 4070cfb9ee
build/linux: Add some comments to AppRun
And make APPDIR output clearer.
2025-04-10 07:27:36 -03:00
Alx Sa 5b822032c8 widgets: Include filters in GimpBufferSourceBox buffer
Updates the code to use gimp_pickable_get_buffer_with_effects ()
which copies over the filters that the user sees when choosing
an Aux Input option.
2025-04-09 12:13:37 +00:00
Bruno Lopes f2bdf03b9a
build/linux: Do not set uneeded GIMP3_* dirs on (relocatable) AppImage
Relocatable builds do not need them.

Also, remove comments about the inspiration for the scripts since
they are now so refined that make no sense to link 3P sources.
2025-04-09 08:58:03 -03:00
Bruno Lopes 6d9a9d3d7b
build/windows: Log downgrade message when Installer is silent
Following: e447b124
2025-04-08 20:10:28 -03:00
Jehan 884353ed3d plug-ins: fix relocatability of the Python Console.
If we were running Gimp.locale_directory() at the very start of the
script, it would append before _gimp_reloc_init_lib() had happened, and
therefore the returned value would be the non-relocated locale
directory.

Calling this inside set_i18n() happens later, and also feels like the
proper place for this code.
2025-04-09 00:20:03 +02:00
Bruno Lopes 64d63cd937
build/windows: Use native icon from 'imageres.dll' on Installer dir page 2025-04-08 13:58:13 -03:00
Ekaterine Papava cef5ab3992 Update Georgian translation 2025-04-08 02:33:05 +00:00
Kolbjørn Stuestøl 14b1c11273 Update Norwegian Nynorsk translation 2025-04-07 19:17:57 +00:00
Alx Sa 8b0185ba8f tools: Don't crash when reading invalid Curves preset
When reading a gimp:curves preset file, we assume
that we read in at least 64 bytes for the header. If the
invalid preset file is smaller than that, g_input_stream_read_all ()
can read it just fine but the code fails when comparing the
bytes read in to the size of the header.

This means that the GError object is still NULL, so g_prefix_error ()
has no effect - and thus the calling code crashes when it tries
to get "message" from a NULL GError object.

To resolve this issue, we check if error or *error are NULL.
If so, we set the error with g_set_error () instead.
2025-04-07 18:57:31 +00:00
Bruno Lopes 43ae9fced5
build/linux: Prevent LD_LIBRARY_PATH leaking on AppImage
Closes #13603

Following 8fe7ddf3
2025-04-07 09:23:45 -03:00
Martin e4bf961cbb Update Slovenian translation 2025-04-07 10:29:51 +00:00
Yuri Chornoivan 7a242913fd Update Ukrainian translation 2025-04-07 06:26:01 +00:00
Bruno Lopes abeac94e8e
build/linux: Fix '--no-expand' param of conf_app function on AppImage script 2025-04-06 22:05:21 -03:00