Commit graph

399 commits

Author SHA1 Message Date
Alx Sa
86740b51e8 plug-ins: Add Windows WIA scanner plug-in
We dropped 32bit Windows support in
GIMP 3.2.2, which also removed the
32bit-only TWAIN scanner plug-in.

This patch adds a new plug-in that uses
the 64bit compatible WIA API for scanning.
It should restore the support for scanning on
Windows.
2026-04-08 17:20:06 +00:00
Bruno Lopes
a66d203d1b Revert "meson: Bump python3_minver to 3.10"
This reverts commit c77e0b7faa.

Let's ensure retrocompatibility
2026-04-08 06:05:04 -03:00
Bruno Lopes
c77e0b7faa meson: Bump python3_minver to 3.10
Pygobject requires 3.9 which already reached EOL.
Pycairo requires 3.10 which is lower than on Bookworm.
2026-04-02 14:34:11 -03:00
Bruno Lopes
27bb2a8721 meson: Do not enable OpenMP on clang-cl
Closes: #16145
2026-04-01 21:40:41 -03:00
Jehan
b402e7d73b Revert "meson: Set -Wno-vla-cxx-extension"
This reverts commit 6f655967dc.

This should not be needed anymore.
2026-04-01 18:52:45 +02:00
Bruno Lopes
6f655967dc meson: Set -Wno-vla-cxx-extension
As briefly discussed with @ok and @cmyk.student on IRC,
it seems reasonable, specially considering it is C++.
2026-03-31 18:58:42 -03:00
Bruno Lopes
2bdc93281c build, libgimpwidgets, meson: Add ScreenCaptureKit support
Inspired by https://github.com/neutralinojs/neutralinojs/pull/1477/changes
which was found by Alex.

This makes possible to build GIMP on macOS 12+ targets, which is
useful for local builds. We, however, will keep targeting macOS 11.
2026-03-29 11:55:36 -03:00
Bruno Lopes
1d4f942239 meson: Assorted fixes 2026-03-29 07:47:52 -03:00
Bruno Lopes
e2549ef383 meson: Move pango checks to relevant section 2026-03-29 07:47:52 -03:00
Bruno Lopes
3a4ceb0b3a meson: Unify scattered macOS-specific code 2026-03-29 07:47:52 -03:00
Bruno Lopes
66d5e9c9f9 meson: Move gimpdir and project_subdir to relevant section 2026-03-29 07:47:52 -03:00
Bruno Lopes
497ffd8eff meson: Move exec_ver to relevant section 2026-03-29 07:47:52 -03:00
Jehan
0cb6d9cf7b Post-release version bump to GIMP 3.2.3. 2026-03-28 20:46:29 +01:00
Bruno Lopes
456de6761e meson: Fix typo on have_lua_lgi check
Closes #16120
2026-03-28 09:00:42 -03:00
Jehan
aca680a1b1 Release GIMP 3.2.2. 2026-03-28 09:20:30 +01:00
Bruno Lopes
e0e4285b73 meson: Fix shared-mime-info being wrongly required on Windows
This fixes a regression introduced by ac73289f
2026-03-27 21:14:15 -03:00
Jehan
daff399b4d meson, INSTALL: also document the required version for PyGObject. 2026-03-27 17:39:44 +01:00
Jehan
91f78f58c4 meson: make error messages a bit more accurate on what was tested.
As a follow-up of the previous INSTALL update (complement for #16115).
2026-03-27 17:34:06 +01:00
Bruno Lopes
424f090100 meson: Do not warn about xdg-email on macOS
There is no such thing from Freedesktop for macOS. What we
use (at packaging phase) is an AppleScript by Alex Samorukov
at build/macos/patches/xdg-email.

So, makes no sense having that warning on macOS since such
custom script does not exist anywhere to be found at build-time.
2026-03-27 13:13:03 -03:00
Bruno Lopes
ac73289f18 meson: Do not warn about pixbuf loaders.cache on native Windows builds
This is distracting, being only useful on crossbuilds.
Since many years, MSYS2 runs such command at install.
2026-03-27 12:46:30 -03:00
Bruno Lopes
aba2a9b852 meson, tools: Add check for GDB when debug-self-in-build option is set 2026-03-24 06:58:30 -03:00
Bruno Lopes
7a928ee3ed meson: Ensure unversioned python is properly found on Windows 2026-03-21 13:11:37 -03:00
Bruno Lopes
92a860d5c9 app, meson: Make python check more robust to work with MacPorts etc
Partially reverts 9be1af2b

See the context: https://gitlab.gnome.org/Infrastructure/gimp-macos-build/-/merge_requests/408#note_2642419
2026-03-20 22:56:31 -03:00
Bruno Lopes
59d0e82850 Partially revert "Reenable .pdb building on GCC (for MINGW64/UCRT64 sake)"
This partially reverts b705bfb660

.pdb building is still broken on GCC (not on babl anymore but
while building script-fu).
2026-03-17 16:26:31 -03:00
Bruno Lopes
b705bfb660 build, meson: Reenable .pdb building on GCC (for MINGW64/UCRT64 sake) 2026-03-17 09:56:20 -03:00
Bruno Lopes
3fef9e5dc6 meson, app: Remove Wintel emulation layer after TWAIN disabling
Since we will not distribute 32-bit TWAIN with the intaller anymore,
GIMP is now architecture-native on Windows like on Linux and macOS,
so there is no use for WoW64 emulation on native 64-bit installations.

Users that need to use TWAIN can build GIMP on MINGW32 shell,
using -Dtwain-unmaintained=true build option at meson setup.
2026-03-17 09:56:20 -03:00
Bruno Lopes
9fb127f684 meson: Add explicit build option to build 32-bit TWAIN
It is long-time unmaintained on our repo, with no issues being fixed. Now that
32-bit binaries are not distributed, we can safely move to unmaintained section.
2026-03-17 09:56:20 -03:00
Jehan
82b327db47 Revert "Temporary revert just to fix the Windows installer for the 3.2.0 series."
This reverts commit ec5ddde643.

Gets back to post-release version, GIMP 3.2.1.
2026-03-14 19:52:40 +01:00
Jehan
ec5ddde643 Temporary revert just to fix the Windows installer for the 3.2.0 series.
Revert "build: set back snapcraft to a nightly build."

This reverts commit f69b9c5458.

Revert "Post-release version bump to 3.2.1."

This reverts commit f76c25494f.
2026-03-14 14:00:53 +01:00
Jehan
f76c25494f Post-release version bump to 3.2.1. 2026-03-14 12:57:23 +01:00
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