Skip to content
Choose a tag to compare

This release falls on the 20th anniversary of the first release of FontForge back in 2000. It brings a wide range of minor tweaks and bug fixes for the user interface and file format handlers and a special splash screen to commemorate the big day.

Choose a tag to compare

Significant changes include the following.

  • FontForge now has much improved stroke expansion functionality. The main change is that it actually works most of the time. New features include support for arbitrary convex nibs and the miter-clip and arc join styles from SVG 2. All functionality is accessible from the Python and native APIs. (By @skef.)
  • Remove overlap handles certain important edge cases better. (By @skef and @frank-trampe.)
  • The Python API now has a function called genericGlyphChange that matches the "Change Glyph" command in the GUI. See #4133 for more details. (By @skef.)
  • The Python API now has functions for getting Unicode script and for interrogating glyph boundaries. (By @ctrlcctrlv.)
  • One can now use text flags (rather than just numerical flags) when opening a font file via the Python API. (By @skef.)
  • UFO import now outputs the note field properly. (By @skef.)
  • SVG import is much more robust. (By @skef.)
  • We have dropped most gnulib and autotools logic in favor of CMake, which dramatically simplifies the build system and just as dramatically improves build time. (By @jtanx.)
  • As part of the switch to CMake, per the deprecation of Python 2, and per the lack of objections to the proposal on the mailing list, we have dropped support for building FontForge with Python 2 support. The non-build-system Python 2 code remains, but it is neither tested nor maintained nor supported and is likely to follow a trajectory of decay and then removal.
  • Documentation is now rendered in Sphinx, which makes maintenance and improvement easier. (By @jtanx.)
  • Translations now happen on crowdin, which makes contributions easier. (By @jtanx.)
  • We got such a contribution for Croatian. (By @milotype.)
  • Character view point coloring is more consistent, and preview fills support transparency. (By @skef.)
  • The user can now move and close tabs in the character view. (By @ctrlcctrlv.)
  • The metrics view now allows for entry of negative kerning values and runs a bit more smoothly. (By @ctrlcctrlv.)
  • There is now a warning when a user is about to discard an unsaved script. (By @ctrlcctrlv.)
  • We fixed bugs all over, as always, with particular attention given to the metrics view, Python, Spiro, and high-resolution displays.

Notes on build system changes:

  • libgutils and libgunicode have been combined into libfontforge
  • libgdraw and libfontforgeexe have been combined into the fontforge executable itself
  • No development files are installed (headers, or pkg-config). This is because we do not provide a stable API or ABI to work against, nor are the headers actually well configured to be used externally. We are also not aware of any maintained product that compiles against FontForge itself.
Choose a tag to compare

Along with the usual bugfixes, there have been a couple of new features worth calling out:

  • Added Croatian translation
  • Added user decompositions
  • New graphic for the splash/about screen
  • Images embedded in SFDs are now serialised as PNGs
    • This is enabled by default, but may be turned off with the 'WritePNGInSFD' option.
    • A new tag is used to identify this mode; 'Image2', instead of 'Image'
    • This requires FontForge to be compiled with libpng support. If not compiled with libpng, FontForge will revert to the old method of serialising RLE encoded raw images.

As part of an ongoing effort to clean up the code base, there have additionally been multiple build system changes:

  • Python 2 support is deprecated. It is strongly recommended to build with Python 3 support. Python 2 support will be removed in a future release.
  • Both the Windows and Mac builds are now built with Python 3 instead of Python 2.
  • The minimum supported version for the Mac build is now MacOS Sierra (10.12)
  • FontForge no longer uses gnulib
  • collab support has been removed
  • The build system now expects libuninameslist to be present, and will fail if it is not found. Building without libuninameslist must be explcititly specified using --without-libuninameslist
Choose a tag to compare

This is a bugfix focused release.

Most notably, it fixes a crash on MacOS when browsing files.

Plugin support and direct http/ftp browsing support has also been removed.

Choose a tag to compare

This release, the first since 2017, includes countless small bug fixes and a few significant features.

  • Complete GDK support, enabled by default on Windows and Macintosh, from @jtanx.
  • Enhanced UFO 3 support, with separate import/export paths for UFO 2 and UFO 3, from @frank-trampe. See the technical bulletin here for more information.
  • Improved feature file support, from @skef and @khaledhosny.
  • WOFF2 support, from @jtanx.
  • Unicode 12.1.0 support, from @JoesCat.
  • Extended Python interfaces, from @skef.
Choose a tag to compare

This incorporates a large number of adjustments and fixes and adds packages for newer Ubuntu releases.

Debian and Ubuntu packages are available from Launchpad here.

Choose a tag to compare

This release introduces a new icon set, new functionality for custom icon selection graphics, support for GlyphOrderAndAliasDB files, and support for Unicode 9.0.

It also fixes a number of small bugs relating to certain bitmap typefaces, stroke expansion, handling of CID ranges, and the user interface.

There are two tags and package sets. 20161004 is the original release, and 20161005 adds support for Ubuntu 16.04 and 16.10.

The Debian/Ubuntu packages are on Launchpad.

Choose a tag to compare

This fixes a number of bugs and crashes and adds a few small features. Most importantly, this release comes with a working Macintosh package.

Mac users must be running Mac OS X version 10.10 or later.

Please consider supporting ongoing development with a donation.

Choose a tag to compare


This was a pre-release, so unless you are a developer, ignore it :)

Choose a tag to compare

This fixes a few bugs, including some in U. F. O. kerning classes and FreeType rasterization, and adds a Korean translation.

Packages for Debian and Ubuntu are available on Launchpad.

Note that, for currently unknown reasons, the Macintosh build published here quits immediately after launching from the Finder. Launch it from the Terminal (/Applications/ instead.