Commit Graph

328 Commits

Author SHA1 Message Date
Bruno 16dc7b4047 build/windows: Debloat 'lib/python3.11' bundling
After running almost all the py plug-ins, I noticed that few py modules and
pkgs are used to justify the need of a slightly faster build time with .pyc.
In the actual bloated status (with all .pyc), lib/python* is about 260 MB big.
With the bare minimum .pyc after the tests above, python*/ is less than 90.

So, let's purge the .pyc at bundling time (I'm not reinventing the wheel,
Krita do this too), which reduces the .zip bundles (so the Inno and MSIX
installs) in 170MB, the Installer .exe in 45MB and MSIX download in 60MB.

---

Let's also disable any .pyc generation, since GIMP installed with Inno in the
system-wide (aka admin) mode or installed with MSIX both doesn't handle well:
py plug-ins work but have CLI errors, unlike Inno user-mode and .zip bundle.
2024-06-23 14:09:22 +00:00
Jacob Boerema 3fc861e186 tips: remove tip about dynamic keyboard shortcuts
Since dynamic keyboard shortcuts are not available anymore, remove
the obsolete tip about it.
2024-06-11 14:57:24 -04:00
Bruno Lopes 685fe6c0c5 data: Restrict 'default.env' to relocatable builds
The lack of distinction after 975c1891 was causing crashes in local builds.
2024-04-19 22:25:18 +00:00
Bruno Lopes 975c1891ae data: Generate .env files at build time
These files has been generated by the installer scripts for historical reasons.
Now that we have full-blown local builds and the upcoming MS Store version,
this pervasive pratice can't continue since it creates disparity between builds.
2024-04-18 19:04:25 +00:00
Jehan 42171503d4 data, plug-ins: logo images moved to gimp-data repository.
Now the development and stable logos will be generated from gimp-data.

In other changes, the gi-docgen logo is installed as a symlink using
install_symlink() which exists since meson 0.61.0 so I bumped our meson
dependency (in practice we were already using this function anyway and Debian
bookworm has meson 1.0.1 so it's all good).

Finally I don't install a wilber.png anymore, which was only used by script-fu
testing, and which was the same as gimp-logo.png (except 256x256 instead of
128x128). Unless mistaken, all script-fu tests loading this image still work
with the change. The only one where I needed further change was buffer.scm
(which was checking the dimensions).

See gimp-data@9aa6e35.
2024-03-28 00:19:10 +01:00
Jehan 0b5b4173ab build, data: moving splash image to gimp-data repository.
- Splash images will now be stored from gimp-data.
- The installer BMP image scripts also move in the same time.
- We don't need devel and non-devel variants of the BMP images in InnoSetup
  scripts since the images are generated from the actual splash.
2024-03-28 00:19:10 +01:00
Jehan cbdd45723a data: moving brushes and patterns to gimp-data.
Symmetric removal commit of add commit gimp-data@c09aa01.
2024-03-28 00:19:10 +01:00
Jehan d1508cdebe data: remove various historical images.
It is quite obvious that these were all kept around for the fun historical
background. And even though we can always get these back anytime through git
archeology, if these images disappear from our sight, we will just eventually
forget they even existed.

We now have a `gimp-data` repository for all data used and installed by GIMP. I
am not going to add these over there since it would go against the whole purpose
of splitting the source repository (we have too much data so we will want to
clone `gimp-data` as shallow so that it will only contain the necessary data to
install GIMP).
Yet I have created a page to reference and display all these original images
(and more! I spent quite some time researching old splashes and logos in our dev
log) for the pleasure of keeping the history of GIMP alive. It also reference
commit links for easy retrieval and further researches.

The only left images now are:

- gimp-logo.png and gimp-devel-logo.png: these are used in the About dialog or
  API reference. Ideally they should be generated from the SVG source.
- gimp-splash.png: used as splash image, in the Welcome dialog and in the
  Windows installer.
- wilber.png: only used in some Script-fu test scripts as far as I can see. This
  should also be generated from the same source SVG as gimp-logo.png, or maybe
  simply gimp-logo.png should be used instead.

Logos: https://gitlab.gnome.org/GNOME/gimp-data/-/blob/main/images/logo-log.md
Splashes: https://gitlab.gnome.org/GNOME/gimp-data/-/blob/main/images/splash-log.md
2024-02-25 16:11:58 +01:00
Jehan a3c0b515f9 data: the build system should not ever move system files.
AFAIU the issue which it tried to fix only happens on custom builds and it looks
to me that it's just about multi-prefixes developer builds which were not
configured with -Drelocatable-bundle=no as they should.

When you compile GIMP yourself and intend to run it in a multi-prefix
environment, without ever relocating the build, like on Unix-like systems, then
disable this feature.

In any case, we should never do this kind of system file moving hacks in our
build system. The MSYS2 project even had to patch this out:
https://gitlab.gnome.org/GNOME/gimp/-/merge_requests/1171#note_2022406
2024-02-22 18:41:04 +01: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
Jehan d4f8f553b2 data: consistent capitalization in gradients' names.
See comment by Jacob about the lack of consistency in some of the names
of default data.
2023-12-16 20:20:39 +09:00
Aryeom Han 7eea3c8622 data: new "Wilber Week 2023 edition" splash screen for GIMP 2.99.16. 2023-06-08 00:21:48 +02:00
Michael Natterer 26dce72d2c Remove autotools 2023-05-27 00:03:52 +02:00
Jehan cfeedb8736 data, devel-docs, gitlab-ci: improve the docs tarball.
- Use a relative path for GIMP_LOGO_PATH inside the gi-docgen generated
  HTML, and not an absolute path taken from build dir (otherwise this
  would break, for installed docs, but also for the tarball and the
  developer website!).
- Also use either gimp-logo.png or gimp-devel-logo.png depending on
  whether we are on a stable or unstable branch.
- Install these in images/ inside the GIMP docs folder, which
  corresponds to the relative path given to GIMP_LOGO_PATH.
- The installed root dir will be $datadir/doc/gimp-2.99/, e.g.
  /usr/share/doc/gimp-2.99/
- Inside this folder, the library references will be in libgimp-3.0/ and
  libgimpui-3.0/ (instead of weird Gimp-3.0/ and GimpUi-3.0/). Note that
  the root dir uses the application version (2.99) whereas the library
  folder use the API versions. These are different in development phase.
- Archive the gi-docgen installed files, not taken from the build dir,
  to avoid packaging temp files, such as the .toml files. Note that
  `g-ir-docs` files are still taken from the build dir, as we don't
  install them yet.
- Finally package all this in a directory before archiving in a tar.xz,
  named the same as the directory (e.g. gimp-api-docs-2.99.13/ inside
  gimp-api-docs-2.99.13.tar.xz).
2022-09-09 20:32:27 +02:00
Niels De Graef 3473883edb po-tips: Fix gettext translation 2022-06-27 15:48:26 +00:00
Niels De Graef a3c5072a1c data: Adapt tips.dtd for gettext changes 2022-06-26 10:54:41 +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
Jehan 67f7b76e92 data: fix gimp-release file on Windows.
The '\n' newline is transformed into a space (0x20) when building
natively on Windows. And unfortunately g_key_file_load_from_file() does
not like this.

The autotools rule works properly on all platforms according to my
tests.

Note that at first, I thought it was a LF vs. CRLF issue, and tried to
special-case Windows, but I realized it's just that 'echo' command
seemingly transform newlines unexpectedly in its Windows form. I didn't
want to waste too much time experimenting alternative calls, especially
as I have to test through CI (so each test is very costly, time-wise).
Instead I go the alternative way of using a pre-generated conf file.
2022-06-07 21:41:59 +02:00
Aryeom Han 7511c81f31 data: new "experiments" splash screen for GIMP 2.99.10. 2022-02-22 12:23:46 +01:00
Asalle 614e1c6b4c app: make dynamics tool options a checkbox
Fixes #4333

If the checkbox is unchecked: dynamics falls back to "Dynamics Off",
the current dynamics name and its options are hidden in the UI.

If the checkbox is checked: dynamics is set to previously used one
or the default one, all dynamics options are seen in the UI.
2022-02-03 20:33:45 +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 2730361928 data: fix more xmllint validation.
Similarly to the previous commit, the tips and tags validation was never
happening as it was implemented as a custom top-level meson target. It
was not run during a normal build. Now it is.
2021-06-18 15:46:41 +02:00
Jehan 845f1c81ed data: create po-tags/ build directory.
We have a sudden CI failure which is maybe because of a change of
intltool-merge. We believe it might be because of a missing directory.
Let's test making it before running the command.

Fixes:

> /usr/bin/intltool-merge ../../../po-tags
>   ../../../data/tags/gimp-tags-default.xml.in gimp-tags-default.xml -x -u
>   -c ../../po-tags/.intltool-merge-cache
> No such file or directory at /usr/bin/intltool-merge line 396.
2020-12-11 22:54:33 +01:00
Aryeom Han eee04288c8 data: new splash screen for GIMP 2.99.2. 2020-10-21 16:24:47 +02:00
Ell f9cc239f2c data: clean up "Acrylic 05" brush
Clean up faint pixels in the "Acrylic 05" brush, which produce a
badly-thresholded mask with the Pencil tool.  See issue #5180.

Thanks to Sevenix for the fixed brush!
2020-06-12 18:20:09 +03:00
Ell cf574c44fb data: in Makefile.am, make sure to uninstall gimp-release 2020-02-16 01:31:14 +02:00
Jehan b79e147923 meson, data: create/install gimp-release file with meson too. 2020-02-14 00:58:42 +01:00
Jehan f98e506712 configure, data: create/install the gimp-release file. 2020-02-14 00:56:22 +01:00
Félix Piédallu 65eff6f150 Meson port. 2019-09-11 16:42:04 +02:00
Michael Natterer 454822e58f data: add python.env to set up the GI_TYPELIB_PATH to Gimp-3.0.typelib 2019-08-04 18:20:25 +02:00
Jehan cd924f453a app: do not make line art bucket fill a GimpSelectCriterion anymore.
This was my initial choice, but the more I think about it, the less I am
sure this was the right choice. There was some common code (as I was
making a common composite bucket fill once the line art was generated),
but there is also a lot of different code and the functions were filled
of exception when we were doing a line art fill. Also though there is a
bit of color works (the way we decide whether a pixel is part of a
stroke or not, though currently this is basic grayscale threshold), this
is really not the same as other criterions. In particular this was made
obvious on the Select by Color tool where the line art criterion was
completely meaningless and would have had to be opted-out!

This commit split a bit the code. Instead of finding the line art in the
criterion list, I add a third choice to the "Fill whole selection"/"Fill
similar colors" radio. In turn I create a new GimpBucketFillArea type
with the 3 choices, and remove line art value from GimpSelectCriterion.

I am not fully happy yet of this code, as it creates a bit of duplicate
code, and I would appreciate to move some code away from gimpdrawable-*
and gimppickable-* files. This may happen later. I break the work in
pieces to not get too messy.
Also this removes access to the smart colorization from the API, but
that's probably ok as I prefer to not freeze options too early in the
process since API needs to be stable. Probably we should get a concept
of experimental API.
2018-12-12 15:27:48 +01:00
Michael Natterer bab75b7365 Change a bazillion URLs to https://
Including all user-visible link and links called from code, like
the help pages.
2018-07-14 14:19:27 +02:00
Ell 0e8b2b8f04 data: add new splash screen
Peppers are so 2.10!
2018-05-25 08:12:27 -04:00
Jehan 83b97aff18 Revert "splash: Add 2.10 splash image + svg"
This reverts commit ea3de6d524.
Previous splash had never been used in a dev release. Let's use it for
GIMP 3 port. Updating also the version number to display "2.99".
Green Is My Pepper!
2018-05-20 21:06:32 +02:00
Jehan 9591bc88f8 data: remove obsolete brushes.
These were mostly kept for scripts which needed to keep working. Since
we don't ensure compatibility anymore, let's just get rid of old
deprecated data.
2018-05-20 21:06:30 +02:00
Michael Natterer e8d0f8e3cf data: don't use deprecated enum value nicks in tool presets 2018-05-01 13:57:44 +02:00
Pat David ea3de6d524 splash: Add 2.10 splash image + svg
This image is CC-BY from Philipp Haegi.
https://www.flickr.com/photos/philipphaegi/39057406754

I added the graphics overlay for the splash.
2018-04-25 16:39:02 -05:00
Jehan 709f248438 data: make the "Structure" brush obsolete.
Start obsoleting the most terrible brushes of GIMP. This is definitely
one of them.
2018-04-24 13:35:00 +02:00
Jehan 9325013fb0 data: add a gitignore in new "Fun" brush category. 2018-04-24 03:55:04 +02:00
Jehan 7c0d8a2d2a Bug 589371 - some new brushes.
Extract of a selection by Jose Americo Gobbo.
Reviewed by Aryeom and myself for integration.

From what I could gather, authors are:
- Grunge 01 by Rene Jensen.
- Stone Work 01 by Mathias Jonathan (Griffeur).
- Pencil 03 and Charcoal 03 by Americo.

According to information from Americo, all data is GPL v3.0.
2018-04-24 03:53:33 +02:00
Jehan 9bbd763d3c data: new splash screen.
Things are getting serious now. We need a reasonnable splash, right?
Just in case we have a RC3!
It follows all rules: full HD and bottom fourth empty for loading text.
2018-04-24 01:02:33 +02:00
Aryeom Han f9cfb55d7e data: meeeeeeeh! 2018-04-23 23:48:49 +02:00
Aryeom Han 57c849df03 data: Wilber is kitch and he knows it! 2018-04-23 23:43:59 +02:00
Aryeom Han 8cd75a5860 data: update pepper brush.
At least if the fun has to go on, let's have a good quality one!
2018-04-23 20:31:31 +02:00
Jehan 87f9e65408 data: move the Pepper brush to a "Fun" category.
This brush is not to be considered seriously and is mostly a "troll". If
we want to keep it, let's make a proper category.
2018-04-22 19:51:44 +02:00
Ell 43974c3c6a data: update splash-screen text for 2.10.0-RC2 2018-04-18 15:03:31 -04:00
Jehan 92a8978064 data: re-add 3 brushes of very questionable origin, but as "obsolete".
So I discover the concept of obsolete data in GIMP where some data can
be apparently unavailable in the GUI, but still selectable by script.
This somehow reverts commit 26cb87aa2d
then moves the brushes into the obsolete section instead of simple
deletion. This way, any script using the said brushes won't break at
least.

We will definitely remove the brushes for 3.0, but for now it's better
to keep scripts as compatible as possible.
2018-04-16 10:48:10 +02:00
Michael Natterer b0beb0197a Bug 795230 - Rename Blend tool and provide PDB compatibility
Rename the tool and its options, and the gradient sub-struct of paint
options.
2018-04-14 00:52:20 +02:00
Ell b2d40eb994 data: don't install gimp-splash.xcf
We only need it in git.
2018-03-26 15:37:01 -04:00