graphics/rawtherapee: update to 5.10
ChangeLog: https://rawtherapee.com/downloads/5.10/#new-features
We need to stick to GCC because LLVM-compiled code may take more than
twice as much processing time as GCC-compiled does, for my test set
comparing a few images with denoising and stuff on FreeBSD-14.0-RELEASE
amd64 comparing GCC 12.3 to clang 16.0, and similar values on
FreeBSD-13.2-RELEASE.
Pin GCC to 12 and override -stdlib accordingly, to fix
PR: 273682
Clean up Makefile a bit, but we cannot let go of the CCACHE
workarounds yet, which we need when enforcing GCC compile.
Convert some .if branches to options helpers.
Make LTO an option that defaults to on. For some strange reason,
massively-parallel compilation WITHOUT LTO appears to trigger
OOM kills much more than an LTO-enabled build. Upstream states
that LTO build should run faster.
For one self-test that fails frequently with SIGPIPE (Exit code 141 is
128 for core dump + 13 for SIGPIPE), pipe through dd with bigger input
buffer to avoid SIGPIPE/exit code 141 test failures.
Replace echo by ${ECHO_CMD} in self-tests to appease portlint.
Portlint misdetects "file system" as bare use of file though and
suggests ${FILE}, which is wrong.
Revise warnings around the CCACHE hacks because
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277204
strives to move ports to CCACHE_ENABLED, which does not work for this
port.
Also, 5.10 should fix the profile/locale related crash
PR: 257255
by switching the std::map variable to use std::string as index,
rather than Glib::ustring, which caused inconsistencies with locales.
Upstream references (two bug reports, and the fix, in order):
https://github.com/Beep6581/RawTherapee/issues/6357
https://github.com/Beep6581/RawTherapee/issues/6876
https://github.com/Beep6581/RawTherapee/pull/6889/commits/a95a58a8a399173e6947ff12a4b82b5d83ae80d9