Вдруг осознаю, что на новой системе отвалился JXL. Открываю ristretto, не работает. Открываю gpicview, работает. Так он ещё не отваливался. ristretto пишет, будто mime тип не распознан. Когда в gdk-pixbuf-2.0, про который сказал Пoogle, всё есть.
JXL как-то уже было чуть-чуть лагал, но когда официальный пакет только добавили в Арч. Некоторые картинки официальный пакет декодировал с ошибкой. Решение: снести официальный пакет, и снова скомпилять всё самому. Сработало. Но не в этот раз.
Не может найти какие-то символы в header-е какого-то highway. pacman -Syu, и то же самое. В PKGBUILD прописано FORCE_SYSTEM_HIGHWAY='true'. Меняю на 'false'. Скомпилялось. Ставлю, не ставится. Пишет, что header-ы highway теперь включённые в пакет конфликтуют с уже стоящими highway-git. Аа, ну да, я ж его с тех пор его не обновлял. Ставлю официальный highway, обратно меняю флаг на 'true', компиляю снова. Скомпилялось, поставилось. Но ristretto всё равно, даже с PLUGINS и VIEWERS у JXL в 'true'. А gpicview работает.
Хотя по моему последнему, пусть и не очень большому и сравнительно давнему опыту бывает проще сразу воспользоваться gdb, чем что-то разбирать strace-ом, беру его в руки всё равно. strace ristretto sample.jxl | less не работает. Наверное, пишет в stderr. strace ristretto sample.jxl 1>> text не сработало. И поделом, прекрасно же знаешь, что 1 не может быть дескриптором stderr, когда это тот дескриптор, который для записи в stdout пихаешь в write. Если 0 — это stdin, а 1 — это stdout, куда очевидно идёт stderr? Правильно; strace ristretto sample.jxl 2>> text помогло.
Разница между ristretto и gpicview заключалась в том, что ristretto не открывал libpixbufloader-jxl.so и libjxl.so, хотя в loaders.cache всё было прописано. В этом, и ещё в том, что ristretto, кажется, читал за раз больше байт у картинки. Но тут попытки что-то из этого понять провалились. Или не совсем. В loaders.cache указано image/jxl. Что там у ristretto по grep mime? Есть какое-то /usr/share/mime//mime.cache. Кто владеет /usr/share/mime//mime.cache? Официальный пакет file последней версии. Порывшись в этом деле vim-ом, нахожу по jxl image/x-jxl и только. Добавляю в loaders.cache "image/x-jxl", и ristretto, ура, JXL открывает. Гуглю "image/x-jxl" — всего 2 уп