Commit Graph

879 Commits

Author SHA1 Message Date
Bruno 752dd40592
build/windows: Cosmetic changes to crossroad scripts 2024-10-27 19:53:19 -03:00
Bruno c229e43744 build/windows: Complete 76f174f8 (regarding Installer .ps1 simplification) 2024-10-27 22:48:41 +00:00
Bruno 9ab481647c
build/windows: Port building scripts to use Windows native shell
From now, Windows contributors can use the default shell provided by the OS
(which is PS since Windows build 10.0.14971.0), like Linux and macOS users do.
We still use MSYS2 but not the POSIX shell. This change adds these features:

'1_build-deps-msys2.sh' is now '1_build-deps-msys2.ps1'
- Faster clonning by using 'git-scm' (the MSYS2 one had performance problems)
- Easier to use non-MSYS2 binaries, not only 'git-scm' but also official meson,
  deps from vckpg etc. This is a needed step towards the future use of MSVC.

'2_build-gimp-msys2.sh' is now '2_build-gimp-msys2.ps1'
- By default, vanilla builds (normally triggered on PS) will create a bundle,
  dropping the need of 'gimp.cmd' (that adressed .typelib and .interp limits),
  which is inline with other (Cmake-based) projects like Darktable and Inkscape.
  This change is important because even Windows devs more experienced than me
  get confused with the relocatibility stuff, which is the default on Windows.

'2_bundle-gimp-uni_base.sh'
- As a result of the change above, bundling code was changed to be a bit faster.
  It still is, however, painfully slow, since meson doesn't have a 'install()'
  function like Cmake to prepend targets in Ninja's 'install_manifest.txt'.

Since we are not using a POSIX shell (nor 'mintty') anymore:
- GIMP can be built from every path easily with R. Click "Open Terminal", with
  IDE integrations etc, without needing to manual tweak MSYS2 .ini files etc.
  We could tweak MSYS2 to get the features above but not top-tier integration.
- Developers can be more aware of Windows native vars, paths etc, and avoid bugs
  Some build files were improved to support the 'Windows way of doing things'.
- No need to close and reopen terminal anymore after running 'pacman -Suy'!

---

REGRESSION: Vala plug-ins are temporarely gone due to 'vapigen' bugs, a small
regression since this is a gnomeish language but I will investigate how to fix.
2024-10-26 22:26:48 -03:00
Bruno 5778d9353a
build/linux: Restore 'gjs' bundling in AppImage
This got lost in a988084a
2024-10-14 17:48:35 -03:00
Bruno dc08645614
build/linux: Rectify comment about WMF support on AppImage
The previous comment is wrong, because GIMP never had WMF export. Let's
clarify, however, that WMF support is still tricky because of some
options available at configure time regarding 'fontmap' and so on.
2024-10-14 16:05:33 -03:00
Bruno 47852ef90f
build/linux: Do not impose 'GIMP3_DIRECTORY' var on AppImage's AppRun
This var points to a dir that exists outside of the AppImage bundle and it
exists to be customized if needed. So, let's not impose it in the AppRun.
2024-10-14 10:43:29 -03:00
Bruno dffefa1b67
gitlab-ci, build/windows: Do not build unneeded dist assets on CI
There is no need to generate Installer assets on Store (and vice versa) or
on build-only pipelines. Let's build only the necessary, mitigating #11385
2024-10-13 20:59:06 -03:00
Bruno 1384bf8c28
build/windows: Streamline MSIX script "Arch:" output with Installer one
This is a more informative output about what msix is being generated.
2024-10-13 14:05:27 -03:00
Bruno 9a6b93c4a5 build/windows: Add (optional) WACK phase to MSIX script
Local certification with WACK is optional and useful to anticipate if
the MSIX will be refused by Partner Center's online certification.
(Just to note: On Windows SDK, certification is not equal to signing.
It's more a checklist process to see if the package is suitable to run.)

To avoid needing the full script to be run with admin rights (which
would be scary) this feature only works with a bunch of requirements:
1. sudo for Windows (so Windows 11 24H2)...
2. enabled in normal (aka inline) mode...
3. in a Windows account in admin group

The 2nd and, specially, the last one are harsh but this is sudo's design:
https://github.com/microsoft/sudo/issues/108
https://github.com/microsoft/sudo/discussions/68
2024-10-13 15:40:39 +00:00
Bruno 6b13a097ab
build/linux: Bundle complete GTK and ISO locales as in Windows bundling script
Since the 'bund_usr' is now smater, we can have parity with Windows bundle.
2024-10-12 10:32:44 -03:00
Jehan 6fe83ee785 build: add the missing entry for the new Bengali language support.
Also add some header text as guidelines on how to fill in a new language
so that we don't have to search each time.
2024-10-11 01:40:19 +02:00
Jehan be23a0573b build: also test missing langs in build/windows/installer/lang/iso_639_custom.xml
This file was added in commit 21ffb58903 to replace the list in
4_dist-gimp-inno.ps1. The older list used to be verified for missing
langs in the test-installer-langs.sh unit test, but the test was removed
and never replaced. This is why now when a new language is added and it
is missing in iso_639_custom.xml, it goes unnoticed until failing in
dist-installer-weekly job.
2024-10-11 01:40:19 +02:00
Bruno be67c70a89
build/linux: Add "Image Graph" support to AppImage
To we properly bundle graphviz, the 'bund_usr' function was improved.
2024-10-10 09:29:29 -03:00
Jehan cf3aa1b6b7 build, gimp-data: do not hardcode the build directory.
This fixes building with the option -Dwindows-installer=true. We should
**never** hardcode the build directory like what was done in this
script.

Also bumping gimp-data where some scripts had similar issues which were
only visible with -Dwindows-installer=true.
2024-10-08 00:52:53 +02:00
Bruno 4a41b76411
build/linux: Update ghostscript, json-c and graphviz modules
Ported from: e499861f14
2024-09-29 12:58:47 -03:00
Bruno cf2893747d gitlab-ci, build: Do not bundle nor dist any Lua related files
Following 78665ca372

Since our official builds tends to be vanilla (only using meson
standard options), there is no need to shipping these lua files.

This commit can be reverted in the future if Lua is stable again.
2024-09-28 01:42:44 +00:00
Bruno 528df2143f
build/windows: Comment .ps1 scripts regarding 'gimp-release' 2024-09-17 21:43:28 -03:00
Bruno e898791a10 build/windows: Fix acidental revisions in scheduled pipelines
Some maintainers use the common pratice of evaluating variables to 1,
which breaks the revision detection code. Let's special case this.
2024-09-16 14:41:01 +00:00
Bruno ca9d57a417
build/windows: Generate checksums again in MSIX script
This fixes a regression introduced with bd288617
2024-09-15 17:19:44 -03:00
Bruno aa10a33db9
build/linux: Sync with Beta manifest regarding imath, poppler, suitesparse and graphviz
Ported from: 1ddf27837b
2024-09-14 17:44:04 -03:00
Bruno de529a940a build/windows: Make MSIX script less confusing in some sections 2024-09-12 19:55:17 +00:00
Bruno 81db76ea30 build/windows: Make crossroad more persistent with MSYS2 servers
Crossroad have a tendency of failing due to internet disconnection.
Let's add code to retry the deps downloading to reduce failures.
2024-09-10 08:23:27 +00:00
Bruno a988084a97 build/linux: Refactor AppImage bundling script to easier maintenance
- Simplify three functions into 'bund_usr' (similar to 'bundle' in Win script)
- Add 'wipe_usr' function (similar to 'clean' in Win script)
- Verbose the steps of AppImage making
- Log (go)appimagetool bundling of deps (not only the the .appimage making)
- Change AppRun to be more clear about our .appimage compatibility

This refactoring is not perfect but is good enough to anyone understand
how our AppImage is made just reading the script.
2024-09-09 10:51:52 +00:00
Bruno 898f8917ab
build/linux: Sync with Beta manifest regarding IFF support
Ported from: 0acddb8909
2024-09-08 16:57:47 -03:00
Bruno 23bae9ab42
gitlab-ci, build: Move appimage code out of gitlab-ci and reduce verbosity
This should be enough to not "annoy" developers with repetitive ninja and
not too relevant appimagetool output. This makes easier to devs to look at
the runner log without needing to revert 9653e50e (the revert/split would
make us lose .appimage in some custom Deb pipelines and 50% of ccache hits).
2024-08-30 12:44:40 -03:00
Jehan 75978104de build: AppImage also uses appstreamcli to validate the AppStream data…
… so let's make a quick edit for our 'date="TODO"' trick.
2024-08-30 00:06:58 +02:00
Anders Jonsson a9cf2d7a3e desktop: change gimp20 to gimp30 for gettext
The real used value for gettext_package is
already changed in meson.build
2024-08-29 09:09:29 +00:00
Bruno 0e245e86c1 build/linux: Always use latest commit in luajit and lua-lgi modules
luajit download server to tarballs stopped to work, which is expected,
since it was advised by the team in https://luajit.org/download.html:
"Please do not use obsolete versions from older tarballs or zip files.
Please remove any outdated links to these downloads — these links will
cease to work soon."

We also will not use the official git server since it does not support
all git clone features, which makes flatpak-builder cloning stage fail.

---

Regarding lua-lgi, we will not use the latest commit since seems that
our goat exercises or gobject-introspection or lua-lgi iteself is broken
since lua-lgi commit: 3f47eb57ef5a84be878ce33c15b7ff037059b08d
2024-08-28 11:16:57 +00:00
Bruno d389068d5d build/linux: Update suitesparse module on flatpak manifest 2024-08-28 11:16:57 +00:00
Bruno 60add9ac40 build/windows: Prepare MSIX versioning to RC1 and beyond
First, make the script versioning system able to detect release candidates.
Otherwise, we willn't be able to use the "GIMP.GIMPPreview" identity (that
was previously tied to GIMP_UNSTABLE var, which is not set to 1 on RCs).

---

This also fixes the pseudo-revision trick when we have a zeroed micro version,
which is the case of the release candidates and the first stable version.
The versioning now have a different aproach from 8c99efd7.
2024-08-27 13:43:33 +00:00
Bruno f9c790c73f
build/linux: Add REVISION support to Inno .PS1 script 2024-08-24 16:30:56 -03:00
Bruno 8ac28cfbee build/windows: Warn about the fate of 32-bit
It's desirable to announce this with advance to not surprise anyone.
2024-08-20 20:39:17 +00:00
Bruno d7806d92ec
build/linux: Make flatpak maintainer instructions clearer
Some parts of the README got obscured or dated with time. Let's improve them:

- Remove redundant text about keeping GIMP buildable (it's already said on
  Cod. Style and Dev rights pages on gimp-web-devel, and not flatpak specific)
- Remove text about 1-hour timeout which isn't true according to my tests,
  specially after the improvements of splitted jobs and updated build options
- Reorder Anitya text to before "module dropping" text, it's linear this way
  ("module dropping" by checking runtime is last step of module cycle of life)
- Remove very confusing "flatpak run... gimp" line which was breaking the
  explanation flow about "module dropping" and it's not too useful since the
  manifest (which is only a bit different) can be acessed in-source with tags
- Changed title from "Mantaining the manifest" to "Mantaining the modules"
- Added not so clear "Versioning the flatpak" to separate it from other modules
  text. The title is not perfect, but at least make a needed pause on reading
2024-08-20 07:39:39 -03:00
Bruno 18188dbb1c build/linux: Sync with Beta manifest regarding gexiv2 and exiv2 headers
Ported from: 37b173e3a9
and ac0069eb20

The reason for this change is because part of our API (babl, gegl and
gimp headers) directly links to gexiv2 then exiv2 headers so these two
should be provided, even if they aren't on babl/gegl/gimp namespaces.

This change is useful to beta. But, despite we not using extensions on
GIMP nightly to need these headers, doesn't hurt syncing this change.
Indeed, this commit clarify "why" we aren't cleaning these headers.
2024-08-20 10:33:10 +00:00
Bruno 76f174f839 build/windows: Simplify installer .PS1 script
This adds a bit more verbosity to the installer script while omitting some.

The version params (e.g. gimp_version) are dropped since now config.h is
mandatory (this is a natural conclusion of the generation of assets).
2024-08-19 23:58:05 +00:00
Bruno 6840d70317
build/windows: Complete c95fe605cd 2024-08-17 14:49:57 -03:00
Bruno 8c99efd7a1
build/windows: Add pseudo REVISION support to MSIX dist script
Due to Partner Center restrictions, GIMP MSIX will have a special versioning:
{major}.{minor}.{micro}{revision}.0
2024-08-17 14:49:53 -03:00
Jehan 7b274c1200 meson, build: verify for up-to-date gimp-data and warn otherwise. 2024-08-15 19:41:12 +02:00
Jehan b9fcb22877 build, tools: always use iso_639_3 gettext domain.
Also no need to bundle the iso_639 gettext domain anymore for runtime.
2024-08-15 15:50:30 +02:00
Bruno 143dfb709b build: Provide 'iso_639_3.mo' for language list in text tool options
This list is generated at runtime, unlike the one from preferences.
2024-08-15 15:50:30 +02:00
Jehan 965dd51e80 build: don't bundle iso_639.xml anymore.
Note that we still need the iso_639.mo files at runtime. Only the XML
files don't need to be parsed anymore at runtime (they are parsed at
build-time now).
2024-08-15 15:50:30 +02:00
Bruno b4ad767296 build/linux: Sync with Beta manifest regarding openexr and imath (add libdeflate)
Ported from: 55fdadd10f
2024-08-15 11:09:48 +00:00
Bruno aabfec824d
build/linux: Sync with Beta manifest regarding graphviz
Ported from: 395358b517
2024-08-11 13:59:17 -03:00
Bruno d351bbe283
build/linux: Sync with Beta manifest regarding gimp module
Ported from: 61050e962c
2024-08-11 12:18:21 -03:00
Bruno 9c4425f0f0
build/linux: Sync with Beta manifest regarding libheif and x265
Ported from: 1690804247
2024-08-11 10:37:02 -03:00
Bruno 2eb4f579f1
build/linux: Sync with Beta manifest regarding suitesparse and openblas
Ported from: 537cbf411c
2024-08-10 20:31:23 -03:00
Bruno 9e4cf76228
build/linux: Sync with Beta manifest regarding poppler
Ported from: 7a71694e85
2024-08-10 08:02:17 -03:00
Bruno 7c64f26caa build/windows, meson: Complete 93cc81281c 2024-08-10 00:59:53 +00:00
Bruno 1c08f08e97
build/linux: Sync with Beta manifest updating gexiv2 and exiv2
Ported from: 3772514155

Just to note, ALL the previous "Sync with..." commits were tested in flathub
and gnome-nightly flatpaks, and this actual one (and future ones will be) too.
2024-08-09 11:48:07 -03:00
Jehan 84471f397a Issue #5331: use the $XDG_CONFIG_HOME config folder unconditionally.
This is the pendant commit to the one I'm going to commit on the beta
branch for RC1. There in fact was a way to always use the
$XDG_CONFIG_HOME folder, unconditionally (and prevent the weird
inconsistencies of having config folder in .var for some flatpak
installations and in XDG folder for others).

See: https://github.com/flathub/org.gimp.GIMP/pull/287
2024-08-09 13:12:04 +02:00