Commit Graph

853 Commits

Author SHA1 Message Date
Bruno Lopes 6850232cdb build/windows: Organize Installer script
The order of the commands was very confusing and some useful comments
was lacking. Let's fix it.
2024-01-15 16:36:32 -03:00
Bruno Lopes 2c1c7aae03 gitlab-ci, build/windows: Fix .patch and improve a little pacman upgrade
* Fixes an ARM .patch that stop to working after !1171, causing job fail
* Changes the logic of system upgrade (pacman -Syyuu) to be less redundant
  This also improves consistency with the Debian jobs
2024-01-15 15:04:30 -03:00
Bruno Lopes 3a561d1c68 build/windows: Fix and update some Inno Installer files
These files (specially the script) were not properly updated in the
previous MR, which would make the Inno Installer Job fail.
2024-01-15 15:04:30 -03:00
Bruno Lopes 5dc8c267da build: remove obsolete 'patches'
They have already been released in Cairo and were not even being applied
by us anymore.
2024-01-15 11:53:42 -03:00
Bruno Lopes f24432e632 build: drop 'buildbot'
This folder has become totally obsolete because we currently use Gitlab CI
and its content was not being maintained for over a decade.
2024-01-15 11:53:42 -03:00
Bruno Lopes 28fc941c53 build, devel-docs, po-*, tools: remove Autotools remnants
- Remove files not used by meson
- Remove autotools references in texts
2024-01-14 10:38:12 -03:00
Bruno Lopes 874b199e61 build, docs, etc: drop hardcoding of GIMP version
In preparation for GIMP 3.0 and future releases.
2024-01-13 18:15:10 -03:00
Bruno Lopes d5f41b296b build/windows, data, extensions, plug-ins: Fix Build omissions
- Fix "no icons" errors generating loaders.cache with .cmd (CI-Cross).
  ! This is a sub-optimal fix, but it's better than a useless build.

- Fix "no interpreter" errors generating .interp with Meson (CI-Native)
  and generating .interp and copying .typelib with .cmd (Local-Native).
  ! This is a sub-optimal fix to Local-Native, but plug-ins will work.

- Fix "no iso" error copying iso_639.xml with Meson (Local-Native).
2024-01-02 10:49:31 +00:00
Bruno Lopes 9af3579f63 build/windows, devel-docs: Make Installer stuff human readable and less hardcoded
The Inno installer scripts contents (only 3 files: files, gimp3264 and
32on64) and filenames have been organized, making them much easier to
read, and slightly less hardcoded so less prone to being misunderstood
and pervasively receiving packaging stuff.
Just to be clear, one more time: the Inno installer (or future MSIX)
scripts never should be the center of attention. This "installcentrism"
caused a domino effect of partially "abandoning" the packaging, build.sh
and the meson scripts, which explains the existence of this MR...

(Some things still hardcoded since wildcards in Inno are very limited.
Also, the rational ordering principles of this MR were not applied since
these scripts are heavily based on the x86 .zip package and changing the
order of things here, according to my tests, breaks things quite easily)
2024-01-02 10:49:31 +00:00
Bruno Lopes af79bbe028 gitlab-ci, build/windows: Make Packaging scripts compatible with CI-Cross job
The CI crossbuild job now use the same main script (and the same
sub-scripts of linking and debug generation) of the native CI for
packaging. These unified scripts greatly facilitates maintenance.

The crossbuild deps script is now more consistent in relation to the
native one. As this is polished, the cross one is now polished too.

A crossroad gimp build script was created with a more clear code.

Also, finally make the script for packaging only, removing build step
stuff that shoudn't be here (glib-schemas generation) since this causes
disparity with the Local native build; and adding some packaging
decisions that shoudn't be in the installer scripts (eg. specific
folders of ghostscript, glib; no share/themes), which also facillitates
INNO (and future MSIX) maintenance.
2024-01-02 10:49:31 +00:00
Bruno Lopes 8b9aa1e7ca gitlab-ci, build/windows: Make Build script compatible with Local-Native build
The local builds now can use the same script of CI for sake of time.
The compatibility layer is very simple and makes the script more
used/tested, therefore more reliable.
2024-01-02 10:49:31 +00:00
Bruno Lopes 5ecf228019 gitlab-ci, build/windows: Make Deps script compatible with Local-Native build
The local builds now can use the same script of CI for sake of time.
The compatibility layer is very simple and makes the script more
used/tested, therefore more reliable.

Also, remove some redundacy on the code for better maintenance.
2024-01-02 10:49:31 +00:00
Bruno Lopes 637c49b30f build/windows: Add Dependencies list compatible with all jobs
Now, we have only ONE list applicable for build-deps-crossroad.sh,
build-gimp-msys2.sh and package-gimp-msys2.sh, instead of hardcoding
3 times. This unified list greatly facilitates maintenance.
2024-01-02 10:49:31 +00:00
Bruno Lopes 271ba85770 gitlab-ci, build/windows: Unify CI jobs wording
Debian changes:
- Since autotools has gone, we don't need to specify 'meson' in the
debian job and others.
- The "INSTALL_PREFIX" was renamed for the more usual "GIMP_PREFIX" and
the meson sintax of Debian jobs was also updated.

Windows changes:
- Then, clarify that the win64-nightly and win32-nightly jobs are, in
fact, in the 'packaging' step, since we don't really "distribute" GIMP
in .zip and the commands are almost the same of the packaging .SH
script, without scripted optimizations for Inno Installer (or future
.MSIX), crucial for distribution.
- We don't need to specify "native" sufix in any build since they are
the rule and cross builds are the exception.

General changes:
- The job names was changed to be more consistent and in accordance
with the folders present in the artifacts.
- The 'nightly' sufix was removed from the Inno Windows Installer job
and others, since this doesn't reflect the real build frequency.
- The scripts filenames are altered to stay "in order". This is not
essential but ultra convenient since it is easy to view and search.
(The -uni suffix is explained in a further commit)
- All artifacts names now have the commit to avoid apparently duplicate
files when downloading same step artifacts from different projects.
- Finally, rearrange the order of jobs rationally: first the OSes and
archs (from the most free and modern to the most closed and legacy),
then the stages (from 'prepare' to 'analysis'), ending with the
frequency of jobs (from the most frequent, called at each push, to
the least/weekly).

Overall, this changes, although difficult to review at the first
sight, will avoid in the future quite "dumb" issues like:
GNOME/gimp#10195
2024-01-02 10:49:31 +00:00
Daniel Novomeský 291208f4f9 build: associate hej2 extension in Windows installer 2023-11-20 20:18:37 +01:00
Bruno Lopes fd6d404698 Issue #8877: Package 'gdbus' on Windows to fix warnings 2023-11-14 08:19:49 -03:00
Jehan f12a88bd65 build: sync nightly flatpak manifest with beta one. 2023-11-10 20:33:10 +01:00
Jacob Boerema 1b258729c9 ci: Korean translation for the Windows installer was moved to Official
Also remove special handling of Hungarian since it is now part of an
official release.
2023-11-02 21:40:04 -04:00
Alx Sa 414f9f9abf build: Replace overlooked gimp_pdb_run_procedure_config () call
from 57ca3f48.
2023-10-19 14:55:59 +00:00
Jehan c9c372e77c build: missing dependencies at Windows build packaging stage.
This is unrelated to the Aarch64 changes. It was just already broken.
2023-10-15 11:53:27 +00:00
Jehan fe465120be build: install lua5.1 instead of luajit on Windows/Aarch64. 2023-10-15 11:53:27 +00:00
Jehan 7a34282fa5 gitlab-ci, build: add Aarch64 build in our universal installer.
This is in part a port of commit 6f921b27bb from gimp-2-10 branch, except that I
could not easily cherry-pick because too much had changed already in the master
branch.
There are also a bunch of additional changes in some other glue scripts.

Also some rules which were in the 2.10 branch don't apply to the main one, such
as Python being copied from the x86 binaries, since clang-aarch64 has Python3
(unlike Python2).
2023-10-15 11:53:27 +00:00
Jehan de126b0c32 build: split-debug-msys2.sh fails silently on Windows/Aarch64.
Fixes:

> $ C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/split-debug-msys2.sh"
> + '[' -z '' ']'
> + find . '(' -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' ')' -type f -exec objcopy -v --only-keep-debug '{}' '{}.debug' ';'
> C:/msys64/clangarm64/bin/objcopy.exe: error: unknown argument '-v'
2023-10-15 11:53:27 +00:00
U-YGGDRASIL\ender 050c56851b Installer: remove setup.ini (not used any more)
(cherry picked from commit 0793b2a796)
2023-10-15 11:53:27 +00:00
U-YGGDRASIL\ender 092be766e5 Installer: include file extension in association name
(cherry picked from commit 597e68a364)
2023-10-15 11:53:27 +00:00
Jehan 4426eef73a build: fix per-architecture directories and Vala plug-in build.
Thanks to Hernan Martinez for noticing this issue which should fix Vala building
both for i686 and Aarch64 builds.
2023-10-15 11:53:27 +00:00
Jehan 17688ffa3a build, gitlab-ci: taking one more patch from MSYS2 project.
This should hopefully fix this error in the CI:

> llvm-rc: Error in ICON statement (ID 1):

See: https://github.com/llvm/llvm-project/issues/51286
2023-10-15 11:53:27 +00:00
Jehan 823f24c401 build, gitlab-ci: temporary patch for the Windows/Aarch64 build.
See discussion in #9170 and !1091. It looks like this soon won't be a problem
with a recent llvm-windres (which is now patched). But until then, let's patch
upstream GIMP but only for this build.
2023-10-15 11:53:27 +00:00
Jehan bb6ac317b8 build: luajit is currently not available in clangarm64 MSYS2 repository. 2023-10-15 11:53:27 +00:00
Jehan b4a06737c0 build: testing a Windows/Aarch64 build.
Note: the additional `rm` call was done for this error:

> + mv _install-arm64 /home/SYSTEM
> mv: cannot move '_install-arm64' to '/home/SYSTEM/_install-arm64': Directory not empty

I guess the home directory is not properly wiped-out between runs, which is not
a huge problem as long as the runner is private to our project. Let's clean
things ourselves.
2023-10-15 11:53:27 +00:00
Jehan 47133b48ef build: add new Belarusian translation in the installer.
This localization was added recently but it was not in the installer scripts.
Discovered with unit testing: meson test gimp:build / windows-installer-langs
2023-09-27 21:01:09 +02:00
lillolollo ade8cad5d1 gitlab-ci: Windows update python 3.11 2023-09-06 15:08:03 +02:00
Daniel Novomeský 8f0e2fd5aa flatpak: remove libjxl
We will use libjxl provided via org.gnome.Sdk//master instead.
2023-08-18 19:39:29 +00:00
Jehan 8a8451750d build: Imath is a dependency of OpenEXR.
Organizing sub-dependencies into modules helps. Later if for instance we need to
remove or change OpenEXR, we know that they are related and that Imath can be
removed if we remove OpenEXR.
2023-08-09 17:21:24 +02:00
lillolollo 93b4dbbbcd Update openexr to version 3 2023-08-07 22:45:40 +00:00
Jehan 00dd121ba0 build: sync nightly flatpak manifest with the beta branch on Flathub. 2023-08-07 20:28:46 +02:00
Alx Sa f947109f92 build: Enable IFF format on Windows
Now that libiff and libilbm have been added to the MSYS2 repositories,
the plug-in can be built automatically on Windows.
2023-07-26 17:12:35 -04:00
Jacob Boerema 43a5b92c65 build: MSYS2 package python3-gobject was replaced by python-gobject 2023-07-26 16:29:22 -04:00
Jehan 8e4850dafe build: fix (hopefully) lua in the Windows installer.
See: https://gitlab.gnome.org/GNOME/gimp/-/issues/9653#note_1780587

Looking at MSYS2 logs, it looks like they very recently "fixed" the search paths
for lua files, which in turn broke our workaround (searching in subdirectories
of bin/ instead of share/ and lib/).

This should work better (though untested) with the workaround removed now.

Commit on luajit package at MSYS2:
703c7bae2f
2023-07-01 22:12:13 +02:00
Jehan e1203e9f76 gitlab-ci, build: create Windows installer files with the Linux build.
The creation of the BMP welcome images for the Windows installer (part of
-Dwindows-installer=true build option) fails in the Windows job. After much
debugging, I could run GIMP, yet it was not enough. One of my hypothesis so far
is that the environment variables for DLLs won't work, since all the DLLs must
be in the same directory as the main binary (though with the WSL thing, I am
unsure, maybe it is still supposed to work), which only happens once GIMP is
installed. So GIMP runs successfully but not plug-ins.

Anyway I wasted too much time working on this and without a local Windows, it
just takes too long (mostly testing thanks to the CI) and is frustrating. Let's
just move to building both the localization files and the images on the main
Debian job (gimp-meson-debian), then use these as dependencies of the
win-installer-nightly job, i.e. when building the installer.
2023-06-29 00:21:44 +02:00
Jehan 8db25f2246 build: prepend in case the environment variable already exists.
The common order logic for list of directories in environment variables is that
left paths have precedence. This is at least the case for LD_LIBRARY_PATH (and
probably GI_TYPELIB_PATH too).
Make sure that our local libraries and introspected binaries (in the build
directory) are used and not any version installed on the system or by previous
`ninja install` calls.
2023-06-29 00:21:29 +02:00
Jehan 2825fa67e0 build: build images with gimp-console if available.
This was a first attempt at fixing this error on the CI:

> Cannot open display:

Though it was not enough (see next commit calling plug-ins as non-interactive
when called without interface), it is still a useful change overall.
2023-06-29 00:09:28 +02:00
Jehan 9d03cdd9ae build: remove test on now-removed Makefile.am for lang list consistency. 2023-06-29 00:09:28 +02:00
Jehan 9e9fe1435a build, plug-ins, gitlab: make GIMP runnable from build directory without…
… being installed.

There is already most of the main code logic for this, though now plug-ins need
to be in their own subdirectories, which breaks for plug-ins/common/ and
plug-ins/python/, while I needed plug-ins in both these categories to generate
the Windows installer welcome images (file-png, and python-fu-eval in
particular).

Once again, meson was not very helpful, since all its functions still refuse to
output generated files in subdirectories, so I end up duplicating plug-in files
with a custom Python script.

This should fix the CI. It was working on my machine as GIMP was installed, but
such a build rule should work even without GIMP installed.
This will also be useful in the future when we'll want to run unit tests of
plug-ins through the finale GIMP binary itself.
2023-06-27 17:46:46 +02:00
Jehan 2fd25fe6bd build: generate the Windows installer welcome images from the splash screen.
After discussion with Jernej, InnoSetup should now work better with rescaling
a big image properly to the window size, yet the ratio should still matter.
Apparently the welcome image is a hack and this is why it requires specific
ratio images. We don't use the big size yet, but since Jernej told me which
dimensions are expected, I already added the code for it to make it easier
later.

So anyway this code would allow us not to have to commit welcome images each
time, which are basically resized copy in BMP of the splash screen, slowly yet
surely filling up our repository with image duplicates.
After all, we develop a scriptable image editor! We should use it to edit images
and export in expected formats!

I only use this script for the devel installer for now, for testing and see how
it goes.
2023-06-27 00:39:17 +02:00
Jehan 2696372680 build: add missing dependencies in packaging script.
While some packages may be needed only when building (and others only when
packaging), we should probably have a shared list of packages needed for both
steps so that we avoid discrepancies which lead to missing libraries in our
installer.

See: https://gitlab.gnome.org/GNOME/gimp/-/issues/9653#note_1777596
2023-06-26 19:27:59 +02:00
Daniel Novomeský 69c81f1059 flatpak: upgrade libjxl 2023-06-16 13:15:14 +00:00
Jehan d0ac96b8b3 build: fix nightly flatpak.
Don't set both a branch and a commit, otherwise flatpak-builder will
compare the HEAD of this branch (which may evolve with the commit).

Fixes:

> Failed to download sources: module qoi: Git commit for branch master is dfc056e813c98d307238d35f7f041a725d699dfc, but expected f6dffaf1e8170cdd79945a4fb60f6403e447e020
2023-06-07 12:24:11 +02:00
Jehan 36fe8a979d build: remnants of the autotools builds in installer creation script.
Because of this, the script was failing to get the version string, which
in turn was breaking InnoSetup.

This fixes the following InnoSetup bug:

> Error on line 116 in C:\_r\_builds\k3_3muaB\0\GNOME\gimp\build\windows\installer\gimp3264.iss: Value of [Setup] section directive "VersionInfoVersion" is invalid.
2023-06-06 20:45:09 +02:00
Jehan 12f349ef34 build: gobject-introspection was not pulling gobject-introspection-runtime.
This is an issue I'll have to fix in crossroad. Let's have the CI build
fixed for now.
2023-06-06 20:45:09 +02:00
lillolollo ff0a4d012f Add aalib on crossroad 2023-06-05 23:16:59 +00:00
Michael Natterer 26dce72d2c Remove autotools 2023-05-27 00:03:52 +02:00
Jehan 88e82d57af build: install gobject-introspection with MSYS2 when cross-building…
… for Windows.

Though it's useless for actually building the GIR files, we still need
this package now, for building script-fu with introspection abilities,
to generate GIMP and GEGL enums.
See the 2 previous commits for more information.
2023-05-24 23:19:20 +02:00
Alx Sa 48e976725c build: Update Windows installer associations
Adds the following formats that GIMP now supports: .ani, .cur, .dcx,
.icns, .pam, .wbmp, .iff/acbm/ilbm/lbm
2023-05-15 19:26:48 +00:00
Alx Sa d4f420769c plug-ins: Port FITS plug-in to cfitsio library
Switch to NASA-maintained cfitsio library for loading/exporting FITS images.
This allows us to import compressed FITS files (GZIP, HCOMP, PLIO, RICE) in
8/16/32 bit and float/double precision. It also simplifies export code using
the built-in cfitsio APIs.
2023-05-14 15:05:50 +00:00
Jehan a75015a821 build: add appstream-glib
It is actually available in the SDK but was removed from the runtime (relatively
recently, it would seem). As a more general rule, it seems that GNOME is phasing
it out slowly in favor of libappstream. So probably we should do the same
eventually.
Yet for now, to at least have a working nightly flatpak, let's add it to our
package.
2023-05-13 22:44:00 +02:00
Daniel Novomeský bcac1107b5 build: update meson options in MSYS2 build 2023-04-11 10:44:18 +02:00
Daniel Novomeský 1f4ce4c51f flatpak: install QOI header 2023-04-03 17:38:31 +02:00
Daniel Novomeský 04b97dc97c build: enable QOI format on Windows
and associate in the installer.
2023-04-03 09:45:10 +02:00
Jehan 371925e16b build: sync beta and nightly flatpak manifests.
I'm actually syncing with a branch which I can't test right now because flathub
seem to have some breakage. For the nightly, let's just directly push as anyway
we can't test in Gitlab MRs either because of the non-master jobs timeout.
See: https://github.com/flathub/org.gimp.GIMP/pull/202

We should always keep the diff between these files to a minimum.
2023-03-23 15:44:27 +01:00
Jehan 23a0f22614 build: improve further the flatpak README.
- Fix the markdown styling.
- Add commands on how to build GIMP from the local repository instead of a brand
  new clone (otherwise I don't see how one could develop with flatpak). I knew
  it were possible, but until today, I never tried to do this so I had to test
  first.
2023-03-23 15:12:12 +01:00
Jehan 5e1a7b15da build: remove outdated cron file and update our flatpak howto.
- The cron file was from the very early flatpak experiments before Flathub came
  into the picture, as well as the GNOME Nightly repository. Back then, we
  wanted to set up our own nightlies or release repository through a cron.
- It is still interesting to keep some instructions for local builds of the
  flatpak as some people want to use this for development (but all the part
  about exporting to a repository, signing, etc. is now unneeded for such use
  case). So I'm updating the howto to more current recommendations.
- `flatpak-howto.txt` renamed to `README.md`.
2023-03-23 14:38:08 +01:00
Jacob Boerema ecbcc4c4a4 build: fix ci failure due to partial missing bg in windows installer
Bulgarian was added to the installer po files and LINGUAS, but the other
files needing updates were forgotten. Let's fix that.
2023-03-14 14:17:19 -04:00
Daniel Novomeský dc8121729d flatpak: upgrade libjxl, highway, libde265 2023-02-13 17:59:14 +00:00
Alx Sa f6b4adafa3 build: Port fileicon.ico from gimp-2-10
This .ico contains additional 24x24, 64x64, 128x128, and 256x256 sizes
for clearer icons on different resolutions and displays.
2023-01-27 04:41:10 +00:00
Jehan 29dff58a2f build: more `meson setup` syntax update. 2023-01-24 17:48:29 +01:00
Jehan 4699d9e2ac build, gitlab-ci: using non-ambiguous `meson setup` syntax.
Fixes:

> WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
2023-01-24 15:35:30 +01:00
Daniel Novomeský 12b1890980 flatpak: upgrade exiv2, libheif, libjxl 2023-01-20 12:49:16 +01:00
Jehan c5f34477e6 build: sync flathub's beta and nightly branches of the flatpak.
Only the libwmf patches are still different. Apparently we may have fixed the
same bugs in different way on both branches. We should look later in details to
see if some patches are better than the other.
2022-11-18 23:48:46 +01:00
Jehan cab8748c6c build: delete now outdated files.
It's probably unneeded as the 2.99 installers are transient and anything
installed by GIMP 2.99 won't be in stable 3.0 anymore. Still, it's nice not to
have any weird warnings even in dev releases.
2022-11-13 23:04:38 +00:00
Daniel Novomeský ec3da29f67 flatpak: remove extra lcms2
lcms 2.13 is already present.
2022-11-10 16:50:20 +01:00
Daniel Novomeský e58efc314d flatpak: change recipe for libjxl 2022-11-04 11:17:58 +00:00
Daniel Novomeský 006b77674d flatpak: Upgrade libde265 2022-11-03 12:07:52 +00:00
Jehan f7b026e3f0 build: add glib-networking to cross-built Windows jobs.
This dep is needed for various network GIO modules. Also various moving files
around from lib/gio/modules/ were broken in the new brought back jobs.
2022-10-27 16:23:56 +00:00
Daniel Novomeský 403d11330c flatpak: minor fixes in libde265 and libjxl modules
don't build unnecessary tools from libde265
libjxl uses existing BROTLI library instead of bundled one
2022-09-29 11:51:47 +00:00
Daniel Novomeský 0f8f3c3f1a flatpak: enable BMFF format support in exiv2
Improves AVIF, HEIF, JPEG XL metadata support.
2022-09-23 13:30:12 +02:00
Daniel Novomeský e0ef799473 flatpak: upgrade libheif and libjxl 2022-09-22 16:32:33 +02:00
Daniel Novomeský 75121fdbc8 build: remove ilmbase from crossroad build,
because it is no longer offered by MSYS2
2022-09-03 19:19:30 +00:00
Jehan ca230cb770 meson: fix warnings of deprecated features.
Now that we bumped our meson requirement, meson is complaining about
several features now deprecated even in the minimum required meson
version:

s/meson.source_root/meson.project_source_root/ to fix:

> WARNING: Project targets '>=0.56.0' but uses feature deprecated since '0.56.0': meson.source_root. use meson.project_source_root() or meson.global_source_root() instead.

s/meson.build_root/meson.project_build_root/ to fix:

> WARNING: Project targets '>=0.56.0' but uses feature deprecated since '0.56.0': meson.build_root. use meson.project_build_root() or meson.global_build_root() instead.

Fixing using path() on xdg_email and python ExternalProgram variables:

> WARNING: Project targets '>=0.56.0' but uses feature deprecated since '0.55.0': ExternalProgram.path. use ExternalProgram.full_path() instead

s/get_pkgconfig_variable *(\([^)]*\))/get_variable(pkgconfig: \1)/ to
fix:

> WARNING: Project targets '>=0.56.0' but uses feature deprecated since '0.56.0': dependency.get_pkgconfig_variable. use dependency.get_variable(pkgconfig : ...) instead
2022-08-31 01:29:37 +02:00
Jehan 7375116d46 po-windows-installer: fix double escaped ampersand in XML for the…
… Windows installer localization.

There are kind of 2 separate bugs here:

- Direct i18n.gettext() to the proper data directory where to find the
  ITS file. Otherwise `meson compile gimp30-windows-installer-pot` and
  `meson compile gimp30-windows-installer-update-po` complained about
  not knowing XML and falling back to C, which is obviously a problem:

> /usr/bin/xgettext: warning: file 'build/windows/installer/lang/setup.isl.xml.in' extension 'xml' is unknown; will try C

- Set gt:escapeRule to "no" in the ITS file, otherwise the XML entity is
  kept as-is in the po file (i.e. "&" stays "&" inside the po
  files), but it's considered as raw text when merged back to XML, i.e.
  that the '&' is properly converted to a XML entity, so we end up with
  a double escape "&".
  Now the po file will have a '&' which will still be converted to XML
  entity at merge time. This is actually most likely better than asking
  translators to handle XML entities themselves (with the possibility to
  make typos and break the XML entity).

See https://savannah.gnu.org/bugs/?58643
2022-08-22 20:50:59 +02:00
Jacob Boerema b0ade14957 build: fix Windows installer
The Hungarian language file for the Windows installer was recently moved
from unofficial to the officially supported languages. However, a new
release including Hungarian by default is not available yet. This causes
our CI to fail because it can't find Hungarian in unofficial.

We change our ci script to download Hungarian from the correct location
for official languages, and adapt gimp3264.iss to reflect the correct
location.
2022-08-15 23:32:47 +00:00
Jehan 218c78e76a build: search only once for the addbom.sh script.
This avoids repeated "found: YES" output (one per installer language) on
the project configuration.
2022-07-31 18:25:33 +02:00
Jehan 47ba11056f Issue #7386: fix languages non-provided by InnoSetup showing as English.
The language files provided by the InnoSetup project (either the main
ones or the "Unofficial" ones, i.e. less maintained ones) at least
provides the name of the language, possibly in English, ideally
self-localized in its own language.

Unfortunately Kabyle didn't have any language file so we were using the
Default one, which ended up showing the lang as a duplicate (and very
wrong) "English".

With this commit, I add code to provide our own very basic base language
file, which would at least contain the language name. There is also a
concept of language ID to be verified in Windows-provided list.
Unfortunately it doesn't have any (actually it was id-ed 0x1000 like
many other languages, which looked therefore to be the code for an
unsupported lang). InnoSetup docs tells us to leave 0 then. We can add
the ability to set a specific code later in the template if we add other
un-provided languages and if they have their own lang id.

With this base infrastructure, we should be able to better support more
languages.
2022-07-31 15:10:04 +00:00
Jehan 195ed374f4 Issue #8338: add BOM to ISL file as external script.
Unfortunately the weird encoding of a string to bytes to get the UTF-8
BOM worked on my local machine, but not on the Windows CI. I'm not going
to fight it and fallback to a shell script.

I am guessing it should work fine on all platform since we use basically
the same sed call in build/windows/gitlab-ci/installer-gimp-msys2.sh
already.
2022-07-31 01:43:05 +02:00
Jehan 4293d05dda Issue #8338: add a BOM to ISL files.
Inno-Setup absolutely requires it to recognize UTF-8 translation files.
This should hopefully be the final fix to #8338.

Note that this fix is full of workaround for meson bugs or limitations.
While it was a one-liner in autotools, added to the existing rule, here
I have to add an additional (non-relevant) target rule, then uglily work
around 2 bugs:
https://github.com/mesonbuild/meson/issues/1564
https://github.com/mesonbuild/meson/issues/7696

I can't say I'm so happy about the resulting change, even though it
seems to work. If anyone can propose a nicer build rule, it would be
welcome.
2022-07-30 23:28:39 +02:00
Niels De Graef 7186907c16 build: Fix windows installer i18n
Whenever we have an element without translation, we try to use the value
without a `xml:lang` attribute. That selector was wrong though, which
leads to https://gitlab.gnome.org/GNOME/gimp/-/issues/8338, which should
now be fixed.
2022-07-29 20:40:41 +02:00
Niels De Graef 1308df4dc1 meson: Fix windows installer translations 2022-07-08 10:08:14 +02:00
Anders Jonsson e601a6c7de Change GTK+ to GTK
GTK got rid of the + in 2019:
https://lwn.net/Articles/779305/
2022-07-07 14:02:36 +00:00
lloyd konneker d5a83429b4 ScriptFu: Add script-fu-interpreter akin to other interpreters
Why:
1) users can install .scm scripts to plug-ins dir
2) Crashing scripts do not crash extension-script-fu

Scripts (.scm files) have a shebang and are executable
and in a same-named subdir of plugin dir.

Interpreter/scripts create PDB procs of type PLUGIN unlike extension-script-fu
which creates PDB procs of type TEMPORARY, owned by extension-script-fu.

Unlike other interpreters, the interpreter is-a plugin outright,
not by virtue of the script subclassing GimpPlugin and using GI.

More details in /plug-ins/script-fu/interpreter/README
2022-06-30 13:39:45 +00:00
Jehan dfa1f0fc93 build: intltool is still needed by libmypaint. 2022-06-25 17:06:30 +02:00
Jehan 66812c8862 build: fix the distcheck.
MR !653 was merged too early as Gitlab bugged on us! Anyway this fixes
the distribution contents.
2022-06-25 17:06:21 +02:00
Jehan 8122e8cf36 extensions: fix builds after MR !653 (migrating to gettext).
(1) On recent meson versions, it fixes this error:

> extensions/goat-exercises/meson.build:108:0: ERROR: i18n.merge_file keyword argument 'output' was of type array[str] but should have been str

As docs explains, 'output' only accepts one item in i18n.merge_file().

This bug also happens on older meson (but there the reported error is a
lot less useful as it doesn't mention local meson build code).

(2) `setup.isl.xml` is a temporary intermediary file used to create the
    Windows installer. It must not be installed.

(3) `gimp30-windows-installer.mo` itself is only used to create
    `setup.isl.xml`. It must not be installed as well.

(4) gimp-tips.(its|loc) files (same for gimp-tags ones) should not be
    installed. They are only temporary data.

(5) Fix environment variable: s/GETTEXT_DATA_DIRS/GETTEXTDATADIRS/

Fixes:

> /usr/bin/msgfmt: cannot locate ITS rules for ../../../data/tips/gimp-tips.xml.in

(6) Fix various bugs in the *.setup.isl files creation in autotools
    build (typo, wrong files used, order of options in `xsltproc`
    apparently meaningful, and so on. I guess the autotools build was
    not as well tested as the meson one :P).

(7) Fixing the unit test verifying language lists consistency.

(8) `setup.isl.xml.in` must be added to the distribution.
2022-06-25 12:41:21 +02:00
Niels De Graef f663d26ab5 Migrate from intltool to gettext
intltool has long been dead upstream. Let's not poke the dead corpse,
please.

This commit is quite large, but that's mostly since trying to support a
hybrid of both gettext and intltool with both Meson and Autotools was
really hard, so I stopped trying.

Due to gettext relying on quite some things being at the exactly right
place in the autotools build (like `ABOUT-NLS` and `config.rpath`) we
really needed to cleanup the `autogen.sh` to only call `aclocal` and
`autoreconf`. No more strange magic; I tried to do it without changing
too much in the file, and things just broke. If people want to do
something more custom, they can just change the script directly. This
change also uncovered some problems in our `configure.ac`, like using
deprecated macros.

The following major changes happened:

* meson: Changed `custom_target()` to `i18n.merge_file()` for all
  supported file types
* Added `.its` and `.loc`  files for the GIMP-specific XML formats, so
  that gettext understands them
* For the `.isl` (Window installer stuff) file, there's no easy way to
  do this in gettext, so instead we start from an XML file (again with
  its own ITS rules etc), translate that with gettext, and then use
  `xsltproc` with a bit of magic to output the .isl file for each
  language
* the `po*/Makefile.in.in` files are migrated to `Makevars` files,
  which gettext natively understands.

Fixes: https://gitlab.gnome.org/GNOME/gimp/-/issues/8028
2022-06-25 10:25:49 +02:00
lloyd konneker 1c50e60e9c build:windows: migrate to Python3.10 on MSYS
Evidently MSYS no longer has 3.9, see recent pipeline failures.

Note reports of issues with meson on 3.10, but it might not impact this build.
2022-06-24 14:52:02 +00:00
Jehan 10145bb938 build: add an option in the Windows installer to disable update check.
This will allow to use the official Windows installer directly in the
Windows Store, as per the new proposed workflow by Microsoft.

Nevertheless our GIMP for Windows has a built-in update check which
would check if a new version exist and warn people (advising them to go
on the website and download the new installer to update). We obviously
don't want this on the Windows Store which has its own update channel.
It would be confusing.

Therefore I added a feature to disable the built-in update check (not
even showing in Preferences) by tweaking a single package variable. The
installer now comes with new option /DISABLECHECKUPDATE=true which will
add said variable.
2022-06-07 17:52:52 +02:00
Jehan 89fc542fad build: build Georgian localization for Windows installer.
Georgian added in commit 2e07b2d5cc.

This will fix the CI.
2022-05-03 20:57:58 +02:00
Ondřej Míchal 6e87466b6b Update dependencies
- cairo 1.17.4 -> 1.17.6
- graphviz 2.50.0 -> 3.0.0
- lcms 2.12 -> 2.13.1
- OpenBLAS 0.3.19 -> 0.3.20
- openexr 2.5.7 -> 2.5.8
- poppler 22.01.0 -> 22.03.0
- SuiteSparse 5.10.1 -> 5.11.0
2022-04-02 18:48:31 +00:00
Ondřej Míchal 54f7f695f3 Replace C-style comments with JSON keys ignored by Flatpak
JSON does not support comments and their support in Flatpak is possible
through use of json-glib[0]. This is problematic in fully utilizing
flatpak-external-data-checker because its JSON writer does not respect
existing comments. To solve this, make use of Fltpak's specific
behaviour where a "//" key is explicitely ignored while parsing[1].

[0] flatpak/flatpak-builder#363 (comment)
[1] 0e98b7ae19/src/builder-utils.c (L1250)
2022-04-02 18:48:31 +00:00
Ondřej Míchal baaba0e0d1 Add version constraints for OpenEXR and mypaint-brushes
OpenEXR and mypaint-brushes offer next major versions. GIMP is probably
not ready for the changes in OpenEXR and mypaint-brushes are not yet
finalized. Put their versions under constraints so that automatic PR
creation for dependency bumps can be enabled.
2022-04-02 18:48:31 +00:00
Jehan 649687b48b Revert "build: do not build file-mng for 32-bit Windows."
This reverts commit 6ae69f5e84.

Our 32-bit file-mng build has been fixed normally now. I should have
removed this commit before merging!
2022-04-02 17:27:04 +02:00
Jehan fbb484c56b build: no need to build the reference API for the Windows build.
It looks like the gi-docgen build is broken on Windows (though the CI
does show neither stdout nor stderr output, just a failure without
message). This should be fixed, but it's not necessary for the installer
at least.

Note: on autotools, the gi-docgen step works fine on Windows.
2022-04-01 17:33:38 +02:00
Jehan 6ae69f5e84 build: do not build file-mng for 32-bit Windows.
We didn't need to do this on the autotools build, simply because the
configure step is much more elaborated there, and was checking for the
header file as well as well as a working mng_create() API. But since
libmng was broken, the test failed, so we didn't need to disable it.

By the way, we should check when the `.pc` file was added, because if it
was after the required version, then the meson test is very wrong. It
should not have been different from the autotools file.
2022-04-01 17:33:38 +02:00
Jehan 354b0c22d8 build: let's now build the Windows installer with meson.
The meson build still has a bunch of issues and build bugs compared to
the autotools build, nevertheless the last blocker issue was dealt with
a few days ago (PDB source generation).

Moreover since the meson build on Windows especially makes such dramatic
difference, in terms of build speed, this is a big improvement for
Windows contributor's comfort, and as such is one less barrier of entry.
Anyway I believe that most Windows developers build GIMP with meson now
so sticking on autotools on this platform is just counter-productive.

This is why it was decided to now make meson the recommended build
system on Windows, as a further step toward a move to meson. It is still
not the recommended build system on the other platforms yet.
2022-04-01 17:27:02 +02:00
Jehan 1349168d77 build: remove aalib patches.
These are now directly used in the MSYS2 package. No need to keep them
in the source tree anymore.
2022-03-30 22:13:40 +02:00
Jehan 15f98a30ef build: add ability to run dll_link with debug.
The --debug option so far would only output debug info. I want both the
run to actually occur and the debug to be printed, at least in some
cases. So I make this a choice option with 3 variants (no debug, debug
only and run + debug).
2022-03-30 18:03:15 +02:00
Jehan a97e437efa build: install aalib from MSYS2 where it's now made available.
https://github.com/msys2/MINGW-packages/issues/11115
2022-03-30 17:58:42 +02:00
Jehan 58353a940a build, extensions, po-windows-installer: update gitignore. 2022-03-28 21:46:02 +02:00
Jehan 7785f96f05 build, po-windows-installer: add ability to leave translator comments.
Similar to the change I pushed to gimp-help repository:

intltool-extract does not consider the `;` isl-syntax comments because
we tell it it is in the ini format. So let's have our source in actual
ini format (POTFILES does not like to look for translated strings in
constructed files, only from source files), then create the .isl files
from it in 3 steps (first, transform the comments in isl format; then
merge all language in a single .isl file; last generate one .isl per
language).

There were already a bunch of comments in the setup.isl.in file (though
not showing in the po files until now). I checked if they seemed
relevant, fixed some, completed others, duplicated the ones which match
several strings, etc.

(This improvement to allow comments for translators in the installer po
files was requested by Piotr Drąg on the gnome-i18n mailing list)
2022-03-28 21:42:25 +02:00
Jehan 8b5a09874f build: intltool is actually a base package, not a mingw-w64 one. 2022-03-28 20:54:05 +02:00
Jehan 32498a72d6 build: also install intltool.
Seems that many tools got moved into different packages these last few
days at MSYS2!
2022-03-28 18:02:17 +02:00
Jehan b58c7a5c2e build: install MSYS2 autotools package.
Some tools have been moved. `aclocal` (and likely other tools, but this
was the first one making an error in the deps-win*-native CI jobs) is
now in `automake-wrapper` package, which itself is a dependency of
`autotools`.

Cf. https://github.com/msys2/MINGW-packages/issues/11114
2022-03-28 16:38:19 +02:00
Jehan 19afd8ba53 build: use https.
Not sure why this one URL was not in https.
2022-03-28 16:09:46 +02:00
Jehan 2c6cde8218 build: 7 mandatory parameters in our installer bat script. 2022-03-21 15:09:05 +01:00
Jehan 4b9f7b2512 build: make clearer mandatory installer-needed macros.
Instead of replacing various needed macros with random hardcoded values,
just make them mandatory and exit with explicit error when a needed
macro is missing.
2022-03-19 13:48:37 +01:00
Jan Tojnar e4cbfab5ae meson: Fix build from tarball
Since 2afa019c70,
the Meson configure step will fail when building from tarball (missing `.git` and `gitversion.h` is present)
because `gitversion_h` variable will contain a `list[file]` but `custom_target` does not like that in its `depends` kwarg.
2022-03-18 16:05:58 +00:00
Jehan 368e1d7b8a build: add Galician to the Windows installer scripts.
Now that we have a brand new Galician translation for the Windows
installer.
2022-03-13 16:02:02 +01:00
Daniel Novomeský e519e1a02c build: use libjxl package from MSYS2 2022-03-03 19:55:30 +00:00
Jehan 1101c237b9 build: package the AppStream file into the Windows installer.
Now needed by the welcome dialog.
2022-02-25 21:42:19 +01:00
Daniel Novomeský 271d6a0bd8 build: fix libjxl compilation 2022-02-24 07:34:58 +01:00
Jehan 38d6783299 .gitlab-ci, build: avoid same DLL dependencies from previous runs.
We were already avoiding re-processing a same DLL within the same run
(this can happen when 2 dependencies have themselves a common
dependency). But the dll_link.py script was stateless regarding previous
runs so we might be checking again the same DLLs multiple times (even
though we were not copying them again).

Let's make the script stateful with a new parameter to give a file where
all the previously processed DLL names are stored. I am hoping it would
improve the efficiency of the packaging-win32-native which is suddenly
extra slow (it always times out, even after raising the max job time;
now we time out after 2h30! The 64-bit packaging job just takes 1h,
which is too much already, but still much more reasonable).
2022-02-21 13:36:57 +01:00
Jehan de44059aee build: do not search again dependencies of already done system DLLs. 2022-02-19 19:17:41 +01:00
Jehan 6d117b257f build: fixing Exiv2 source URL in flatpak manifest.
The source apparently got changed to using the forge's download section.
The checksum stayed the same (as checked by myself).
2022-02-18 16:35:02 +01:00
Jehan 650e0fa7f3 build: sync nightly flatpak with updates from the dev flatpak.
This includes:
- "copy-icon" set
- Permission and cleanup rules updated
- Exiv2 bumped to 0.27.5
- Adding an x-checker-data for OpenEXR
- Poppler bumped to 22.01.00
- OpenBlas bumped to 0.3.19
- graphviz bumped to 2.50.0
2022-01-25 01:21:55 +01:00
Jehan 407472f091 build: fix windows-installer-langs unit test.
Also improving a bit the download script by specifying the .isl or .islu
file extension. It's nicer than trying to download randomly, and also it
allows to better compare the list of downloaded files with the list in
gimp3264.iss script.
2022-01-10 23:58:00 +01:00
Jehan 9ba44aab2a build: Improve BOM-adding on InnoSetup files.
My previous command was also adding a linefeed just after the BOM. While
I'm not sure it would really break anything for processing these, it's
anyway much more correct to only add the 3 BOM bytes. So here is the
improved command.
2022-01-10 21:27:12 +01:00
Jehan 5872d8dd45 build: factorize downloading code for InnoSetup languages.
Also some language files are supposed to be UTF-8 yet they are missing
the BOM markup (only method to recognize them for InnoSetup). This is
the case for Chinese Traditional. See issue #7676.
Make sure that this lang file has a BOM.
2022-01-10 21:09:23 +01:00
Daniel Novomeský eb42bbb6a8 build: remove gtk-doc from MSYS2 build environment 2022-01-02 17:42:50 +01:00
Daniel Novomeský 640bc9b7f1 build: update gi-docgen feature setting in flatpak 2022-01-02 11:24:18 +00:00
Jehan cd7b48819c build: removing patches added for issue #5863.
One is a patch for a GExiv2 version below the one we now require, the
second is a patch for GIMP which is now committed and pushed.
Cf. commit 7ed68556c7.
2021-12-28 03:01:18 +01:00
Daniel Novomeský 1397440bab build: add gi-docgen dependency to MSYS2 build 2021-12-27 21:52:21 +01:00
Niels De Graef 92e80d12e8 docs: Migrate from gtk-doc to gi-docgen
gtk-doc has been slowly dying for the past few years; with gi-docgen we
have a nice successor.

This also makes sure the C documentation also uses the GIR file, which
in turn means faster build times (since all the C code doesn't have to
be parsed and recompiled again), and has a clear dependency graph.

See the [gi-docgen tutorial] for more info on how the system works.

[gi-docgen tutorial]: https://gnome.pages.gitlab.gnome.org/gi-docgen/tutorial.html
2021-12-27 10:47:34 +01:00
Jehan 201cbe7e3e build: no need to chmod the test file which is already executable.
Also when working on out-of-tree builds, it would not find the file
anyway and we get this output:

> chmod: cannot access 'test-installer-langs.sh': No such file or directory

Though this was not breaking the tests, it has clearly been useless
until we see this one today.
2021-12-22 17:13:07 +01:00
Jehan bf9c488560 build: fix Windows installer lang test after recent re-encoding drop. 2021-12-22 16:30:04 +01:00
Jehan 6cf3d67e64 build: fix packaging step with MSYS2 GTK+3. 2021-12-21 00:41:39 +01:00
Jehan c59c93cd19 build: do not build GTK3 for our MSYS2 dependency job anymore.
The patch we needed to test needs completion, so it's of no use to
continue building it until this happens.

Also for some reason, the x86_64 build of GTK3 takes forever and times
out (the same build for 32-bit x86 is done quickly as expected) on
repeated occasions. Since this is unneeded right now, rather than
wasting time on this, I just delete this dep build to use the pre-built
MSYS2 package.
2021-12-20 21:25:42 +01:00
Jehan 3e1b783adb build: drop codepage conversion, use UTF-8 for Win install lang files.
Rewriting commit f8cdec1883 by Jernej Simončič for the development
code (which has a slightly different list of languages).

Also adding the meson version of this change.

Since now InnoSetup fully supports UTF-8 isl (as long as they have a
BOM), let's stop converting translations. Then we also avoid all
conversion errors and get a simpler/more robust build process.
2021-12-20 18:50:50 +01:00
Jehan 24d6140782 build: make sure InnoSetup language files are not already present.
I noticed in our build logs such output:

> Saving to: ‘Basque.isl.53’

Wget does not override same-named files and would append a number. The
thing is that we are not supposed to have other .isl files over there,
but I think current Windows runners on Gitlab are not properly wiped
out. That must be why we get remnant of old files.
Anyway this will make sure we override, hence use the last version of
translations (otherwise we are stuck to old versions as long as they are
not wiped out, since the downloaded file is not properly named).
2021-12-17 17:02:12 +01:00
Jehan 449a91b1c9 build: fix again the `xvfb-run` call to work on various distributions.
This tool seems like a mess with various implementations (maybe
distributions patch it?). I'm trying to tweak the script so that it
works at least on the Debian testing/bookworm CI and on my Fedora 33
desktop (and hopefully on more, if not all distribs).
2021-11-14 22:14:59 +01:00
Jehan 588ff7c8d3 build: xvfb-run call from meson fails.
Note that I first thought to use the full option name (`--auto-display`)
but I just got the same error again. It seems xvfb-run from Debian
bookworm just doesn't have this option, and only the older option
--auto-servernum (which is said to be deprecated in favor of
--auto-display in Fedora's xvfb-run for instance, but apparently not on
Debian). At least this works on all distributions (or so it would seem).

Fixes:

> xvfb-run: invalid option -- 'd'
2021-11-14 20:58:19 +01:00
Jehan 9bc9ef0889 build: use POSIX test syntax.
The [[ ]] is not POSIX, hence less portable.
I see our `ninja test` calls in Gitlab CI output a:

> /builds/GNOME/gimp/build/meson/run_test_env.sh: 7: [[: not found

(though it doesn't break the tests)
2021-11-14 20:58:13 +01:00
Daniel Novomesky 86b2920897 build: use libjxl 0.6.1 in flatpak package 2021-10-30 12:12:48 +00:00
Daniel Novomesky b745f00fe4 build: use libjxl 0.6.1 in MSYS2 native build 2021-10-30 12:12:48 +00:00
Jehan 8e69e9f6ac Issue #7402: update GTK build for Windows CI with GCC 11 false…
… positive handling.

Syncing with MSYS2 build rules. See in particular this commit:
51bd1869e8
2021-10-21 14:20:28 +02:00
Daniel Novomesky 0d5a4f50aa build: compile libjxl under 32bit MSYS2 too
Previously only 64bit libjxl was built
2021-10-20 18:08:29 +02:00
Daniel Novomesky 7834fc9c53 windows installer: associate avif and jxl 2021-10-20 12:28:34 +00:00
Jehan 2b3c52fe3d build: add build-id to our CI Windows installer build.
I forgot to do this so GIMP 2.99.8 official release is marked as
"unknown" instead of our official build. It's alright for this one
(especially for a dev release), just setting this straight for further
builds.
2021-10-20 13:53:38 +02:00
Jehan 12aae56ede build: add a bit more info about using the Anitya db (for flatpak deps). 2021-10-20 13:12:39 +02:00
Jehan 808b3aafd3 build: remove calls to ccache in native Windows build.
Anyway we disabled use of ccache in an earlier commit 2da70b3fb7 because
of a bug in MSYS2's CPython. So there is no need to call these commands
either. Also it seems to be breaking the 32-bit native Windows build
(from CI log, I am unsure this is because of ccache, but the break
happens just after running `ccache --zero-stats`).
2021-10-17 16:58:26 +02:00
Ondřej Míchal 87e621e3a7 flatpak: Bump openexr from v2.3.0 to v2.5.7
This required subtle changes to the manifest because the upstream
project no longer publishes separate tarballs with different parts
of the project.
2021-10-15 17:26:52 +00:00
Daniel Novomesky 9f8de1738a flatpak: use libjxl 0.6 released version 2021-10-15 16:53:14 +02:00
Ondřej Míchal e6475e9121 flatpak: Manifest minor fixes
flatpak-external-data-checker applied along updates to dependencies some
style fixes. This contains most of them.
2021-10-12 23:00:03 +00:00
Ondřej Míchal e7ca891ceb flatpak: Update dependencies
- exiv2
  > 0.27.3 -> 0.27.4
  > Allowed to drop applied patches
- gexiv2
  > 0.12 -> 0.14
  > Required adding new build options disabling vapi and python3
- poppler-data
  > 0.4.10 -> 0.4.11
- ghostscript
  > 9.54.0 -> 9.55.0
- OpenBLAS
  > 0.3.17 -> 0.3.18
- x265
  > 3.4 -> 3.5
- libheif
  > 1.9.1 -> 1.12.0
- cairo
  > 1.16.0 -> 1.17.4
- graphviz
  > 2.44.1 -> 2.49.1

Drop exif2 patches

flatpak: Disable vapi, python3 with introspection in gexiv2
2021-10-12 23:00:03 +00:00
Ondřej Míchal 47be60dbe0 flatpak: Add x-checker-data to sources
The x-checker-data field in a flatpak manifest can be used together with
flatpak-external-data-checker[0] to help maintain the dependency list.

The utility has several backends including a generic solution for
scraping and parsing of websites. Instead of using that this uses
anitya[1] as a backend. Anitya is Fedora-hosted service tracking
releases of various projects, taking away the need to match the various
version patterns across projects in the manifest.

The change required some changes to links to existing sources due to
some reasons: availability upstream, change in upstream (url, forge, tar
compression). Affected modules are:

- graphviz
  > from: https://www2.graphviz.org/Packages/stable/portable_source/graphviz-2.44.1.tar.gz
  > to  : https://gitlab.com/graphviz/graphviz/-/archive/2.44.1/graphviz-2.44.1.tar.gz

- cairo
  > from: https://www.cairographics.org/releases/cairo-1.16.0.tar.xz
  > to  : https://gitlab.freedesktop.org/cairo/cairo/-/archive/1.16.0/cairo-1.16.0.tar.gz

- libx265
  > from: 3.4 git tag
  > to  : https://bitbucket.org/multicoreware/x265_git/downloads/x265_3.4.tar.gz

-openexr
  > from: https://github.com/openexr/openexr/releases/download/v2.3.0/openexr-2.3.0.tar.gz
  > to  : https://github.com/AcademySoftwareFoundation/openexr/releases/download/v2.3.0/openexr-2.3.0.tar.gz

- lcms2
  > from: 967e8ac9a17441efda57dc12d0bf84ed9188460c52eb8542d399ce9ab43bd4191988ed22b254ef34c6c1877bbb935952ed/lcms2-2.12.tar.gz
  > to  : https://github.com/mm2/Little-CMS/releases/download/lcms2.12/lcms2-2.12.tar.gz

Some sources do not have the x-checker-data set because they are usually
not developed anymore (last release over 10 years ago) or the next
version includes a major version bumb which is not a good candidate for
automation or the currently selected version is a git tag, which was not
clear to me.

[0] https://github.com/flathub/flatpak-external-data-checker
[1] https://release-monitoring.org/
2021-10-12 23:00:03 +00:00
Jehan 52928e04a5 Issue #7327: Cannot build GIMP3 on MSYS2 using Meson.
This is untested on my side, because the bug only happens on native
builds with meson (our CI has cross-builds with meson and native builds
with autotools and I only do cross-builds locally) but I think/hope it
will work.

Basically we were using .full_path() because these rc files were also
used as input of some configure_file() calls which doesn't like custom
target objects as input (it wants strings or file objects). Yet a bug
in meson didn't like the colon used in native Windows full paths ('C:'
and such) when used in windows.compile_resources(). This has been fixed
by Luca Bacci in: https://github.com/mesonbuild/meson/pull/9368
Yet we just cannot depend on very early meson (or worse dev meson code).

On the other hand, if the input is a custom_tgt object, it uses the
object ID which we give as first parameter of custom_target() so we know
it's appropriately named without colons (such as 'gimp_plugins_rc').
Thus we should not bump into this issue again.

For the few usage in configure_file(), I just add a .full_path() only
when needed at call time.

Last but not least, I replace the bogus `meson --version` call by a
`python3 -c 'exit()'` as advised by Eli Schwartz:
2afa019c70 (note_1284951)

The reason is that it is apparently possible (or will be when some
reimplementation of meson will be done) that the `meson` executable
itself does not exist. On the other hand, `python3` should always be
there, as a mandatory dependency of the build tool.

In order to use an appropriate `python3`, I made the
pythonmod.find_installation() check required in our build (which should
not be a problem since it's a meson requirement as well), even when the
-Dpython option is false (this one depends on other requirements too
anyway, such as version and pygobject). This way I can call this meson
variable of discovered python in my bogus call, instead of calling a
(potentially different) python from PATH environment.
2021-10-12 17:06:18 +02:00
Jehan 3aa9c0b161 build: do not use os.EX_* exit code for cross-compatibility.
All the os.EX_* constants are Unix-only (and possibly not even not on
all Unix/Linux-like platforms, according to docs) so we should not use
them, especially for a script which we may use on Windows (we also run
it when cross-compiling from Linux, but natively on Windows as well).

Fixes this exception (which would only happen when there is another
critical issue anyway, so it's not making a bigger problem; yet it's
better to cleanly exit with an error code rather than by an exception):

>   File "C:\_r\_builds\k3_3muaB\0\GNOME\gimp\build\windows\gitlab-ci\dll_link.py", line 124, in copy_dlls
    sys.exit(os.EX_DATAERR)
> AttributeError: module 'os' has no attribute 'EX_DATAERR'
2021-10-10 13:56:09 +02:00
Jehan fa710178f6 build: use several source prefixes for all dll_link usage.
See commit 31e52f0756.
2021-10-10 13:19:30 +02:00
Jehan 31e52f0756 build: allow giving several source prefixes to dll_link.py.
Also use it to fix packaging of GIMP for the Windows installer (native
CI job). The CI was indeed failing to package libbrotlienc.dll,
dependency of libjxl.dll, for the simple reason that they were on
different prefixes. By calling dll_link.py on one prefix, then the
other, we were failing to grab the deeper dependency. Now with this new
ability to set several sources, the script is able to search everywhere
(with first prefix given on the CLI call as priority).
2021-10-05 02:53:38 +02:00
Jehan 6107ae17c9 build: build libjxl to sync nightly and beta flatpak manifest.
See commit e9f790e1ff8d50f63933ec0b0fbb9325447324d4 on Flathub's beta
flatpak repository.
2021-10-01 23:09:50 +02:00
Jehan 4055ac95e6 build: add more help text to the windows-installer-langs test.
I always have to search again the InnoSetup repository for the language
file. Add the link in the failed test output so that we don't waste time
searching the next time.

Also when the new lang is "Unofficial", the installer script has to be
updated as well, because these lang files must be downloaded. Add a help
text saying this as well.
2021-10-01 21:51:22 +02:00
Jehan 3ace66ecbb build: add Portuguese translation to installer.
Translation files were added in commit cec3c3a159 but not to the
installer and build files, which is why "gimp-distcheck-debian" job was
failing in the CI.
2021-10-01 21:18:43 +02:00
Jehan 9cd9c34251 build: improve gimp:build / windows-installer-langs unit test.
Also sort the po files to make sure all lists are ordered the same way.
2021-10-01 21:17:24 +02:00
Jehan 2da70b3fb7 build: CC="cache gcc" breaks gobject-introspection for native win build.
After some recent patch added to Python on MSYS2, in the same time as
they bumped from Python 3.9.6 to 3.9.7, our native Windows build started
breaking.

This patch modified `cygwinccompiler.py` to use CC environment variable
as being necessarily a single executable whereas if it were made of 2
commands (such as "ccache gcc"), the call was failing because the code
now tries to find a single command with this name (as though the space
belongs to the file name).

Therefore the line:
>   File "C:/msys64/mingw64/lib/python3.9/distutils/cygwinccompiler.py", line 451, in is_cygwincc
>     out_string = check_output([cc, '-dumpmachine'])

Resulted in the error:
> FileNotFoundError: [WinError 2] The system cannot find the file specified

For now, let's just not set ccache this way, even though this method is
normally meant to work and is one of the 2 officially proposed methods
(the other being to use symlinks named as compilers in priority in
PATH).
Also I'm not even sure ccache is useful at all right now (is cache
finally stored/reused between CI runs? I remember we tried to make it
happen, but I can't remember if we really had this properly in the end).

See: https://github.com/msys2/MINGW-packages/issues/9677
2021-10-01 02:09:16 +02:00
Niels De Graef 7ee72ee9f7 flatpak: Use fallback-x11
From Flatpak's NEWS:

> A new fallback-x11 permission grants X11 access, but only if the user
> is running in a X11 session. For applications that support both
> Wayland and X11, this can be used to ensure that the app doesn't have
> unnecessary X11 access while in Wayland, but still works in an X11
> session.
2021-09-30 16:10:09 +02:00
Stanislav Grinkov 2afa019c70
build, meson: Fix rc files build order dependency...
by adding special filler custom_target() build rules.

Basically, these build rules do nothing (a mere meson --version call),
but they ensure that `git-version.h` is built first, before the dependant
rc files are used in respective resource compiler build targets.

This still a nasty trick (not a proper solution), but it do the job.

See #6257 for additional information.
2021-09-30 01:08:33 +06:00
Daniel Novomesky e43743e0eb Build libjxl in Win64 native MSYS2 CI 2021-09-29 18:43:08 +02:00
Daniel Novomesky 0236308d69 Build libjxl in crossroad Win64 CI 2021-09-29 09:43:39 +02:00
Jehan 1b2ed2efd2 build: sync our nightly flatpak with last changes.
This is based from changes in wip/release/2-99-8 branch or the Flathub
flatpak (so not necessarily released yet):

- libheif bumped to 1.12.0
- Cairo with new patch to fix #235.
2021-09-27 12:43:36 +02:00
Michael Schumacher 37d76c8876 build: mention incomplete and outdated state of build/gimpbuilder-base/Dockerfile 2021-09-12 00:58:02 +02:00
Jehan ad83fd04ba build: improve Windows installer language test.
For the installer, we must also manually pull all used official
language, so I am adding a test checking that the list of pulled file
matches the list from the installer script.
2021-09-08 10:20:25 +02:00
Jehan e73f82dbfd build: fix installer.
We must also pull the Lithuanian base file for Inno Setup.
2021-09-08 09:57:24 +02:00
Jehan 2bc1dd1f9c build: fix flatpak manifest.
The option -Dcheck-update has been changed to a combo.
See commit f0be2256d0.
2021-09-05 17:06:05 +02:00
Jehan 3e1143595e build: fix typo s/en_GN/en_GB/ 2021-09-04 01:18:07 +02:00
Jehan 3b3f5c8562 build: add new Lithuanian translation to the Windows installer.
This new unit test (test-installer-langs.sh) is great, showing us
inconsistencies between files!
2021-09-04 00:54:42 +02:00
Jehan 855d5ce067 build: fix Windows installer build.
Since we don't build anymore a custom GLib and glib-networking, this
part also had to be reverted back.
2021-08-23 20:37:48 +02:00
Jehan d0bef53ecd build: patch to configure libwmf with no freetype-config.
libwmf was still relying on a script called freetype-config instead of
using standard pkg-config. It seems it got wiped out in recent freetype2
(or at the very least, this script is not present anymore in freetype2
version 24.0.18 from master runtime of GNOME SDK).
This patch uses pkg-config in libwmf configuration instead.

As I also had some autoheader "missing template" warnings (which were
failing the recreation of config scripts), I add placeholder
descriptions to AC_DEFINE() macros, as this is apparently now mandatory.
2021-08-22 17:36:25 +02:00
Jehan 63122482db build: do not build GLib for Windows anymore.
We were building it to add the patch glib!2020, but it has now been
backported in MSYS2 package:
https://github.com/msys2/MINGW-packages/issues/9154
This was about the most infamous bug #913 for very slow file dialogs on
Windows when some drives are disconnected, or with slow/non-accessible
network drives or even fake floppy drives created in the Bios.

Similarly we also wanted glib!2205 and glib!2210 for bug #6780 about
GIMP crashing unexpectedly when images are opened in other (apparently
unrelated applications). I had not updated our build scripts yet, but
anyway, it got backport to the MSYS2 package first, then even to GLib
2.68.4 which has been recently released (and bumped in MSYS2 as well).
See: https://github.com/msys2/MINGW-packages/issues/9283

So let's rely again on MSYS2 package!
2021-08-22 17:10:01 +02:00
Jehan 34748af7a7 gitlab-ci, build: compute the checksums of installer in bash script.
I completely forgot that since the installer is built on a Windows
runner, I cannot expect a standard Linux shell syntax.
As a consequence, commit de9a171a19 broke the "win-installer-nightly"
job with the following error:

> The token '&&' is not a valid statement separator in this version.

Rather than trying to find the equivalent command to run on powershell
or whatever, let's just compute the checksum at the end of our installer
creation script.
2021-08-01 17:11:58 +02:00
Jehan 9e95d44895 build: forgot a patch for a dependency of the flatpak build. 2021-07-22 17:54:48 +02:00
Jehan 58fd168f8e build: update OpenEXR in our nightly flatpak manifest.
Synced from the beta flatpak. The previous manifest rules were building
fine on Flathub build servers, but not on GNOME CI ones. It resulted in
a bunch of "ISO C++17" errors when building ilmbase.

Maybe just restricting to C++14 through build fine would have been fine,
but anyway let's also update the dependencies in the same time as we
were outdated.
2021-07-22 16:37:15 +02:00
Jehan 3e2207e1e0 build: update the master flatpak.
As per state in the wip/release/2-99-8 branch of the beta flatpak.
In particular, we update some dependencies (poppler, ghostscript and
SuiteSparse).

It should also fix the master flatpak build which seemed to fail on
downloading SuiteSparse sources. Since their upstream moved their
tarballs to be downloaded from Github, it should take care of this issue
by side effect.
2021-07-22 13:00:54 +02:00
Jehan 681d8e7454 build: MSYS2 python package is now Python 3.9.
The MSYS2 package got recently bumped from 3.8 to 3.9.6.

At first I wanted to update our packaging and installer scripts to be
more generic using glob patterns (so that they should work now and
should continue to work even if bumping to a higher minor version in the
future). Unfortunately this would work for `package-gimp-msys2.sh` but
in `files.isi`, it would only work for `libpython3.*.dll`, not for the
python3.9/ folder. InnoSetup apparently doesn't support using a folder
as source (or maybe just a folder with glob like `python3.*`) as it
resulted in a "No files found matching" error.

So leave everything with the accurate version (because anyway it's much
better to get an early failure than only at the very last step).
2021-07-17 15:25:22 +02:00
Jehan bd71814e8b build: bump GTK to 3.24.30.
Same as MSYS2, add a patch to fix keyboard input when using IMEs (which
should hopefully fix #1603). Note that this patch should be in the next
release.

Also remove the Windows Pointer Input Stack support as it is in 3.24.30.

Finally apply the patch from gtk!3661 for testing (instead of the patch
from gtk!3275), as it is supposed to fix #5475. This is the reason why
we still build our own GTK3.
2021-07-17 15:25:22 +02:00
Jehan 74f67c180e build: compile GTK with new Windows Pointer Input Stack support.
We don't know when the next GTK3 release will be and this is cool enough
that we want to test it soonish, even more with MR !458 coming soon with
a Preferences option.
2021-07-07 13:12:42 +02:00
Jehan ad86717b9b build: custom GTK3 compilation for the Windows installer. 2021-07-07 13:12:34 +02:00
Jehan 179334b618 build: do not copy a binary dependency when it already exists.
The dll_link script would overwrite the same dependencies over and over,
for instance when needed for several binaries, but worse when available
in several source directories. In our case, we look up 2 source
directories: our install prefix first, then the prefix for MSYS2
pre-built packages. So it turns out we would be overriding any
custom-built package also installed through MSYS2 (such as our patched
GLib, see my previous commits).

As a side effect, it should also make the packaging step faster as we
don't re-copy unecessarily the same DLLs over and over again. The first
one to go in stays in.
2021-06-29 12:50:45 +02:00
Jehan dc3cc6fb26 build: move glib-networking modules into our custom glib prefix.
Since gio searches its modules based on the paths as advertized by the
pkg-config, let's just move the pre-compiled modules (by MSYS2
packages). We build the same version of glib2 with the same options, and
only one additional patch. So this should not be a problem to use the
pre-built modules rather than rebuilding glib-networking too.
2021-06-28 14:48:16 +02:00
Jehan 74d3ad700a build: custom build of GLib with additional patch.
The MSYS2 package for glib2 does not include the patch to reduce delays
of disconnected volumes (glib!2020).
Let's make our own build in our CI for our installer (hence also
experimenting overriding MSYS2 packages when necessary).

Except for this patch, this is the same build as MSYS2 and same option,
as described in:
https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-glib2
2021-06-28 14:48:16 +02:00
Jehan 63f75471f5 build: some cleanup in build scripts for Windows.
We had some weird conflicting files errors in the CI. I think our weird
file removal is not needed anymore. So get rid of the ugly cleanup hack.
2021-06-28 14:47:57 +02:00
Jehan 0e4263d800 build, gitlab-ci: generated files should be in the build dir.
Also update the CI script to copy the generated language files before
creating the installer so that the gimp3264.iss script finds them.
2021-06-18 20:40:04 +02:00
Jehan 602add8c45 build: improve the script to test for Windows installer languages.
We were only comparing the po list with the language list in the
gimp3264.iss. Nevertheless since we also generate the <code>.setup.isl
files, we should also verify generated files corresponds exactly to the
same list of languages.
This commit does it for meson and autotools build.

This is also how I fixed the meson list (cf. previous commit).
2021-06-18 20:27:33 +02:00
Jehan a6c44a7191 build: complete Windows installer lang list in meson and fix iconv…
… conversion when some characters are not convertible.

Currently failed conversion ended up in incomplete .isl files (autotools
build) or would break the build (meson build). Ideally we should use a
target encoding which contains all source characters, but we use the
encoding as set upstream in the LanguageCodePage for the given language
file.
I'm not sure if maybe we can mix the encoding by adding our own
LanguageCodePage at the top of our generated <code>.setup.isl, then we
could just use UTF-8 for any language. It will have to be tested.

For now let's just discard non-convertible characters, assuming there
shouldn't be too many of these. It's the lesser evil in this situation.
2021-06-18 20:22:04 +02:00
Jehan 039be5d00e build: sync with development flatpak.
- dri access needed (cf. commit de8be943 on our Flathub repo).
- GNOME runtime still only provides lcms 2.10 (even in its master build)
  and we need version 2.12 to avoid some crashes (cf. commit ae60863e
  from our flathub repo).

Trying to keep the differences to a minimum. There are still some, like
the extension point is absent from the nightly manifest, but I'm not
sure if it makes sense to have it there.
Also top "cleanup" list is different but we should probably take a
closer look at this. Maybe it's outdated on both sides anyway.
2021-05-27 13:56:22 +02:00
Jehan 2503453628 Revert "flatpak: Use exact version of GEGL (0.4.30)"
This reverts commit 61389adfa0.

I was initially hoping to debug why the GEGL `master` HEAD was
presumably failing to build (according to the reverted commit) but it
actually doesn't (as tested in a feature branch's CI) even though I
don't see any recent change looking like a build fix. So let's just do a
simple reverse. :-)
2021-05-27 02:00:34 +02:00
Ondřej Míchal 61389adfa0 flatpak: Use exact version of GEGL (0.4.30)
Latest git version fails to build.
2021-05-25 11:18:57 +00:00
Ondřej Míchal 1228d898b8 flatpak: Add maxflow dependency and build with workshop
8a771fc6b9
2021-05-25 11:18:57 +00:00
Ondřej Míchal 94ed45db04 flatpak: Add patch to Cairo preventing subpixel font rendering system settings to apply to text layers
See fd391fd109
See 7a0ba49592
2021-05-25 11:18:57 +00:00
Ondřej Míchal d468722828 flatpak: Build graphviz as GEGL submodule
See 633de34a11
See dd06088c26
2021-05-25 11:18:57 +00:00
Ondřej Míchal 68cf9d8581 flatpak: Remove -Dlibdir=lib configure option
Added because of issues in Msson 0.54.0. Should be fixed since version
0.54.3.

See fbcf2afc63
2021-05-25 11:18:57 +00:00
Ondřej Míchal 551cc6a0ba flatpak: Remove meson build
GNOME SDK contains Meson since version 3.38.

See e8ea702691
2021-05-25 11:18:57 +00:00
Ondřej Míchal 95754f0d6b flatpak: Add gvfsd permission for gvfs
See https://github.com/flathub/org.gimp.GIMP/pull/104
See https://github.com/flathub/flathub/issues/2180
2021-05-25 11:18:57 +00:00
Ondřej Míchal 2842a8e691 flatpak: Bump versions of some modules
- Poppler 20.10.0 to 21.04.0
- poppler-data from 0.4.9 to 0.4.10
- OpenBLAS from 0.3.9 to 0.3.15
- libde265 from 1.0.7 to 1.0.8
- gexiv 0.12.1 to 0.12.2
2021-05-25 11:18:57 +00:00
Christopher Davis 8e448254d5 flatpak: Fix build
Add patches and dependencies needed to build the development
version of GIMP. Also switches the in-tree manifest to using
the nightly branch of the GNOME SDK and meson
as the buildsystem.
2021-05-25 11:18:57 +00:00
Jehan 8c54a0caa9 build: fix installer creation.
My commit 3fbe59cd3c broke the installer making as I forgot to remove
some rules about lua files. Proof that I should always test first!
2021-05-23 00:53:07 +02:00
Jehan 3fbe59cd3c build: do not add the same files twice for lua in the installer.
Since we moved most of them to bin/, share/lua*/ and lib/lua/ files are
not necessary anymore (according to my tests so far at least). Let's not
include them.

Also exclude the lua DLL from the generic libraries. It is only for when
the lua option is set.
2021-05-22 16:23:44 +02:00
Jehan f75cad56e0 build: disable javascript plug-ins.
No need to have GIMP trying to run the Javascript goat-exercise at
startup. All it does is make annoying error message on console output.
We know it won't run because no interpreter is available. No need for
trying.
2021-05-22 15:50:56 +02:00
Jehan 2d15aa00cc build: move lua import files into bin/.
It looks like the DLL ends up searched into bin/lgi/ and other lua files
from bin/lua/. There might be better solutions for the issue, but for
the time being, it seems to work ok.

Note that ender used instead to rebuild lua with the following changes
(cf. IRC):

> src/luaconf.h:
> #define LUA_PATH_DEFAULT \
>   "!\\..\\share\\lua\\5.1\\?.lua;" "!\\..\\share\\lua\\5.1\\?\\init.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;"
> #define LUA_CPATH_DEFAULT \
>   LUA_CDIR"..\\lib\\lua\\5.1\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"

But moving files around in the installed tree is much simpler than
rebuilding the whole lua just for this.
2021-05-22 10:35:06 +02:00
Jehan 49349c78cc build: add lua support to the Windows installer.
Note that I must not install both lua51 with luajit because these are
conflicting. Let's go with luajit from feedback we had on the best
choice (though this topic itself seems a bit heated actually).

Also clean-out the unexpected file removal because now I had the
opposite case, i.e. a CI problem because of this. And from my latest
tests, it seems to work ok for the time being without, which is much
cleaner anyway. So let's go like this for the time being.
2021-05-22 10:35:06 +02:00
Jehan 18785bf9f1 build: clean out obsolete Windows-specific patches.
- libwmf patch for issue #4061 is applied upstream (libwmf). Even though
  no new libwmf release happened, the MSYS2 package applied the patch to
  libwmf 0.2.12. So it's in our installer. Thanks to lillolollo for
  staying on top of things, as usual.
  Cf. https://github.com/msys2/MINGW-packages/pull/6977
- glib permission issue (#4594 about GIMP preventing the third-party
  software Spotify from starting) is included since glib 2.67.6/2.68.0.
  Since MSYS2 uses glib 2.68.2, it's all good.
- patch for deprecated GTK+2.24 was kept in `master` repo mostly as a
  reminder of having to deal with issue #1082 (former bug 780979) about
  transparent windows from other software interfering with GIMP. This
  was fixed as gtk!2767 which is available since GTK 3.24.27. MSYS2 uses
  GTK 3.24.29 to this day.
  Note that this patch is still relevant in the GIMP 2.10 series (hence
  in gimp-2-10 branch), not in the current GIMP 2.99 series.
2021-05-20 20:26:41 +02:00
Jehan b815bca8d3 gitlab-ci, build: --enable-windows-installer also on Linux.
By enabling this option on Linux, not only will the installer language
file be generated, but the `make check` will also now validate that the
lang list is consistent with existing gettext files (see commit
8a42c6ccc2). So it's useful information to know this for instance as
soon as some translators add a new localization.

Also oppositely remove the option on the MSYS2 native Windows 32-bit
build. For Windows, we only need this option once, as we use the
language files generated by the 64-bit build.
2021-05-20 02:55:54 +02:00
Jehan 7d9e6e311e build: fix Python support in Windows installer.
Add GObject Introspection libs, python libs and various binaries. Not
sure why we need 3 python binaries. This would need to be investigated
and possibly cleaned up a bit. Similarly maybe it would be better to be
a bit more selective about what we take from lib/python3.8/ folder
(looking what's in there, I wondered if some of the stuff were not
pulled by some dependencies and/or should maybe be filtered out).

But for now, let's make the InnoSetup scripts happy.

In any case, the resulting installer was tested and now Python plug-ins
work successfully. Wouhou!
2021-05-19 22:01:31 +02:00
Jehan 9c62dfd4d4 build: extensions are gimp32/64 specific.
Otherwise the extension files from the 32-bit build override the ones
from the 64-build. This is wrong first because we get 32-bit executables
uselessly (even though Windows 64-bit can run them, we should install
the right ones) and also because we don't build Vala plug-ins on 32-bit
(doesn't work for some reason) and as we override the extension
manifest, the Vala goat exercise is not made available even though it's
installed.
2021-05-19 22:01:21 +02:00
Jehan f647517912 build: job win-installer-nightly should return failure appropriately. 2021-05-19 22:00:53 +02:00
Jehan 8a42c6ccc2 build: add a test to check the Windows installer languages.
This way, we will avoid in the future any discrepancies between
languages set in the Windows installer and available translations (po
files in po-windows-installer/) because `make check`/`ninja test` will
fail.
2021-05-19 21:59:18 +02:00
Jehan 9d065b8718 build: create installer with debug symbols and Python support. 2021-05-19 21:59:09 +02:00
Jehan c5b05b6e03 build: separate debug symbols from binaries in the Windows installer.
The shell script was given to me by ender. This is an additional step he
runs after building.
2021-05-19 21:59:00 +02:00
Jehan f98ccf5b32 build: Windows installer version deduced from configure.ac.
I left the version I was using while testing, but this is obviously
wrong as we would always forget to update it (actually even now it was
wrong as it was producing an installer versionned 2.99.6 whereas it
should have been 2.99.7!). Instead let's grep the major/minor/micro from
the build system.
2021-05-17 16:03:24 +02:00
Jehan 62ae32123a build: add aalib dependency for ASCII Art support.
- Adding a patch sent to me by Sylvie Alexandre meant to help aalib
  build on MSYS2 for Windows 32 and 64-bit.
- Additionally, add an additional patch from myself because it was still
  not building properly.
- Also update the config.guess|sub files because the original ones (from
  2001!) were just too old and not properly recognizing the host mingw
  system (especially the 64-bit one apparently) in the MSYS2 CI jobs of
  GIMP.
- Finally regenerate the whole aclocal/libtoolize/autoconf/automake
  build system because these old files just don't play nice with recent
  autotools though the source files still regenerate fine (despite with
  some warnings, but nothing blocking).
- Add crt-git dependency because libws2_32 is in there.
2021-05-17 13:15:31 +02:00
Jehan cf6482f716 build: more optional feature to Windows installer.
headers-git package needed for DirectInput.
2021-05-17 13:15:30 +02:00
Jehan 1d03258797 gitlab-ci, build: construct the Windows installer from CI.
Run InnoSetup in the Windows CI to build the installer from both the 32
and 64-bit builds.

Current limitations:
- No installer signature yet.
- Dependencies will have to be checked more thoroughly.
- Apart from babl and GEGL, we may want to make custom builds of any
  package which has a patch in build/windows/patches/ (Windows-specific
  patches) and build/patches/ (all platform patches).
- Plug-in interpreters (Python, Lua…) don't work. This will need to be
  looked at in detail.

Globally this first automated installer build works fine though, as I
could install it in a Windows 10 VM and GIMP ran fine! So it's a first
step towards fully automated releases for Windows.
2021-05-14 19:27:30 +02:00
Jehan 9057de6c33 build: remove some data relevant to GTK+2 from installer. 2021-05-14 19:25:48 +02:00
Jehan 2415d06c66 build: no signed installer for the CI yet. 2021-05-14 19:25:48 +02:00
Jehan 681c37d830 build: "debug" component only known when DEBUG_SYMBOLS is defined. 2021-05-14 19:25:48 +02:00
Jehan 8cd05ceba7 build: unset LZMADictionarySize high value.
With compression level "ultra64" for LZMA, default value is 65536, which
is far enough (the installer file was only 100kib bigger, it doesn't
make that big of a difference in the end).
With the original value, the CI build would fail with "Out of memory"
error.

See also: https://jrsoftware.org/ishelp/index.php?topic=setup_lzmadictionarysize
2021-05-14 19:25:48 +02:00
Jehan 529eb56477 build: also looking for HKEY_CURRENT_USER Inno Setup registry key.
This will allow to use an user-installer Inno Setup, which is nicer,
especially to install it inside the CI without bothering about admin
rights.
2021-05-14 19:25:48 +02:00
Jehan 3d50cb339c build: patterns to bypass ghostscript version detection.
Do not try to follow up on the installed ghostscript (otherwise we'll
always have to fix as MSYS2 packages get updated). Instead, just install
whatever is in the /share/ghostscript/ path (assuming there is data for
a single version, which should be the case, especially on a resetted CI
build) and excluding the /doc/ folder.
2021-05-14 19:25:48 +02:00
Jehan 9f2b32de6c build: package a bit more.
These files I'm adding are currently being requested by the installer
script, even though I'm not sure at all how much needed they are,
especially for some of them (because I could successfully create an
installer by just commenting these out in the installer script).
2021-05-14 19:25:48 +02:00
Jehan fb16acf9d3 build: enable Windows installer translation files in CI build job. 2021-05-10 19:08:41 +02:00
Jehan eb3c42fda5 Add a distribution job with Win 32-bit! 2021-05-10 19:08:41 +02:00
Jehan a04eff326f gitlab-ci: add native Windows 32-bit build with MSYS2.
Note: Vala API doesn't build well on the 32-bit build. Not sure why (the
meson logs for GObject Introspection build are just as empty as ever),
but it won't generate the VAPI. So I disabled the option on 32-bit.
2021-05-10 19:07:31 +02:00
Jehan 1284bbf679 build: update the generated Windows installer languages.
Based on available files in po-windows-installer/, here is the exact
corresponding list. Many <code>.setup.isl were not generated, even
though translations existed, and oppositely there was one (hr) which has
no translation file.
2021-05-10 18:11:49 +02:00
Jernej Simončič a97fbc561e Installer: forgot Components for girepository
(cherry picked from commit e215ec3a27)
2021-05-10 17:01:17 +02:00
Jernej Simončič 7cf6605da5 Installer: some cleanup, make Lua optional, add devel splashes
(cherry picked from commit 27c98c3478)
2021-05-10 17:01:17 +02:00
Jernej Simončič a42c441c13 Installer: preparing for GIMP 2.99
(cherry picked from commit 00dbfc7375)
2021-05-10 17:01:16 +02:00
Jernej Simončič 7cc383c5f7 Installer: add Croatian and Marathi language
(cherry picked from commit 3041a51f5b)
2021-05-10 17:01:16 +02:00
Jernej Simončič ff4dd2ce25 Installer: rearrange install order of files, should make installing slightly faster
(cherry picked from commit a8fb741246)
2021-05-10 17:01:15 +02:00
Jernej Simončič 2bb5d2807f Installer: file-mng builds on 32-bit Windows, stop special-casing it
(cherry picked from commit 888efb220a)
2021-05-10 17:01:14 +02:00
Jernej Simončič 5315e9fbdc Installer: properly remove old icons on 32-bit installs and per-user installs
(cherry picked from commit c860d62a63)
2021-05-10 17:00:41 +02:00
Jernej Simončič 1bb71e8193 Installer: skip .debug files when they don't exist
(cherry picked from commit 989336be64)
2021-05-10 17:00:40 +02:00
Jernej Simončič 62c1c5c045 Installer: unofficial languages, ghostscript 9.50
(cherry picked from commit 71b83a3b69)
2021-05-10 17:00:39 +02:00
Jernej Simončič b7ab224f92 Installer: handle associations better
(cherry picked from commit d32b049577)
2021-05-10 17:00:39 +02:00
Jernej Simončič d94d375340 Installer: fix for issue 3226
(cherry picked from commit c7c7a7d6a9)
2021-05-10 17:00:38 +02:00
Jernej Simončič 4d3b901589 Installer: forgot about .xcf extension
(cherry picked from commit c71a146220)
2021-05-10 17:00:37 +02:00
Jernej Simončič 90c2e81212 Installer: minor fixes
(cherry picked from commit e8ac2ed19b)
2021-05-10 17:00:37 +02:00
Jernej Simončič d7799efd0d Installer: ported install script to Inno Setup 6, add per-user install support
Rewrote file association handling to work both for all users and per-user

(cherry picked from commit fa1d71f714)
2021-05-10 17:00:36 +02:00
Jernej Simončič c9b9e37c57 Installer: install 64-bit Python on 64-bit Windows
(cherry picked from commit ad7434bb48)
2021-05-10 17:00:35 +02:00
Jernej Simončič 4ccf42dc0a Installer: changes for 2.10.12
(cherry picked from commit cd8192ad5b)
2021-05-10 17:00:34 +02:00
Jernej Simončič 67f7187c25 Installer: handle missing install directory of GIMP <2.8 better when there's still uninstall info in Registry
(cherry picked from commit 778faaddc8)
2021-05-10 17:00:34 +02:00
Jernej Simončič b8021c0826 Installer: remove dead code
(cherry picked from commit b6f11ee635)
2021-05-10 17:00:33 +02:00
Jernej Simončič d476b47dcd Installer: remove LIBTHAI_DICTDIR environment variable (no longer needed, see https://gitlab.gnome.org/GNOME/gimp/issues/2496#note_365235 )
(cherry picked from commit 4991603b2a)
2021-05-10 17:00:32 +02:00
Jernej Simončič 0ed37058de Installer: remove lib\gegl-0.2
(cherry picked from commit 47103dc28f)
2021-05-10 17:00:32 +02:00