freetype-devel
[Top][All Lists]
Advanced

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

[ft-devel] Upstreaming freetype diagnostics patches


From: Felipe Sanches
Subject: [ft-devel] Upstreaming freetype diagnostics patches
Date: Tue, 5 Sep 2017 18:34:15 -0300

hello,

My name is Felipe Sanches. I'm currently the maintainer of and lead-developer in the Font Bakery project, which is a typography quality-assurance testsuite:

https://github.com/googlefonts/fontbakery/

=====
short summary:
I want to help upstream HinTak's diagnostics patches into freetype and I'm writing this message to get feedback from the freetype developers/maintainers regarding which specific issues you'd like to see addressed in the patch-set in order to get it merged.

More details and background info below.
=====

Font Bakery is a typography test-suite primarily developed to aid in the process of on-boarding fonts into the Google Fonts collection, but it is pretty much useful for asserting the quality of font files (and families) for the general users as well.

Alongside more than a hundred tests that we implemented in python using fontTools, Font Bakery also includes third-party font testing tools such as the Microsoft Font Validator. Among the MS FontVal checks there are a few that focus on validation of TrueType hinting instructions.

When Microsoft released FontVal as free software those tests were not included in the source code release. HinTak has been working on FontVal in its post-Microsoft incarnation and he did re-implement those hinting checks by adding a minimalist "diagnostics" API into freetype and using it to register a callback to a user application such as FontVal and placing its calls in very specific places in the freetype's hinting VM interpreter.

My understanding is that freetype already deals with detecting and working-around a vast number of cases of badly hinted fonts (or even corrupted hinting instruction blocks). So, the actual error detection routines are already part of freetype's current interpreter implementation. HinTak's patches simply benefit from those error-detection routines by providing an API that informs a user application about those errors (so that FontVal, for instance, can report them in a font testing log).

Behdad at some point observed that the 2 callbacks in HinTak's new API implementation should not be left as globals in the code, but instead should be moved to FT_Library. http://lists.nongnu.org/archive/html/freetype-devel/2016-07/msg00012.html

Even though HinTak has reimplemented the full original set of 70 hinting tests, only a small patch with 6 of them was made publicly available up-to-know. So the resulting binaries that are packaged into and distributed as FontVal 2.1.1 are effectively proprietary software (since they lack some of the corresponding source code under a free license). I assume that was also the case in a few of the past FontVal releases as well.

I'd like to help fix that problem because I want to have those tests running on Font Bakery without adding a non-free dependency to the project (I do have a strong commitment to software freedom). HinTak suggested that prior to releasing the rest of the patch-set he would like to get the global vars issue sorted out. So I'm offering here my help to do so, but before actually massaging HinTak's first patch I'd like to hear from the freetype developers if there's any other concern that you'd wish to have addressed on the patch.

Additionaly, I should note that HinTak has also provided some more details on this topic (including a link to the first patch) here:

https://github.com/HinTak/Font-Validator/wiki/FAQ#the-heavily-customized-freetype-backend

happy hacking,
Felipe Sanches

reply via email to

[Prev in Thread] Current Thread [Next in Thread]