Bug 578460
Summary: | mkfontscale cannot read TrueType font and when it fails, it generates index with '?' | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Jaroslav Škarvada <jskarvad> | ||||||
Component: | xorg-x11-font-utils | Assignee: | Søren Sandmann Pedersen <sandmann> | ||||||
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
Severity: | medium | Docs Contact: | |||||||
Priority: | low | ||||||||
Version: | rawhide | CC: | behdad, fonts-bugs, jskarvad, kem, mcepl, xgl-maint | ||||||
Target Milestone: | --- | Keywords: | Triaged | ||||||
Target Release: | --- | ||||||||
Hardware: | All | ||||||||
OS: | Linux | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||
Doc Text: | Story Points: | --- | |||||||
Clone Of: | Environment: | ||||||||
Last Closed: | 2010-04-09 17:59:08 UTC | Type: | --- | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Attachments: |
|
Description
Jaroslav Škarvada
2010-03-31 11:42:08 UTC
Created attachment 404898 [details]
screenshot of the font in question
Well, the problem doesn't seem to lie in the font, but in mkfontscale. Nautilus with (I guess) freetype doesn't seem to have a problem with the font.
Created attachment 404901 [details]
font in question
With just this font in a directory, mkfontscale generates this fonts.scale file:
2
math3m__.ttf -misc-????-medium-r-normal--0-0-0-0-p-0-iso10646-1
math3m__.ttf -misc-????-medium-r-normal--0-0-0-0-p-0-microsoft-symbol
Behdad, any ideas, what's going on? Just two more datapoints: johanka:~$ ftlint 120 /tmp/font/math3m__.ttf /tmp/font/math3m__.ttf: OK. johanka:~$ ftstring -m 'Moudivlacek' 120 /tmp/font/math3m__.ttf XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 158 requests (156 known processed) with 0 events remaining. johanka:~$ (ftstring doesn't show anything readable) The font correctly follows the OpenType specification in defining 'name' table entries in platform=3, encoding=0 (symbol) instead of platform=3, encoding=1 (Unicode). mkfontscale however seems to be unable to handle that. The relevant parts of the spec are from this page: http://www.microsoft.com/typography/otspec/name.htm """ When building a Unicode font for Windows, the platform ID should be 3 and the encoding ID should be 1. When building a symbol font for Windows, the platform ID should be 3 and the encoding ID should be 0. ... ... Note that OS/2 and Windows both require that all name strings be defined in Unicode. Thus all 'name' table strings for platform ID = 3 (Windows) will require two bytes per character. Macintosh fonts require single byte strings. """ The following patch for mkfontscale makes it examine all platform=3 (Windows) encodings. Fixes the problem in this bug and I don't expect it introduce any issues. I do need to consult the OpenType mailing list though, since this part of the spec is a bit contradictory. Anyway, here's the patch for now. Should actually be safe to go in. diff -up xorg-x11-font-utils-7.2/mkfontscale-1.0.7/mkfontscale.c.symbol xorg-x11-font-utils-7.2/mkfontscale-1.0.7/mkfontscale.c --- xorg-x11-font-utils-7.2/mkfontscale-1.0.7/mkfontscale.c.symbol 2010-04-07 12:04:29.000000000 -0400 +++ xorg-x11-font-utils-7.2/mkfontscale-1.0.7/mkfontscale.c 2010-04-07 12:03:54.000000000 -0400 @@ -317,7 +317,7 @@ getName(FT_Face face, int nid) int i; if(getNameHelper(face, nid, - TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, &name) || + TT_PLATFORM_MICROSOFT, -1, &name) || getNameHelper(face, nid, TT_PLATFORM_APPLE_UNICODE, -1, &name)) { string = malloc(name.string_len / 2 + 1); Ideally though, mkfontscale should be updated/rewritten to use fontconfig. |