On 11/28/2013 02:25 PM, Paul Flo Williams wrote:
Nicolas Mailhot wrote:
> Le Mer 27 novembre 2013 15:39, Petr Vobornik a Ã©crit :
>> OTF/TTF fails in all modern versions of IE when the font does not have
>> embedding permissions set to 'installable' . It's more common
>> one would say.
> Of course it is very common, it's the default setting in most font
> authoring tools, and the authors of those tools were very much against web
> fonts in the first place. So font authors that actually want to do web
> fonts and actually choose free font licenses get betrayed by their
> tooling. And a lot of them do not care for ie at all anyway.
> Just write a fontforge or ttx script that flips this bit at rpm build
> time, assuming you've done your legal review correctly the bit is in
> contradiction with the font license (if the font was no installable we
> could not package it in the first place). You'll be doing nothing more
> than fixing a bug in upstream's font implementation.
OK, seems to be the easiest way. Originally, I wanted to avoid it
because idk what is the correct way. I've created a simple script to do it:
while ( i<$argc )
SetOS2Value("FSType", 0) # set 'Embeddable' to 'Installable
fmflags = 0x800 # generate old kern table
Generate($argv[i]:r + ".ttf", "", fmflags)
i = i+1
The script is not good because it doesn't touch only OS/2 table but it
regenerates the whole font file (different GPOS, dropping DSIG and
without fmflags also dropping KERN table).
I've also tried to use ttx with a hope that it won't touch other tables,
but it crashed on parsing OpenSans font.
Perhaps we should add this to the font packaging guidelines?
Flipping through the 235 packaged fonts installed on my system, I see that
26 of them have fsType fields that limit embedding rights. The ones
affected are those from smaller "foundries" and OFLB, as you might expect,
but also Droid Sans, which was a surprise.