Package: freetype
Version: 2.12.1+dfsg-5

This is a request to remove the very experimental COLRv1 support from
libfreetype 2.12.1. The easiest means of doing so would be to patch
the PUT_COLOR_LAYERS_V1 macro [0] like

- #define PUT_COLOR_LAYERS_V1( a ) PUT_COLOR_LAYERS( a )
+ #define PUT_COLOR_LAYERS_V1( a ) NULL

This will make the public COLRv1 related methods consistently return
failure instead of attempting to parse a format somewhat different
from the actual specification. Note that this only affects 2.12.1.
Versions earlier than 2.12.0 did not have this code, and versions
2.13.0 and later have full COLRv1 support.

Unfortunately, it appears that FreeType 2.12.1 shipped with COLRv1
support enabled. This was unintentional, the intention was to have it
disabled by default until it was ready [1] in 2.13.0. The issue with
the partial implementation in 2.12.1 isn't just that it is incomplete
(does not implement any of the required VAR paint types) but also that
it is incompatible in a number of ways. Applications which attempt to
use the API will get very surprising and wrong results. After taking a
look at what might be done to alleviate this issue it appears the best
course of action is to simply disable COLRv1 in 2.12.1.

[0] 
https://salsa.debian.org/debian/freetype/-/blob/17a35994acc3084014304b9c60d35017fa254270/src/sfnt/sfdriver.c#L1246

[1] 2692b3215be4f106b714974c55f4ab80da25189c [sfnt] Remove temporary
runtime flag for variable 'COLR' v1.

Reply via email to