Commit graph

51884 commits

Author SHA1 Message Date
Jehan
85783b05aa gitmodules, gimp-data: set the default remote branch.
Now that the MR gimp-data!1 has been merged, we can pull the main branch.

Also syncing to latest commit to fix "dev-docs" job.
2024-03-28 04:30:59 +01:00
Jehan
5c14d937f9 gitlab-ci: fix dist-installer-weekly job.
Since dist-installer-weekly doesn't depend on gimp-debian-x64 anymore, we need
to grab the config.h from one of the other dependencies. Let's use the one from
gimp-win-a64 (though it could have been any other Windows build job).

Fixes:

> Get-Content : Cannot bind argument to parameter 'Path' because it is an empty string.
> At C:\_r\_builds\vJWzEqDv\0\GNOME\gimp\build\windows\gitlab-ci\4_dist-gimp-inno.ps1:13 char:39
> +     $GIMP_VERSION = Get-Content -Path "$CONFIG_PATH"         | Select ...
> +                                       ~~~~~~~~~~~~~~
>     + CategoryInfo          : InvalidData: (:) [Get-Content], ParameterBindingValidationException
>     + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.GetC
>    ontentCommand
2024-03-28 00:19:10 +01:00
Jehan
8c6177dc1a gitlab-ci: fix cross-builds.
The dependency to libomp apparently came with the move to CLang.

Fixes:

> /builds/GNOME/gimp/_install-debian-x64/bin/gimp-console-2.99: error while loading shared libraries: libomp.so.5: cannot open shared object file: No such file or directory
2024-03-28 00:19:10 +01:00
Jehan
be0e6b84e9 libgimpbase: do not "fix" paths in build environment.
When running GIMP in the build environment (even before it's installed), we
don't want to "fix" paths. We had the case in particular on the macOS CI where
the install PREFIX was a parent directory of the build directory and therefore
we were "fixing" some perfectly good constructed directories (set by meson) into
non-existing folder paths.

Additionally this codepath should only run when ENABLE_RELOCATABLE_RESOURCES is
set (even though this alone would not have fixed our CI issue because the macOS
build is relocatable).

Finally I am updating the gimp-data repository so that libraries are properly
found from the (now correct thanks to this commit) paths set by meson when
running gimp-console from within the build directory.
2024-03-28 00:19:10 +01:00
Jehan
8e7fc1d920 app: do not show the welcome dialog with the --no-interface option.
Fixes:

> (gimp-2.99:3763): GLib-CRITICAL **: 19:31:02.392: g_hash_table_size: assertion 'hash_table != NULL' failed
> GIMP-CRITICAL: gimp_translation_store_constructed: assertion 'lang_list != NULL' failed
2024-03-28 00:19:10 +01:00
Jehan
bde350fc28 app: fix CRITICAL when GIMP3_DIRECTORY env variable is set.
When the config directory is set by an environment variable, the version is
likely not part of the directory path, and therefore strstr() would return NULL.

Fixes:

> (gimp-console-2.99:41446): GLib-CRITICAL **: 13:19:34.933: g_vsnprintf: assertion 'n == 0 || string != NULL' failed
2024-03-28 00:19:10 +01:00
Jehan
4e274be6f3 Update INSTALL file and gimp-data submodule. 2024-03-28 00:19:10 +01:00
Jehan
c3840c63e8 build: gimp.ico now generated from the new icon. 2024-03-28 00:19:10 +01:00
Jehan
de7d0b3663 plug-ins: fix color mixup in "file-svg-load". 2024-03-28 00:19:10 +01:00
Jehan
4e3792d3f1 desktop: application icons are now generated from the new logo source SVG. 2024-03-28 00:19:10 +01:00
Jehan
42171503d4 data, plug-ins: logo images moved to gimp-data repository.
Now the development and stable logos will be generated from gimp-data.

In other changes, the gi-docgen logo is installed as a symlink using
install_symlink() which exists since meson 0.61.0 so I bumped our meson
dependency (in practice we were already using this function anyway and Debian
bookworm has meson 1.0.1 so it's all good).

Finally I don't install a wilber.png anymore, which was only used by script-fu
testing, and which was the same as gimp-logo.png (except 256x256 instead of
128x128). Unless mistaken, all script-fu tests loading this image still work
with the change. The only one where I needed further change was buffer.scm
(which was checking the dimensions).

See gimp-data@9aa6e35.
2024-03-28 00:19:10 +01:00
Jehan
4f9655573f build, gitlab-ci: update dependencies.
- With last commit, the Windows installer pipeline doesn't depend on
  "gimp-debian-x64" job anymore since a native Windows build is now able to run
  GIMP (or gimp-console) as a build-time tool as well. It makes the Windows
  installer pipeline (and full custom native builds) self-sufficient.
- On the other hand, "gimp-win-x64-cross" and "gimp-win-x86-cross" now require
  "gimp-debian-x64" since cross-compiling GIMP now requires a native GIMP in
  order to generate some image data (such as the splash image, and probably soon
  logo or icons, etc.). See gimp-data@5a03c71.
- Getting rid of "image-win-x64-cross" and "image-win-x86-cross" in favor of
  "image-debian-x64" for all Debian as well as the cross-compilation jobs. They
  are all based on the same Debian image (it was debian:bookworm for native
  Linux jobs and debian:testing for cross-builds; now it will be debian:bookwork
  for all) and it's just a few more packages (cross-compilation C and C++
  toolchains) for the cross-builds. Moreover now the cross-builds also need the
  native GIMP binary around, therefore native dependencies are needed as well.
  It makes sense to factorize all 3 images into 1.
- Make sure we don't build bindings when cross-compiling since these won't work
  in this case.
2024-03-28 00:19:10 +01:00
Jehan
530d8c6f9f app: fix running gimp or gimp-console as tool during build time on Windows.
This commit is in conjunction of gimp-data@d273a18 and finally makes Windows
build able to run GIMP main binary itself (or gimp-console) in order to create
various images, before the installation step.

- Use the new GIMP_TESTING_INTERPRETER_DIRS environment variable for uninstalled
  binary to find the .interp files (in particular because our build scripts are
  usually Python scripts these days).
- Use the new GIMP_TESTING_ENVIRON_DIRS environment variable to find .env files
  (actually running uninstalled GIMP binaries did run without this one, but it's
  not a bad idea to add support anyway.
2024-03-28 00:19:10 +01:00
Jehan
c6a6449dd0 app: swap ':' path separator to ';' on Windows.
The python.env file sets a ':' separator for GI_TYPELIB_PATH environment
variable, which breaks finding the correct typelib files in the CI, when also
manually setting a previous value for this environment variable.

I'm not entirely sure the rule of swapping ':' for ';' is universally true on
Windows, whichever the variable. Let's hope that it is.
2024-03-28 00:19:10 +01:00
Jehan
f6d4ebb286 libgimpbase: fix annotation.
Fixes:

> libgimpbase/gimpchoice.c:240: Warning: Gimp: gimp_choice_list_nicks: unknown parameter 'nick' in documentation comment
2024-03-28 00:19:10 +01:00
Jehan
fade73664e app, pdb: gimp_image_set_file() should accept compressed XCF variants. 2024-03-28 00:19:10 +01:00
Jehan
5fd29d7f9a libgimpbase: check EOF first. 2024-03-28 00:19:10 +01:00
Jehan
0b5b4173ab build, data: moving splash image to gimp-data repository.
- Splash images will now be stored from gimp-data.
- The installer BMP image scripts also move in the same time.
- We don't need devel and non-devel variants of the BMP images in InnoSetup
  scripts since the images are generated from the actual splash.
2024-03-28 00:19:10 +01:00
Jehan
dbb2f67e66 build: exit in error when ninja fails.
Not sure why it doesn't already since `set -e` stops the script immediately and
crossroad is supposed to pass the return value through.
2024-03-28 00:19:10 +01:00
Jehan
9d279a60ce meson: moving away from meson subprojects in favor of git submodules.
Meson subprojects just have too many problems and limitations and I can foresee
the maintenance headache and the future incoming false-positive bug reports if
we start using meson subprojects.

Comparing to the simplicity of git submodule which also has much better
notifications to help people understand when the submodule is not in sync and
how to remedy to it.

See commit gimp-data@c364adb explaining the main reasons in detail.
2024-03-28 00:19:10 +01:00
Jehan
1854e65667 build: use the icon file from the gimp-data subproject. 2024-03-28 00:19:10 +01:00
Jehan
67f5dd0df8 meson: pass the executable name to gimp-data to build gimp.ico.
Note that the executables are not built yet at this point, but we just need to
pass the name for configuration. The gimp.ico generation step is run manually
anyway and requires a fully functional and installed GIMP.

See commit gimp-data@40d4822.
2024-03-28 00:19:10 +01:00
Jehan
cbdd45723a data: moving brushes and patterns to gimp-data.
Symmetric removal commit of add commit gimp-data@c09aa01.
2024-03-28 00:19:10 +01:00
Jehan
2bda55fa9a meson: cursors are now hosted and installed from gimp-data too. 2024-03-28 00:19:10 +01:00
Jehan
008f7b5093 cursors: move all cursors to gimp-data repository.
This is the symmetrical removal commit of the add commit gimp-data@299204f.
2024-03-28 00:19:10 +01:00
Jehan
686897e35d meson: icons are now installed by making gimp-data a meson subproject.
This commit is separate from the previous to make it immediately clear (by
comparing files) that the previous commit is a simple move with no modification
whatsoever of the icons/ directory, i.e. the symmetrical removal of add commit
gimp-data@8b54490.

We now clone gimp-data as a meson subproject. I am currently testing the
subproject feature though I am doubting a bit because of its limitations: the
git clone is not updated automatically, nor are errors clear. Therefore it would
be easy to end up with outdated data for developers not manually and regularly
running:

> meson subprojects update

Worse, it looks like even when updating the suproject, it fails to be properly
reconfigured. See: https://github.com/mesonbuild/meson/issues/12898
2024-03-28 00:19:10 +01:00
Jehan
d57442eeeb icons: moved to gimp-data repository. 2024-03-28 00:19:10 +01:00
Bruno Lopes
85ed2847a6 gitlab-ci, build: Move to Clang in Flatpak (mostly)
In our efforts to use Clang, now the nightly (in fact weekly) flatpak
is built with Clang too, not only GIMP but also the dependencies.

* However, not aalib. We welcome fixes regarding this cursed lib.

Additionally, updated some build options from some deps.
2024-03-27 11:01:20 -03:00
Alx Sa
e4a4063f40 pdb: Fix selection offset bug in Plasma
Resolves #7672

The Plasma wrapper gets the boundaries
of its filter area using gimp_item_mask_intersect().
If used on a selection, this gives the x and y
coordinates relative to the total canvas.
However, the GEGL operation will be drawn
relative to the selection - so this offsets
the effect within the selection rather than
filling the full space.
This patch fixes the problem by setting
the x and y position to 0 when there is an
active selection.
2024-03-27 10:54:39 +00:00
Jordi Mas
f9a4d686a5 Update Catalan translation 2024-03-27 08:21:52 +01:00
Luming Zh
6293da2509 Update Chinese (China) translation 2024-03-27 03:07:01 +00:00
Luming Zh
21d36d1051 Update Chinese (China) translation 2024-03-27 03:03:45 +00:00
Luming Zh
a23bc85e66 Update Chinese (China) translation 2024-03-27 02:42:02 +00:00
Martin
e709f22359 Update Slovenian translation 2024-03-26 19:57:53 +00:00
Yuri Chornoivan
cebbec9d77 Update Ukrainian translation 2024-03-26 19:22:46 +00:00
Alx Sa
5fcee54d49 widgets: Prevent reordering actively edited layer effects
Layer effects that have not yet been committed are not
attached to the drawable. Trying to reorder them causes a
crash since they're required to be attached for undo/redo
purposes. This patch checks if they're committed beforehand,
and informs the user with a warning if it's not possible.
2024-03-26 16:58:34 +00:00
Alx Sa
5ce128a9fa libgimpwidgets: Allow colors to be dropped on ColorAreas
Post color space invasion, this function needed to read in
GeglColors directly rather than converting from GimpRGB.
2024-03-26 13:57:52 +00:00
Anders Jonsson
aaba366f0c plug-ins: avoid blinds crash by allowing MAX_FANS segments
In GIMP 2.10 the number of segments was restricted to MAX_FANS.
That was later changed to 1024 without increasing MAX_FANS
which can crash the plug-in.

Also change the max displacement angle back to 90 degrees. The interval
0 to 90 degrees is enough to return all possible values.

Fixes #11108
2024-03-25 21:50:34 +01:00
Bruno Lopes
8c3cce1737 build/windows: Remove redundant build options
These options are already auto set by babl and GEGL.
2024-03-25 15:55:34 +00:00
Marco Ciampa
6f7537b1fb Update Italian translation 2024-03-25 14:22:07 +00:00
Alx Sa
9bee3bed2a plug-ins, libgimpbase, text: Port border-average...
...to fully use and return GeglColor.
Also, fix gimptext-parasite sending a
GimpRGB to create a GimpText instead of
the now required GeglColor, and update
documentation in gimp_checks_get_colors
to reference GeglColor instead of GimpRGB.
2024-03-25 02:21:54 +00:00
Alx Sa
32c9a9a6cc plug-ins: Fix preview for Blinds GUI
Resolves #11092

Same fix as in 2b3b2af2, since Blinds and Jigsaw
were the two plug-ins which used GimpAspectPreview
before the port to GimpProcedureDialog.
2024-03-24 18:39:50 +00:00
Alx Sa
2b3b2af26d plug-ins: Fix preview for Jigsaw GUI
After the port to gimp_procedure_dialog_get_drawable_preview (),
the preview widget was being sized to the original drawable's dimensions
while the drawable was being redrawn with only its thumbnail dimensions.
This created a scrollbar that showed unallocated/overwritten buffers.

To fix, we update the preview size and boundaries whenever the preview
is changed. This removes the scrollbar and returns to 2.10 behavior.
2024-03-24 18:25:11 +00:00
Bruno Lopes
879cec8786 Issue #9999: Fix arbitrary headerbar height
The merged menu + title bar (headerbar mode) wasn't matching the height of
the title bar mode. This is inconsistent and, worse, ugly even in 768p.
2024-03-24 17:07:14 +00:00
Martin
d6d3451898 Update Slovenian translation 2024-03-24 16:09:00 +00:00
Yuri Chornoivan
94916bd596 Update Ukrainian translation 2024-03-24 14:58:45 +00:00
Alx Sa
d5c2585773 Issue #11098: Fix crash on saving PDF
Resolves #11098.
In f12687e9, a new parameter was put in the wrong order
in a call to draw_layer(). This caused a crash in
single layer PDF saves.
2024-03-24 13:56:42 +00:00
Rodrigo Lledó
b21cbf505d Update Spanish translation 2024-03-24 13:52:26 +00:00
Alx Sa
f12687e9f5 plug-ins: Port file-pdf-save-multi to GimpProcedureDialog
In addition to the port, mnemonics were added to both file-pdf-save-multi
and file-pdf-save's GUI parameters.
Some runtime warnings were also fixed, such as trying to use a NULL string
parameters to make a file and trying to access properties from file-pdf-save
that don't exist in file-pdf-save-multi.
2024-03-24 02:20:05 +00:00
Bruno Lopes
5de967aae9 gitlab-ci: Drop Windows resource .patch since MSYS2 now have LLVM 18 2024-03-23 20:07:54 -03:00