Commit graph

369 commits

Author SHA1 Message Date
Jehan
edbd1ea738 Release GIMP 3.2.0! \o/ 2026-03-14 10:47:44 +01:00
Bruno Lopes
755642e76a meson, app, tools: Organize ISO_CODES* macros after build failure report
I don't get how this could be failing because config.h is included on main.c,
but it it: https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/2664#note_2699194
So, I noticed that that the macro prefix ISOCODES_ is "new", being introduced
with aba7316e. The pre-existing is ISOE_CODES. Let's unify trying to fix build.
2026-03-06 14:09:35 -03:00
Jehan
0587cbbc9b Issue #15713: Text tool "Language" names not localized on relocatable builds. 2026-03-05 16:29:14 -03:00
Jehan
366f55a42e Post-release version bump to 3.2.0-RC3+git. 2026-03-02 21:29:55 +01:00
Jehan
c4dd447133 Release GIMP 3.2.0 RC3. 2026-03-02 17:43:05 +01:00
Bruno Lopes
fcba50ffcd meson: Fix meson 1.10 warning about add_languages 2026-03-01 11:02:12 -03:00
Jehan
608ad0a528 app: new save-and-export tests calling the API with actual GIMP process.
Issue #15763 is again mostly false positive crashes of the unit tests
because the code is only partly GIMP code, arranged differently as what
a full GIMP process would actually do.

The new tests just runs on the real GIMP code. Now the difference is
that we don't test the UI by doing this, but this can be debated whether
the previous tests were actually running on the UI themselves (they were
mostly running some core code directly and sometimes activating some
actions or raising dialogs (gimp_test_utils_create_image_from_dialog()),
but again not by actually clicking or hitting keys as a human would do.

It's not proper UI testing (cf. #9339 of #13376 for further discussions
on this topic).

So in the meantime, let's go with this intermediate step. At least now,
such tests would run actual GIMP code and would catch issues which could
really happen in a GIMP process.
2026-02-03 10:40:15 +01:00
Bruno Lopes
22a9703f55 meson: Check for libthai support on pango library
It is needed for proper word breaking of texts with Thai language.

See also: 4cbb9360, 739c613f, 0cf15a4f and GNOME/gnome-build-meta!3334
2026-01-30 22:10:45 -03:00
Bruno Lopes
1aa51ca063 meson: Fix libunwind header detection on non-macOS platforms
Closes: #15750
2026-01-26 17:41:15 -03:00
Jehan
5b349c7316 etc, meson: new -Dbash-completion feature option.
Let's force having the bash-completion dependency when we want to enable
the feature. Then clearly shows the feature state in the final setup
summary.

Otherwise the risk is that GIMP may not use the correct path on a given
system and a packager who wants this script to be installed may miss
that it is installed in the wrong directory.

(cherry picked from commit 88b4f29ce7)
2026-01-23 23:47:12 +01: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
Bruno Lopes
7accd52ce1 build, gitlab-ci, meson: Add macOS builds to our CI
This adds macOS support on our CI aiming to MacPorts + macOS SDK 11. But since
the GNOME runner have short timeout and no cache we fallback to Homebrew for
now (which inelegantly links to X11 and follows runner's very high macOS 14).

There is also still work to do: .dmg creation, multi-arch and notarization.

Even so, this is a huge improvement, because macOS devs can now easily test MRs
inhouse and non-macOS devs can contribute for macOS inhouse too. With the word
"inhouse" I mean from this official gimp repo, without needing gimp-macos-build.

For making that possible, I ported various concepts from gimp-macos-build:
- .typelib regeneration for relocatability
- LC_RPATH, LC_LOAD_DYLIB and LC_ID_DYLIB patching for relocatability
- LC_BUILD_VERSION (minos) check for compatibility
- GdkPixBuf loaders.cache patching
- NEW: immodules.cache patching
- Python.framework complex handling
- Ad-hoc code signing on binaries (do not confuse with notarization)
- .dSYM generation for babl, gegl and gimp
- etc
All these concepts into few scripts, without depending on gtk-mac-bundler.

Since it was designed to work with MacPorts, we could make use of it on
gimp-macos-build, but things are so endlessly complicated there into the
9999 scripts and CircleCI is very slow, so I'm not sure if gimp-macos-build
have any future. The ideal would be official macOS 11 builds on GIMP repo.
2026-01-10 18:42:15 -03:00
Bruno Lopes
971b078e48 meson: Add HEJ2 checks
Following 8bb34ac5 and 933a1233
2026-01-10 15:00:29 -03:00
Bruno Lopes
0bca2158fe app: Organize macOS internal wrapper
This is both to make it easier to read and to  make easier to
customize (preparing to the almost-ready macOS scripts on our CI_.
2026-01-06 15:51:36 -03:00
Bruno Lopes
a99910217a libgimp, meson: Port make-in-build-typelib to Python and fix build order
Seems this was the last .sh script pending to ported. Since I was experiencing
problems with the .sh one (not working locally nor on HomeBrew), I just ported.
Now, it is easier to read and fix if needed.

I also fixed the build order on libgimp meson.build to ensure the patched
.typelib being always present at the time GIMP generate splash screen etc.
2026-01-04 17:57:24 -03:00
Bruno Lopes
83459c6eb2 meson: Let's check for libunwind.h
This is the header we use after all. And it
is also available on the MacOS*.SDK too.
2026-01-02 17:11:06 -03:00
Bruno Lopes
bb56770ed6 meson: Ensure unwind.h is interpreted as non mandatory
Following d0ca8bb9

It is not a required dependency.
2026-01-02 16:00:27 -03:00
Bruno Lopes
e03ac3a9ee meson: Remove dangling pythonmod line
It should be present in the previous commit...
2026-01-02 15:18:56 -03:00
Bruno Lopes
9be1af2b1a meson: Fix python not being found on MacPorts environment
Let's use the same check as babl and GEGL meson.build, which
is able to find python when it is an Apple .framework as well.
2026-01-02 15:07:57 -03:00
Bruno Lopes
d458b242ed meson: Manually fix *DATA_VERSON *PLUGIN_VERSION and *SYSCONF_VERSION for 3.2
This applies the same logic of *DATADIR, *PLUGINDIR and *SYSCONFDIR below.
That is because, on the same stable series, minor versions do not coexist.

I confirmed that on GIMP 2.8 and 2.10 .exe and .dmg installers from gimp.org.

Yet, we don'have anything automated in that regard on the meson.build nor
even documented on https://developer.gimp.org/core/maintainer/versioning/.
2026-01-02 12:50:35 -03:00
Jehan
76af20811e meson: remove wrong deprecation warnings on gdk-pixbuf.
We were getting a few warnings for usage of functions which we
deprecated after our current minimum required version. Setting these
macros will ensure we get correct deprecation warnings.
2026-01-02 14:29:42 +01:00
Jehan
3f26822eed Issue #12736: dialogs have odd kerning (related to harfbuzz).
Thanks to René de Hesselle for figuring out that the issue happens when
Harfbuzz is not built with libgraphite2.
As far as we know, this is a macOS-only issue.

The issue has already been fixed in our macOS packages, but just to make
sure this doesn't reappear, let's add a configure test.

Note: when we'll bump to using meson >= 1.5.0, we can use option
`required: platform_osx` of cc.run().
2026-01-02 14:05:08 +01:00
Bruno Lopes
d0ca8bb9bc meson: Check for unwind.h header from macOS SDK
This makes the check more robust similarly to
libbacktrace header (execinfo.h) check.
2026-01-02 08:49:00 -03:00
Bruno Lopes
91630698d7 meson: Check for GDK backend too for Quartz sake
It is possible to have libgdk compiled just with X11 support on macOS,
which breaks our GDK_ macro checks on libgimpwidgets/gimppickbutton*.c.
That is exactly what happened when I first tried to compile with MacPorts,
since they default for X11 for the sake of old iMacs pre-OSX. Let's improve.

On other platforms, that is not a problem, since the specific backend is
necessarily compiled as per the gtk3 meson.build design. On Windows, it is
always win32; on other Unixes, it will be X11 at least, and Wayland.
2026-01-01 11:23:17 -03:00
Bruno Lopes
381ea0c6d2 build/windows: Move Windows .pdb utility to tools/
This reverts 63f5ea9d regarding the file naming

Since the script is an utility pretty much one-task, it suits better on tools,
similarly to what we do on babl and meson (but on these we put on root).
And, along with 8c0f92b3, it makes build/windows less scary with less files.
2025-12-26 19:15:15 -03:00
Jehan
10cf3f05ee tools: remove generate_changelog.sh.
We have not used this script since 2009.
2025-12-15 13:17:28 +01:00
Jehan
fe11617a8f meson: fix babl's requirement.
In commit 44ba2219fb, the sanity check version was bumped, but not the
meson check!
2025-12-14 23:11:35 +01:00
Jehan
372d526376 Post-release version bump to 3.2.0-RC2+git. 2025-12-14 22:16:49 +01:00
Jehan
25e9643755 Release GIMP 3.2.0 RC2. 2025-12-14 21:44:54 +01:00
Øyvind Kolås
7679e7bb01 meson,app: depend on GEGL 0.4.66 2025-12-11 22:21:59 +01:00
Jehan
4c82ea1413 meson: remove check for old babl pkg-config name.
Our minimum requirement is now over the name change.
2025-12-07 17:30:25 +01:00
Bruno Lopes
00fe9d807b
meson: Make glib-networking test minimally informative
It is suboptimal to see the test failure, check the meson-log.txt and
stderr part says nothing. This annoyed me when implementing both
Snap and MSVC support. So, let's boost that stderr on meson-log.txt.
2025-11-30 11:23:48 -03:00
Bruno Lopes
452f9a3951
build, extensions, plug-ins: Add support to MSVC's resource compiler too
This allows us to support both rc.exe (MSVC) and windres.exe (GNU)
2025-11-29 18:18:57 -03:00
Bruno Lopes
5912f7bc33
meson: Fix bzip2 detection on vcpkg
This partially reverts a change done in 711ed64f
without breaking cross-compilation support.
2025-11-29 18:18:13 -03:00
Bruno Lopes
335f84c415
meson: Require universal (not GNU) C++ standard
Even clang-cl (the wrapper for MSVC) can't work with GNU C++.
So, let's use the ISO one.

As a result, we now set math.h/cmath defines on Windows builds.
2025-11-29 18:16:58 -03:00
Bruno Lopes
974c37a7ce meson: On RCs, use the same GIMP_MUTEX_VERSION of the previous unstable
Like we do (better) on the MSIX, Flatpak and Snap with their channels.
Otherwise, a RC .exe installer overrides the existing stable installation!
2025-11-23 17:18:32 -03:00
Jehan
4a648b6639 meson, INSTALL: add some note about max version for GEXiv2 in INSTALL. 2025-11-19 16:02:39 +01:00
Jehan
5a17cafa07 Issue #15340: forbid newer GExiv2 version, which broke API.
This should be unnecessary since GExiv2 did the break properly by
renaming files (making it possible to install side-by-side an older
version of GExiv2 and a newer version). But some packagers are wrongly
renaming the .pc file, tricking our build system into accepting the
newer incompatible libgexiv2.

So let's add an additional test, explicitly forbidding newer GExiv2.
We'll move on to the new version when we'll be ready. For the time
being, there is a reason why files were renamed and packagers should not
force incompatible versions to fit.
2025-11-19 15:23:01 +01:00
Jehan
79d636ede0 Post-release version bump to 3.2.0-RC1+git. 2025-11-17 23:28:38 +01:00
Jehan
4fed5c263b Release GIMP 3.2.0 RC1. 2025-11-17 20:15:25 +01:00
Bruno Lopes
9e795acba7
libgimp: Output CLI messages to the parent console like Linux and macOS
Closes: #15192 and #7413.

Maybe helps with #3603 too.

Loosely based on https://github.com/endlessm/rufus/blob/master/src/rufus.c

The input is right now clunky, needs to use proper API to halt input and
get CTRL+C in the future, but output on terminal is a big plus that pays off.
2025-10-31 17:28:22 -03:00
Bruno Lopes
fec1b3302d
meson: Remove redudant get_option('buildtype') 2025-10-07 10:33:50 -03:00
Bruno Lopes
aea7042aa1
meson: Support Windows native paths (aka backslashes) on -Dprefix
Closes: #12284
2025-10-04 16:12:00 -03:00
Øyvind Kolås
9c2c5ff183 meson, app: depend on GEGL-0.4.64 2025-10-03 23:56:36 +02:00
Øyvind Kolås
67fa72a94e meson, app: depend on babl-0.1.116 2025-10-02 13:22:29 +02:00
Bruno Lopes
2f0bfc569b
meson: Fix wrong debugging_format detection on clang-cl and msvc 2025-10-01 20:13:33 -03:00
Bruno Lopes
c13bf1af19
build: Move loose scripts in meson subdir to tools
The build dir looks "prettier" without the meson subdir.
With prettier I mean: just the OSes subdirs.
2025-09-24 09:07:47 -03:00
Jehan
9819457f31 meson: add deprecation warnings on GLib and GTK/GDK API usages.
I discover GLIB_VERSION_MIN_REQUIRED and GLIB_VERSION_MAX_ALLOWED. The
former will make so that we won't have deprecation warnings anymore if
ever we use a function which has been deprecated recently (as long as it
was not deprecated at the minimum required version). The latter will
make so that we get deprecation warnings for any function added after
the minimum required version.

Note that ideally both should be at the same version, but since we have
a bunch of GLIB_CHECK_VERSION() protected conditional code, we would get
compilation warnings even on correctly protected code. So just keep the
small discrepancy until we can finally bump our minimum requirement.

Also add the equivalent macros for GTK/GDK.
2025-09-11 16:23:57 +02:00
Bruno Lopes
ee43316839
meson: Fix .pdb installation condition on Linux and macOS 2025-09-06 14:17:57 -03:00
Jehan
624f049e66 Post-release version bump to 3.1.5. 2025-09-01 00:35:08 +02:00