mm2 / Little-CMS

A free, open source, CMM engine. It provides fast transforms between ICC profiles.
https://www.littlecms.com
MIT License
573 stars 176 forks source link

Need a way for deterministic .icc output #465

Open bmwiedemann opened 1 week ago

bmwiedemann commented 1 week ago

In https://github.com/hughsie/colord/issues/174 we found that .icc files in the colord package vary depending on the CPU used to build them. Is there already a way to ensure that .icc output does not depend on availability of SSE or other CPU features? Or can you add it?

This issue was found while working on reproducible builds for openSUSE.

mm2 commented 1 week ago

After spending some time in the files, I found only CMYK profiles are affected, profiles are truly different. Black point and white points in FOGRA27 profile are different, for instance. Littlecms does NOT compute such tags in any case, it is the caller program that requests to put the values. The profile seems to be generated by argyllcms whilst lcms is used to modify it somehow. Maybe to change some metadata. It seems the issue is not on lcms side because RGB profiles dealing with exactly same tags are not affected.

image

bmwiedemann commented 1 week ago

Do you know of a (FLOSS) tool that can dump .icc info into text form (so that I can diff it)? That would greatly help debugging.

mm2 commented 1 week ago

Unfortunately there are very few FOSS projects on ICC profiles. Maybe this one, but I cannot assure you it does what you need. https://sourceforge.net/projects/iccxml/