How the build was fixed:
* Fetch tarball instead since that is what upstream supports to build
gmic-qt from.
* Set `sourceRoot` within tarball
* Fetch patch from GreycLab/gmic#435 into gmic
* Fetch patch from c-koi/gmic-qt#175 into gmic-qt
with structuredAttrs lists will be bash arrays which cannot be exported
which will be a issue with some patches and some wrappers like cc-wrapper
this makes it clearer that NIX_CFLAGS_COMPILE must be a string as lists
in env cause a eval failure
Ever since the gmic 3.2.0 bump, it just does not build – it tries to use stub definitions for gmic_image from src/GmicQt.h, leading to errors like:
/build/source/src/GmicQt.cpp:344:11: error: 'struct gmic_library::gmic_image<unsigned char>' has no member named 'channels'
344 | img.channels(0, 3);
| ~~~~^~~~~~~~
gmic-qt 3.2.1 contains a supposed fix (f0d9d8acd1) which might have actually fixed the gmic_image issue but it introduces another one with cimg.
gmic-3.2.1-dev/include/gmic.h:191:21: fatal error: gmic.cpp: No such file or directory
191 | #define cimg_plugin "gmic.cpp"
| ^~~~~~~~~~
I do not really understand qmake, deprecated build system which gmic author insists on using for gmic-qt, and the trio of libraries is convoluted enough (mutually including their various headers and source files) that I gave up on creating an usable CMake build script that supports system libraries. It does not help that the git history is obfuscated, making proper investigation annoying.
Marking it as broken will at least make gimp-with-plugins work.
Previously, I would get
pl: error 22: Cannot open specified scriptfile (@out@/share/ploticus/prefabs/chron.pl)
and it seems the PREFAB setting last changed in
fbc4b41e69
didn't quite work.
So this adds a test to demonstrate the issue, and fixes it by substituting the placeholder.