Hi Andres,

On Thu, 28 Sept 2023 at 18:49, Andres Salomon wrote:
>
> Control: affects -1 chromium
>
>
> On Thu, 28 Sep 2023 01:24:00 +0900 SuperCat wrote:
> > Hi,
> >
> > In chromium source code, function SkScalerContext::GlyphMetrics
> > SkScalerContext_FreeType::generateMetrics() will call
> > FT_Get_Color_Glyph_Paint() if macro TT_SUPPORT_COLRV1 exists. Somehow
> > FT_Get_Color_Glyph_Paint will be a NULL pointer if this patch applied, and
> > chromium will not be able to run.
>
>
> This smells like an ABI change that doesn't really seem appropriate for a 
> point release update. I can patch TT_SUPPORT_COLRV1 out of bookworm's 
> Chromium, but I wonder if any other packages are using it on bookworm?
>
> For the record, Skia has the following code:
>
> #ifdef TT_SUPPORT_COLRV1
>
> // So undefine TT_SUPPORT_COLRV1 before 2.11.1 but not if FT_STATIC_CAST is 
> defined.
> #if (((FREETYPE_MAJOR)  < 2) || \
>      ((FREETYPE_MAJOR) == 2 && (FREETYPE_MINOR)  < 11) || \
>      ((FREETYPE_MAJOR) == 2 && (FREETYPE_MINOR) == 11 && (FREETYPE_PATCH) < 
> 1)) && \
>     !defined(FT_STATIC_CAST)
> #    undef TT_SUPPORT_COLRV1
>
>
> So on bullseye (with freetype 2.10) it doesn't try to use COLRV1. On sid 
> (with freetype 2.13) it will use COLRV1. If freetype's COLRV1 is going to 
> remain disabled on bookworm via the proposed-update (with chromium being the 
> only broken package), then I'll probably just bump that version check to only 
> allow TT_SUPPORT_COLRV1 with FREETYPE_MINOR >= 13.

FreeType 2.12.1 was released with experimental COLRv1 support enabled.
This was unintentional, as the implementation shipped in this release
was incomplete and incompatible with the final COLRv1 API.

Upstream's intention was to enable COLRv1 support in FreeType 2.13.0,
which has a stable and complete COLRv1 API.

I'm surprised Chromium actually used an experimental API, although
this version check copied above seems like a bug.

Grepping for TT_SUPPORT_COLRV1 yields a small number of packages.
firefox*, godot and paraview are fine. Most of the openjdk-* packages
aren't in bookworm.

Reply via email to