-
Notifications
You must be signed in to change notification settings - Fork 10
Setup MS FontValidator #1
Comments
At fonttools/fontbakery#1524 there's a conversation regarding rendering tests performed by MSFontVal. A major dashboard-related issue is the fact that the rendering tests rely on a heavily patched private fork of freetype. @m4rc1e uses MSFontVal on MacOS and is facing the issue as well. Hin-Tak suggests that using a binary package of his custom (and non-free if I understood it correctly) freetype-build may enable proper execution of the rendering tests on MacOS. This won't help us here as the Google Container Engine relies on GNU+Linux-based containers. So, while it is straightforward to setup MSFontVal to run the vast majority of its tests on a container, we may need some extra-effort to get the dependencies sorted out to also run the rendering tests (which are very important, specially after google/fonts#1137). |
@felipesanches Neither of these requires mono anymore, btw. @m4rc1e : if you could give some feedback on the |
I buillt both the ubuntu-16.04 , ubuntu-14.04 binaries in ubuntu docker containers BTW. |
You should use the 16.04 binary if you can - because ubuntu 16.04 has a more recent gcc. (a small part of the code uses compiler _built-in's which is only available on gcc 5+ and clang 3.4(?)+). Ubuntu 14.04 has gcc 4.8.x . |
@felipesanches : BTW, I would rather describe the full patch set as "not yet suitable for public consumption", instead of "not free". Nobody is spending any time on upstreaming the first patch of 6-ish, that's all there is to it. You are welcomed to improve it to make it upstream-able. When the first patch is upstreamable, then plans may be made on making the rest upstream'able. If the first patch is not suitable for public consumption, the rest is not. Patch 1 is a somewhat not-yet-upstreamable ugly hack which one can build a very extensive and useful tool on, as long as one accepts that it is not (yet) suitable to be applied to system-wide freetype. Not worrying about breaking system-wide font-rendering is an advantage. You are welcomed to improve it. Patch 1 (= b06) is 482 lines. I checked that the current is identical except for adjusting for upstream changes. (always useful to check that it does not drift). And it is also about 1/6 of the whole by line counts too.
I would prefer you call it 'not yet suitable for public consumption' - and as I said, you are welcomed to improve the first patch to make it more upstream'able, and I'll adopt your work if it proves to be good to replace Werner's. If the first patch is not suitable for public consumption, the rest is not. |
I still can't understand the nomenclature you use to refer to the patches. You talk about b06, but I don't know where the actual patch is available online. Is "b06" a 3-char prefix of a git commit hash of some repo somewhere? For instance, you talk about both b66 and b55 in this commit message, but I don't get a clue on where to find the actual patch(es) for that change-set: HinTak/Font-Validator@2b41360 |
@felipesanches : b06 is simply http://lists.nongnu.org/archive/html/freetype-devel/2016-07/msg00016.html itself. i.e.
Hope this is clear. |
Yes. That's much better. It does not clarify the naming-scheme though. Why did you "nickname" it "b06" ? :-) Also, what criteria should I apply in order to find the other 5 patches that you said are already made public ? There's not a clear path to locating and getting a copy of them all, which is pretty frustrating to me. |
The legacy backend can emit 70-ish type of errors/warnings. The first patch estabilishes the basics/beginnings, plus 6 of those, hence 06. "b" for build/beta/beginning, I guess. You'd find that b06 itself builds fine but does not do anything. If you do "CFLAGS=-DFT_DIAGNOSTICS ./configure && make " however, you'll find that it doesn't build any more, but is missing a semi-colon. The rest is described in |
At fonttools/fontbakery#1524 (comment) you mention that 3 of the patches were "made available to others" and that "that's what's in the bin dir of the public repo". Looking at https://github.com/HinTak/Font-Validator/tree/master/bin and its subdirectories, I only see binaries (mostly DLLs). It is extremely hard to actually find the source code patches! |
The other 3 patches, one is pasted inline as in:
and you are aware that |
OK, cool! So the first one, b06, is a large one but "does nothing" (meaning it only prepares the codebase for further code patches along the patch-set). The other 2 are minimal fixes to that first one as described above. So, in order to improve the patch-set and try to see if freetype could accept it (or even if it makes sense for freetype to upstream it) I think we'd need to look at the next substantial patches in the queue. Could you please make the rest public so that I can review it ? |
If you get b06 (plus the 3 mini-patches outlined above) running, it detects 6 of the 70+ errors/warnings that the legacy backend detects. In order for the rest to be suitable for public consumption, b06 needs to be. At the moment, b06 has a fundamental flaw and makes it not suitable to be applied to a system-wide freetype (but does not affect its usefulness for non-system-rendering freetype use). I seems to be writing the same thing over and over as in fonttools/fontbakery#1524 (comment) . Can you go back to re-read that instead? |
The puzzle is starting to snap together, indeed. Thanks for your patience in explaining it all. And, yes, I see that you in some cases repeated some portions of the info multiple times, while you omitted other portions (unintentionally, I would hope). If I keep asking questions, it is not to bug you. It is because the things you said previously did not seem enough to make it all clear. |
OK. For the record, here are the 6 message-types emmited by the first patch:
|
@felipesanches : it hasn't occurred to me that you didn't see http://lists.nongnu.org/archive/html/freetype-devel/2016-07/msg00016.html as the patch itself, sorry about that. @davelab6 was CC'ed in on almost all e-mails about FontVal for the past two years . @davelab6 started it in this http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00025.html , and this was my first post on it, i think http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00038.html . The rest is history, as they say... |
Thanks, HinTak! |
It is interesting to re-read that thread - apparently it started with @anthrotype with http://lists.nongnu.org/archive/html/freetype-devel/2015-06/msg00021.html , with Werner and @davelab6 and Behdad . I only came in to the thread two days later. |
yep, I'm reading that all. Takes some time to digest all the info ;-) I'll let you know once I'm ready to crunch more code-patches. For now, the first patches and that thread are going to keep me busy for a couple hours, I think. But it all is starting to make sense. I was able to build the patches git checkout and the code makes a lot of sense, indeed. Can you, perhaps, pinpoint exactly where in that thread someone from the freetype project presented objections to the usage of those global symbols ? |
Behdad's http://lists.nongnu.org/archive/html/freetype-devel/2016-07/msg00012.html was one of the first objections . |
This post from @davelab6 perhaps explains his role in the whole thing a bit more explicitly. |
OK. After a lot of reading, I now feel comfortable with the code and what it is precisely doing. It actually looks much more straightforward then I originally expected it to be. And so I get a much better idea now of the ways we can go forward to get this thing working nicely. I can see 2 pretty much straightforward possibilities here:
In both scenarios the only missing piece of the puzzle are the actual patches. Once you make them available I can start working on them (and possibly even improving them) right away. And that won't result in any maintenance effort from you. Quite on the contrary, I will likely end up contributing improvements that can be reincorporated into your work, which is the whole point of free software / open source collaboration. |
@felipesanches did you not see my earlier post on Conceptually it works almost as if it is statically linked to a private freetype (technically it is not done that way ), it also doesn't need any mono bits. It is a standalone x86_64 linux binary. Maybe I did not make it clear: when b06 is suitable for public consumption (i.e. it does not break freetype's use system-wide), then plans can be made about the rest. Not before that. |
See fonttools/fontbakery#1524 (comment) regarding FontVal 2.1.1 and new binaries for ubuntu and mac os x. |
Originally submitted at fonttools/fontbakery#1297
MS-FontVal is not currently running on the worker container.
@graphicore There's an issue (and there will be a commit closing it pretty soon) here (fonttools/fontbakery#1336) that will provide some clues on how to set up the Microsoft Font Validator on the kubernetes cluster.
The text was updated successfully, but these errors were encountered: