Commit Graph

370 Commits

Author SHA1 Message Date
Jehan 7ed68556c7 Issue #5863: No namespace info available for XMP prefix.
Adding 2 temporary patches for our builds:

- gexiv2-mr20.patch: to be applied over GExiv2 0.12.1. This patch is
  already contributed upstream so it won't be necessary once GExiv2
  0.12.2 is released.
- 0001-Issue-5863-do-not-raise-WARNINGs-on-Exiv2-unsupporte.patch: to be
  applied over GIMP master branch itself. It depends on GExiv2 0.12.2 so
  I cannot push it to master until we bump GExiv2 minimum requirement
  (which can only happen when v0.12.2 is out then available in Debian
  testing, as per our dependency rules).

For the time being, while waiting for upstream releases, all we can do
is wait and apply these patches on our own dev builds (because this bug
is annoying and was reported to us quite a few times already).
2020-12-14 21:03:43 +01:00
Jehan 7df9bf1396 gitlab-ci: graphviz (for the `dot` tool) is now a dependency for GEGL. 2020-12-05 20:58:15 +01:00
luz paz bb322d94d7 Fix typos
Found via:
```
codespell -q 3 -S ./ChangeLog*,*.po,./.git,./NEWS* -L als,ang,ba,chello,daa,doubleclick,foto,hist,iff,inport,klass,mut,nd,ower,paeth,params,pard,pevent,sinc,thru,tim,uint
```
2020-11-19 21:56:25 +01:00
Jehan efd2af9994 build: update nightly flatpak manifest. 2020-11-06 23:45:06 +01:00
Jehan 3f3c5b242e build: improve a bit the dll_link build script.
Add a --debug mode which will help for testing and improve various
pieces of code.
2020-10-20 18:04:10 +02:00
Jehan 6f4155ee34 gitlab-ci: name the distribution artifacts and small build-deps.sh fix.
This should give a nice name to distribution archives so that they are
not all called `artifacts.zip`. Names will better describe their
contents (target OS or source and short commit hash, because for CI
builds, it's important to know which commit is being tested).

Also replace CI_COMMIT_REF_NAME in other artifact names by
CI_COMMIT_REF_SLUG. Otherwise if a branch has a slash (quite common in
branch names), only the part after the last slash is used for archive
naming.

Finally immediately exits from dependency build with error code (!= 0)
if `crossroad install` command failed.
2020-10-03 22:07:56 +02:00
Jehan 42e25e5b6f gitlab-ci: "needs" jobs have to be in a prior stage. 2020-10-03 13:22:56 +02:00
Jehan 6eab32c71a build: (Windows) glib-compile-schemas and gdk-pixbuf-query-loaders in…
… the CI.
There are 2 finale steps before finale binary distribution on Windows.
We must compile the GSettings XML schema files and register GdkPixbuf
loaders (for file format support in the GUI).

I used to provide a wrapper to be run inside Windows before first GIMP
run. Never did I realize that I can compile the distributed GSettings
schemas with the native `glib-compile-schemas` (works fine in my tests).
As for the GdkPixbuf loaders, we inspect DLL libraries, hence we do
require the target `gdk-pixbuf-query-loaders` which is unfortunately a
Windows executable. Yet it seems to work fine with Wine, so let's be
done with it in the CI instead of requiring manual steps from testers of
the CI builds. Then a few `sed` calls are enough to make the path in the
produced text file relative instead of absolute (which works fine, again
in my tests at least).

This means that I don't have to distribute the 2 binaries and the DLLs
they depend on anymore. Moreover let's remove the wrapper (but still
generate one which just calls GIMP so that we call it from the tree
root, where it's much less messy).

Note: I failed to install wine32 (32-bit Wine) on the Gitlab runner.
After following all instructions, I encountered weird errors. So
instead, I just make the win32-nightly job depend on win64-nightly and
copy `loaders.cache` from one to another, as it is a
platform-independent text file (as long as we provide the same GdkPixbuf
loaders on both of course, which we do).
2020-10-02 13:00:12 +02:00
Jehan cdb61d829e build: dll_link.py improved to handle both i686 and x86-64 Windows…
… executable formats inspection.
2020-10-02 03:18:23 +02:00
Jehan 8f8f7e497a gitlab, build: Win32 distribution jobs for our CI.
The main purpose of these jobs is to only package the strict necessary
for a working GIMP under Windows, i.e. getting rid of all unnecessary
executables, and inspecting binary dependencies recursively to only
package used DLLs.

The dll_link.py script is taken from Siril codebase (see commit a86e82a8
on Siril repository, by FlorianBen). This was a very nice idea, and
makes for much smaller test archive (Siril is also GPLv3 so licensing is
ok for the reuse, also anyway it's just a small independent build
script).
Moreover having it as a separate job allows to have artifacts with only
the finale distribution (artifacts on the build job also have the build
directory and the whole prefix, which we want to keep in order to debug
when needed).

Hopefully I am not missing anything. Siril seems to package more, like
various gdk-pixbuf-*.exe, gspawn-*.exe and gdbus.exe. I am wondering if
these are actually necessary. I could run GIMP fine without these in
quick tests, but I guess I'll have to investigate a bit more to figure
this out. That's what nightly builds are for, after all, so hopefully
people will report if we miss some runtime dependencies.
2020-10-02 03:17:47 +02:00
Jehan cb6a1a75c9 build: (meson) fix building with -Dwindows-installer=true option.
Fixes:
> build/windows/installer/lang/meson.build:49:2: ERROR: Unknown variable "code".
2020-08-22 19:02:14 +02:00
Michael Schumacher cef7ecca27 build: add libwmf patch from libwmf repository to prevent issue #4061 2020-06-13 17:03:39 +02:00
Michael Schumacher 0ce3798a42 build: add libwmf patch from libwmf repository to prevent issue #4016 2020-06-13 15:04:24 +02:00
Ell 0c06c24441 build: add Japanese translation to the Windows installer 2020-06-07 16:38:53 +03:00
Jehan 95fa7bc68c Issue #5109: "gimp-win64" CI artifact is missing gegl:npd support.
Cairo is a dependency for "gegl:npd" required by GIMP, so let's install
it before compiling GEGL.
2020-05-21 11:36:28 +02:00
Niels De Graef 0352559efa meson: Allow running tests headless
This commit makes sure we can properly run the tests in a headless
environment, i.e. they don't mess with the user's X display or their
session bus. The latter is also needed for parallel tests as they fail
to simultaneously own the same name on the session bus.

Replaced the "xvfb-run" meson option with the "headless" option, which
is more intuitive (and also more correct, since we now also require
`dbus-run-session` to run the tests, not only `xvfb-run`).

Finally, note that we need a version of `xvfb-run` that supports the
`-d` (`--auto-display`) option. The problem with `--auto-servernum`
which is also regularly used, is that it doesn't shut down cleanly,
returning a non-zero exit code, wich makes the test fail.

Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/5078
2020-05-14 18:31:08 +02:00
Jehan 25ecef0dc3 build: fix cross-compiled meson builds.
A bug came with meson 0.54.1 (looking at reports, I understand it to be
a mix of a meson bug and a patch by Debian making it a different bug).
See:
- https://github.com/mesonbuild/meson/issues/6115#issuecomment-593312709
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959708

In any case, our Windows cross-builds end up with (with no libdir set on
our own): libdir=${prefix}/lib/x86_64-linux-gnu
This is obviously wrong as confirmed by meson report comments.
2020-05-10 13:21:08 +02:00
luz.paz 36f620012d Fix typos
Found via codespell v1.17.0.dev0  
```
codespell -q 3 -S ./ChangeLog*,*.po,./.git,./NEWS* -L als,ang,ba,chello,daa,doubleclick,foto,hist,iff,inport,klass,mut,nd,ower,paeth,params,pard,pevent,sinc,thru,tim,uint
```
2020-05-04 08:55:48 -04:00
Jehan ffc7db84d1 build: build OpenEXR plug-in.
libopenexr was installed, but pkg-config was failing because of missing
dependency:
```
$ x86_64-w64-mingw32-pkg-config --modversion OpenEXR
Package IlmBase was not found in the pkg-config search path.
Perhaps you should add the directory containing `IlmBase.pc'
to the PKG_CONFIG_PATH environment variable
Package 'IlmBase', required by 'OpenEXR', not found
```

Looks like there may be a dependency bug in the openexr package in
Msys2. Anyway let's just add ilmbase and get this to be detected
correctly.
2020-04-21 14:47:51 +02:00
Jehan 0aca033370 build: removing OpenBlas patches.
Our installer use Msys2 packages when possible. And Msys2 repository
provides version 0.3.9, released on March 2, which contains our patches.
No need for them here anymore, no need to make custom builds.
2020-04-20 23:56:46 +02:00
Jehan e0851680ac build: more dependencies for the Windows builds. 2020-04-18 14:13:32 +02:00
Jehan 8398c83c23 build: use msys2 packages as source for the Windows CI.
This is a new feature I implemented in the crossroad cross-compilation
tool. Msys2 repository has more packages and they are more up-to-date
compared to Fedora and Suse cross-built packages (the 2 other available
sources for pre-built Windows packages).
This allows to simplify a lot the dependency preparation for the Windows
CI, and speed things up.
2020-04-17 01:39:58 +02:00
Jehan b948ff932d build: fix the Windows CI.
Recently added warnings on json-c dependency breaks with Mingw-w64.
Removes warning promotion to errors when compiling json-c.
2020-04-15 16:27:16 +02:00
Jehan afd2b81dbf build: proper libmypaint v1 development branch is now libmypaint-v1.5.x.
Development switched to this branch since v1.5.0 release.
2020-04-13 12:25:35 +02:00
Jehan de6eacd524 build: build json-c with CMake.
json-c has 2 build systems (autotools and CMake) and it seems their
autotools broke with recent changes. I will report upstream. For the
time being, we may as well switch to CMake build.
2020-04-08 21:31:57 +02:00
Jehan 97a0ad3fec build: sync development flatpak manifest with stable one. 2020-04-04 01:10:55 +02:00
Jehan bed95ebca7 Revert "build: fix json-c cross-build for Windows."
This reverts commit 2b2a6b03ed.
My commit has been merged upstream.
2020-03-17 12:39:23 +00:00
Jehan 2b2a6b03ed build: fix json-c cross-build for Windows.
I submitted a patch upstream:
https://github.com/json-c/json-c/pull/556

For the time being, I disable some warnings to at least have a working
CI.
2020-03-15 23:53:39 +01:00
Ell ac289461ae app: add Finnish translation to the Windows installer 2020-02-24 11:09:36 +02:00
Jehan b314437d4d build: additional patch for OpenBlas (fix startup hang).
Previous OpenBlas patch fixed the crash with Sophos (see reports #3633
and #4246) but created a huge slowdown of startup because of a timeout
change and most likely OpenBLAS being loaded at startup during the
various verifications.

A new patch has been merged upstream to lower this timeout to something
more reasonable. Reporters confirmed GIMP now runs fine (neither crashes
nor very long startups).

See: https://github.com/xianyi/OpenBLAS/pull/2339
2019-12-13 17:59:13 +01:00
Jehan d48dcc1252 gitlab-ci: move to Fedora 31 image for the Win32 CI build. 2019-11-24 20:52:22 +01:00
Jehan 370499676f build: add a patch for OpenBlas on Windows.
Actual patch contributor wants confidentiality to avoid leaking
proprietary information or whatever (I am not sure either what to be
scared of as it's all good and harmless to me, but let's respect the
request). See also #4246 for more details.
2019-11-20 17:26:57 +01:00
Jehan 1032632e63 build: update flatpak nightly manifest.
Tested with these changes. It is a working flatpak for our dev code.
2019-11-12 13:08:59 +01:00
Jehan cffb86cc6f build: sync flatpak nightly manifest with stable one.
Not tested recently and I expect it won't build properly, but at least I
synced the changes made lately on the stable manifest.
2019-10-31 16:19:52 +01:00
Jehan 7fdd78c6ea gitlab-ci, build: add a wrapper for GIMP binary to Win32 CI result.
A few commands need to be performed the first time for glib to work
properly, and gdk-pixbuf loaders to be found. I add them in a wrapper
script so that it's easy to ask people to test the dev builds (even
though it's not necessary to run these commands each time, but who
cares!).
2019-10-24 22:14:41 +00:00
Jehan ce761ccc95 build: add DrMingw in the Windows CI build.
If the build results are used for testing, may be useful to have some
debugging, as proposed by Ell.
2019-10-24 17:04:15 +00:00
Jehan 94852a3957 build: (Win32 CI) cairo as dependency of GEGL.
Without Cairo, GEGL does not build gegl:npd operation which is required
in GIMP.
2019-10-24 14:18:06 +00:00
Jehan 3da8b9cc18 build: mask glib and pango from pre-built Win32 package for the CI.
Let's make sure they are not pulled in as dependency of other packages.
This fixes the Win32 CI build now that we fixed the Pango minimum
requirement in meson files.
2019-10-24 14:18:06 +00:00
Jehan 90591dc7ed gitlab-ci: new build organization.
Rather than having the whole Win32 cross-build into the 'gimp' stage,
break the dependencies and GIMP-only builds in 2 stages.

Since apparently we need to keep the same structure for the native and
cross build (otherwise we don't get parallel builds; in other words, I
didn't find the possibility to set separate pipelines up), I move babl
and GEGL into the same 'dependencies' stage.

Finally I remove the -base rules extended into actual jobs, except for
`.gimp-base` (this is the only which makes sense as it is actually
common to the meson and autotools build).
2019-10-03 20:43:20 +00:00
Jehan e17efb7a07 build, gitlab-ci: add a script to cross-build GIMP with Gitlab CI.
It looks like Arch does not have mingw64 cross-compilers in core package
repository. It does have some package in the user repository (AUR), but
I assume that such a repository cannot be deemed as safe.

Anyway I still tried, but apparently these AUR packages have to be built
and when I tried, I got this error:
>  ERROR: Running makepkg as root is not allowed as it can cause
> permanent, catastrophic damage to your system.

Anyway it's all a big mess. Then I tried to move the cross-CI to Debian
testing, which is anyway our base compatibility system. Unfortunately I
encountered like what looked like some glibc++ macro problem on some
packages (most likely because the pre-built packages I use are Fedora
ones which likely uses a cross-compiler differently built from the
Debian one).

So in the end, for simplicity, I use a Fedora image, then I am sure to
get a good match between the system cross-compiler and the pre-built
dependencies.
2019-09-30 23:05:01 +02:00
Félix Piédallu 65eff6f150 Meson port. 2019-09-11 16:42:04 +02:00
Jehan 078d789216 build: add missing patch named in flatpak manifest.
I did not commit on purpose because this is actually to be found in the
official flathub repository for GIMP (the concept being to keep the
stable and nightly manifests as sync-ed as possible) and I thought there
is no need to duplicate data. But since this is apparently confusing
people (cf. !91), let's just push it.

Note that even though this patch is taken from the org.octave.Octave
flatpak package, it is actually slightly different (I tweaked it because
we needed to build even less options from SuiteSpace than they do
apparently).
2019-07-11 18:53:30 +02:00
Jehan 31b90638cb build: sync our nightly flatpak manifest with stable one. 2019-05-26 10:47:36 +02:00
Jehan 11e8ba0f51 build: add Wayland support to nightly flatpak.
This was removed for the stable flatpak as it's GTK+2 which has no
support anyway but should be present for the future GIMP 3 flatpak.
2019-04-28 13:00:41 +09:00
Jehan 01f258faec Issue #3309: Translation of gimp installer for MS Windows.
Several of our own translations of the Windows installer are unused
because Inno Setup corresponding translations are marked "unofficial".
This mostly means that the language files for these are probably old and
unmaintained, hence outdated. And these files are not bundled together
with Inno Setup release (though still hosted in their repo).

Nevertheless it doesn't make sense that we would just waste the work of
our translators here. Maybe Inno Setup localization is not complete, so
what? At best it could even encourage translators to contribute upstream
to Inno Setup. Let's just enable all our current localizations of the
installer and see how it goes!
2019-04-26 01:07:30 +09:00
Jehan 3db167083a build: bump nightly flatpak manifest to GNOME 3.32 runtime.
Following today's update from the stable manifest at flathub.
2019-04-25 21:32:41 +09:00
Jehan 8ee11d8d75 build: update various deps in flatpak manifest.
Sync with the stable manifest at flathub!
2019-04-24 17:43:35 +02:00
Jehan e7b8a57bec build: oups, shared module not included.
Anyway Python deps does not work yet on the master build. That's
unneeded to build nightlies with Python support. Let's drop it for now
and add it back later when we will make it work.
2019-04-04 15:25:27 +02:00
Jehan 58e1a2ae47 build: sync nightly flatpak with recent changes on the stable one.
This includes bumping to the GNOME 3.30 runtime and removing some
dependencies which are now included at the required version in the
updated runtime.
2019-04-04 13:50:49 +02:00
Jehan 48b5f50a58 build: remove unreleased <release> when building flatpak nightly.
This breaks the flatpak tests at the end when we prepared a future
<release> appdata tag. For released version, we must not do this, but
for nightlies, it doesn't matter.
2019-04-04 12:42:37 +02:00