Commit Graph

54514 Commits

Author SHA1 Message Date
Bruno Lopes 278946f767
build/windows: Port fix_msg.sh to Python
This port made clear that it is almost impossible to
do the langs patching with PowerShell alone.

The new output of the patching will display the encoding.
2025-04-19 17:15:21 -03:00
Bruno Lopes 1fe8db7a94
data: Workaround for macOS broken Python 2025-04-19 12:06:31 -03:00
Bruno Lopes 23b8867115
libgimp: Port libgimp-run-c-test.sh to Python 2025-04-18 21:53:22 -03:00
Bruno Lopes 8ef7bf3553
desktop: Port test-appdata.sh to Python
This works on Windows too so let's make it cross platform.
2025-04-18 20:56:07 -03:00
Bruno Lopes 941fc0000b
apps/tests : Fix IconsRoot path on gimp-data era 2025-04-18 19:41:19 -03:00
Bruno Lopes 72cb81f6a7
meson: Default ICC directory is Linux-specific 2025-04-18 14:32:00 -03:00
Bruno Lopes 5281804a5c
gitlab-ci: Reduce Windows jobs timeout to 40m thanks to pythonization
Let's test a shorter timeout since our scripts were improved.
2025-04-18 14:09:43 -03:00
Bruno Lopes f88ca87ca9
build/windows: Restrict clean() output of bundling script
This is the python version of c748b3d2
2025-04-18 14:01:26 -03:00
Bruno Lopes a683495b09
build/windows: Port 2_bundle-gimp-uni_sym.sh to Python 2025-04-18 13:36:35 -03:00
Bruno Lopes 00ab5e3a19
.gitlab: Move cp-plug-in-subfolder.py to build/meson
It is not a CI-specific file.
2025-04-18 13:36:31 -03:00
Gabriele Barbero 9989dfe933 Issue #13752 - Handle GTK_RESPONSE_HELP in about dialog
Previously, the Help button triggered the default dialog close behavior, without showing any help.
This change ensures that pressing Help triggers the expected help function.
2025-04-18 16:36:33 +02: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