[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1052455: RE: freetype 2.12.1+dfsg-5+deb12u1 makes chromium segfault at startup



Control: affects -1 chromium


On Thu, 28 Sep 2023 01:24:00 +0900 SuperCat <supercatexpert@gmail.com> 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.

Reply to: