Font Source Code
The font used to write the Ubuntu logo-type was originally released as pure PostScript outlines under the GNU LGPL by Canonical.
In 2007 it was heavily modified by Christian Robertson using the most popular font development program “FontLab” - which is proprietary - and he recently posted his improved version on his website - including his FontLab “VFB” source file and (some) build scripts, as required by the LGPL. (Canonical need to release the FontForge source, so I filed a bug report about this.)
Why does the GNU GPL require source?
For a program in a compiled “real” language, like C, the human-readble source code is compiled into a machine-readable object code that is obfuscated - almost totally unreadable and unmodifiable. Therefore for that C program to be free-as-in-freedom, to give the user the “4 freedoms” defined in “The Free Software Definition” - it must include source code. The core parts of the GNU/Linux operating system are written in C.
For a program in a dynamic “scripting” language, like Python, the human-readable source code is interpreted into a machine-readable object code each time the program is executed - almost totally transparently, so all copies of the program are fully readable and modifiable (although the object code might exist as temporarily cached files.) Many popular free software programs are written in Python, and it is the scripting language used by FontForge, Inkscape, GIMP and even FontLab. However, the source code may be legally restricted through copyright law so that you are unable to modify it legally - even privately.
Fonts are a kind of software, although they are slightly different to programs, but sometimes contain real programs.
Font source code, like a FontForge SFD file or a FontLab VFB file, includes primarily font outline data and “metrics,” inter-letter spacing numerical table data. This is always stored in an unobfuscated machine-readable format, as humans need a machine to intepret and visualise the data to make sense of it. Font source code can secondarily contain information such as guidelines and elements of composite characters (eg, the accents placed over Latin characters like é) and programs that assemble the composite characters and express “sophisticated” substitution behaviours.
Font object code, like a TrueType TTF or OpenType OTF files, do by definition contain all the primarly font data needed for practical use typesetting text, and are not obfuscated so they are still editable with all font development programs. But they do not include much of the secondary information (substitution behaviours are included as “dumb” OpenType substitution lookup tables) if any at all (guidelines.)
The information missing from the object file that is not “essential” - the guidelines are inferrable from the design, and the obfuscated “compiled” information could be decompiled - and the primary information is still useful: A font developer using free software can collaborate with a developer using non-free software, using only font object data.
That is, they will be unable to collaborate fully.
This could be a problem, for example in lacking the same guides they may add slight inconsistencies to the design.
So Christian has done good by publishing the VFB file.
However, font developed with proprietary tools present a “Java Trap” problem.
A Java program can be “compiled” into Java Virtual Machine object code, which is very verbose compared to the processor-specific object code compiled from C programs - so it is possible to “decompile” a Java program and make useful additions fairly easily. However, until 2007 most of the Java Virtual Machine published by Sun was proprietary software, and in January 2008 a few important parts (including the font renderer) are still proprietary. The “Java Trap” is where some software depends on another piece of proprietary software, like any program written in the Java language.
With GPL/LGPL fonts, there is a “hard” requirement to distribute source code and build scripts, and with OFL fonts, there is a “soft” social expectation by some people that its a good thing to do. In either case, publishing the source code for fonts is good, but publishing source code for fonts in a proprietary format is a trap - to make use of these font sources means being trapped into using proprietary software like Fontlab.
I will not fall into that trap, because I know I cannot use proprietary software like Fontlab in good conscience.
To use general purpose proprietary software means betraying everyone in the world, including you reading this, because I cannot share that software with people I’d like to share it with - which is you. Worse, it also means giving up my freedom to understand and change the software on my computer, or get anyone I want to hire to do so - and it means asking you to do the same to yourself. These two aspects of proprietary software, sharing and improving being banned, are anti-social problems that the free software movement aims to solve - and is well on the way to solving. Anyone can help, including you, by talking about the issue of software freedom and each month using free software a little bit more and proprietary software a little bit less.
When developing things collaboratively in a community, if that community is to be called “open” or “free,” it is essential that the community does not exclude people using free software.
Designers don’t need to work exclusively with free tools to collaborate with free software projects - although they ought to - but they do need to use unrestricted file formats. FontLab VFBs are not free formats.
Since most font developers use proprietary tools than free ones, I am concerned that if using it is encouraged, font developers using free software will be left out.
So should fonts in “the Fontlab trap” be rejected from community collaboration projects like Open Font Library and Fontly?
I am wary of this since it is against the spirit of collaboration, in essence.
Also, since most font developers use FontLab today and are unlikely to switch to a free program in the near future unless they change their values of features above freedom, I am concerned that saying “using exclusively free software is essential” will alienate them and drive away those otherwise interested in collaboration.
Long term, I think there is a solution, but I am not sure how to best proceed in the short term. Perhaps it is best to permit this activity in the short term while criticising it, and when it is practically possible to avoid it, start rejecting it.
But I am concerned that the community will be able to switch to rejecting it if we do not form a culture of doing so now. This seems similar to the strategy envisioned when the LGPL was written, and IMO this hasn’t been as effective to switch away from as a “GPL with additional permissions on a per-project basis” would have been. Today the GNU project asks people not to use the LGPL as the GPL ensures more freedom, but it remains popular.
The long term solution is clear though: fully free formats for font source code.
There are some good candidates for this.
The XML schema “UFO” developed by the Robofab project could be a free format, suitable for FontForge-FontLab collaboration since both programs already read and write it, but I’m not sure it technically can encode all the information that is encoded in a VFB file.
The ‘Unix style text format’ “SFD” developed by the George Williams as part of the FontForge project could be a suitable too, if FontForge ignores data in an SFD it doesn’t understand, and then the format is extended to encode all the information that is encoded in a VFB file, and then a FontLab python script is developed that exports all the source information into that format, like the Robofab UFO exporter already does (mostly?)
While data-fully-inclusive and free source file formats that work with FontLab are being developed for tomorrow, the LGPL and GPL require that source code (including full build scripts) be distributed with object code, today.
So developers of fonts under those licenses who use FontLab are required to distribute the full VFBs and the complete set of build scripts that they used to develop the font. (I have contacted Christian Robertson about this by commenting on his blog - I trust its a genuine mistake that the build scripts are incomplete :-) - by leaving a comment on the blog post that published his version of the font.)
When a suitable format arrives, the Open Font Library could in the future require source to be made available in that format and reject VFB files.
Until then, given everyone is required to redistribute non-free-file-format sources with font object files (TTF/OTF) and given that the Open Font Library should accept such fonts, I suggest the Open Font Library makes a clear statement that using proprietary development tools is antisocial and distribute that statement with those fonts.
This is obviously my personal opinion, and I think that all the people involved with the Open Font Library at this stage ought to decide things in a democratic way. So I think we ought to establish some kind of legal infrastructure to appoint a leadership committee and identify genuine Open Font Library members and count votes over these issues.
Also, I’m aware of the Debian project having some good democratic tools to identify people and count votes, and processes for stating issues and voting on them. MJ Ray has a lot of experience about this, and he lives near me geographically so I hope to meet him face to face this month to discuss. Nicolas Spalinger is also active in the Debian font project although I don’t know if he’s a “Debian Developer” officially.
The Software Freedom Law Center’s light weight “Conservancy” seems an excellent way to go about the legal side:
The Software Freedom Conservancy is an organization composed of Free and Open Source Software (FOSS) projects. As a fiscal sponsor for FOSS projects, the Conservancy provides member projects with free financial and administrative services, but does not involve itself with technological and artistic decisions.
By joining the Conservancy, member FOSS projects obtain the benefits of a formal legal structure while keeping themselves focused on software development. These benefits include, most notably, protection from personal liability for project developers. Another benefit of joining the Conservancy is that projects can use it to hold assets, which are managed by the Conservancy on behalf of and at the direction of the project. The Conservancy is a tax-exempt 501(c)(3) organization, so member projects can receive tax-deductible donations to the extent allowed by law. To make a donation to the Conservancy or to its member projects, please visit our donations page.
If you think your FOSS project might benefit from joining the Conservancy, please contact us.
The Open Font Library would also get the ability to accept donations to the project, and the ability to seek legal advice from real lawyers about licensing issues such as this. Those 2 things in itself make joining the conservancy worthwhile IMO.
On the other hand, we could appoint a benevolent dictator, like in the Linux Kernel and Python Language projects, which I guess at the moment is Jon Phillips ;-)
I’m personally not keen on that, but if the Open Font Library can’t muster enough interest in democratic process, how else will it resolve such policy/political issues?
(This blog post was initially written as a mailing list post to the Open Font Library mailing list in the thread “new release of the Ubuntu titling font” and additional information is available in the mailing list archives.)

The Font Source Code by David Crossland, except the quotations and unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
Comments
6 Responses to “Font Source Code”
Leave a Reply

¿Por qué no te callas? :-)
this was supposed to be a joke.
seriously: i think your discourse gets very extreme very fast, and this makes it difficult for some people to collaborate with the movement you claim to represent.
Sorry to not understand: This being the statement about how it isn’t essential to use free software? Since I’m sincere that it is, I’m confused about that joke. Or is the joke the portugese comment you left?
:-)
Also, there are two larger overall movements here and its important to distinguish them.
I’m part of the software freedom movement; many people including yourself are in the open source movement. The two movements are separate movements with different views and goals, although the two work together on many practical projects and have a lot of overlap.
Is the “open font” movement about “open source” or “software freedom”?
I don’t know.
This is why I think the Open Font Library should vote on each issue as it arises.
As always, I’m not trying to persuade you, just stating my views so I hope you understand them better; I think I understand your views and respect your right to hold them and that we simple disagree on this issue.
Respectfully, Dave
Sorry to not understand: This being the statement about how it isn’t essential to use free software? Since I’m sincere that it is, I’m confused about that joke. Or is the joke the portugese comment you left? :-)
ok, you didn’t get the joke, sorry. the king-juan-carlos-vs-hugo-chávez-episode and jc’s sentence (in spanish, btw) were probably not so big in the media in europe as they were here. nevermind. if you are really really curious, read the wikipedia page explaining the episode and try to draw the parallels yourself…
:-)
Also, there are two larger overall movements here and its important to distinguish them.
I’m part of the software freedom movement; many people including yourself are in the open source movement. The two movements are separate movements with different views and goals, although the two work together on many practical projects and have a lot of overlap.
i’m not part of any movement, i am an independent type-designer.
Is the «open font» movement about «open source» or «software freedom»?
I don’t know.
well, i know one thing: it’s not about type and typography.
This is why I think the Open Font Library should vote on each issue as it arises.
the open font library and the “free font movement” have little importance in the big picture: they don’t create new fonts.
these “movements” would be doing a much better job raising funds to comission new fonts from skilled type-designers.
with all the fuss, nobody said a word about paying christian for the work he has done, or about comissioning another designer to continue from where he has stopped.
As always, I’m not trying to persuade you, just stating my views so I hope you understand them better; I think I understand your views and respect your right to hold them and that we simple disagree on this issue.
Respectfully, Dave
let me see if i can get it right:
you want type-designers to release their work under free-licenses and to embrace free software
you criticize, offend and marginalize them if they don’t do so
you call their culture “unsustainable”, but you don’t offer a sustainable alternative
you call them “unethical”, failing to understand that they just have a different ethic
you call them “anti-social”, failing to see how anti-social this attitude itself is.
now you want to talk about respect – ok. here’s how i see it:
a. if you invite someone to sit at the table with you, you shouldn’t offend this person and make him/her feel unconfortable.
b. if you don’t like someone, don’t invite him to sit at the table with you.
i don’t feel comfortable at your “free font movement” table, and none of my friends are sitting on the “open font library” table, so i am standing up to go work alone, in the peaceful and silent table of my studio.
call me anti-social, if you want; i am a type-designer, not a politician – i will take it as a compliment.
cheers, - gustavo.
Is the «open font» movement about «open source» or «software freedom»?
From my personal perspective (which is expressed in the OFL) it’s much more about enabling freedom, literacy and written word empowerment that pure economics. I am not in favour of the “open source” approach but i’m in favour of “open font”s as the expression “free font” is still too ambiguous. I realize that some may have other goals.
You’re right that setting up a open democratic process will help.
Clear guidelines will explain that we’re not out to forcefully disrupt what other people are doing and that they have have a right to their views and their methodology. But there are other ways to explore.
Gustavo, sad to see you feel offended and defensive. Can I suggest you take a look at this video: http://www.river-valley.tv/conferences/tex/tug2007/media/Jonathan_Kew_1/
It may explain better the perspectives of SIL on this. It’s about empowering the languages of the world not destroying the font foundries. Of course this doesn’t represent everyone’s goals in the community but that’s the views of the non-profit who has released the most new open fonts over the past few years.
IMHO the good news is that non-profits and for-profits can find ways to collaborate in these efforts.
To this intent I have contacted Canonical about the future of Ubuntu-title also mentioning need for funding and bounties while pointing to the work on Christian.
To return the joke: E pur si muove! :-)
I hope to reply in depth as soon as possible.
Basically I think that we can work on the same table even though we have different politics; we are all politicians, after all. I’m just as uncomfortable with your views as you as with mine, and I hope we can put them aside and work together. An important aspect of a free society is one where we both get to express our views and discuss our differences until the sunrise; I really enjoy it when you explain your views in depth :-)