Skip to content
Adobe Font Development Kit for OpenType
Branch: develop
Clone or download
miguelsousa Merge pull request #792 from adobe-type-tools/update-buildcff2vf
[buildcff2vf] Major rewrite for sparse font support
Latest commit 168efdf May 15, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci CircleCI enhancements [skip travis] [skip appveyor] Mar 15, 2019
c explicitly zero out new memory before we initialize it May 9, 2019
docs Glyph name length is same as Named glyph class length May 15, 2019
python/afdko [buildcff2vf] Update to match change in fontTools from version 3.41.0… May 14, 2019
tests Formatting fixes and minor cleanups May 10, 2019
.appveyor.yml Remove static code analysis step in AppVeyor builds [skip travis] Mar 8, 2019
.clang-format tell clang-format not to sort includes Jul 30, 2018
.codecov.yml turning off the codecov status checks too Feb 1, 2018
.coveragerc coverage: run in parallel & combine afterwards Jul 25, 2018
.gitattributes Add plist format to gitattributes Sep 7, 2018
.gitignore updated various references to and xcode4 to use … Sep 29, 2018
.prospector.yaml add prospector.yaml file for Codacy Feb 2, 2018
.pyup.yml Update pyup config Apr 17, 2019
.travis.yml Remove static code analysis step in Travis builds [skip appveyor] Mar 9, 2019
CPPLINT.cfg mute cpplint runtime/casting messages for now Aug 17, 2018 [License] Change file extension. Update copyright string. Jan 30, 2018 Update NEWS with version 2.8.9 changes [skip ci] Apr 29, 2019 Update README notes on the old AFDKO [skip ci] Mar 21, 2019
pyproject.toml Unpin wheel Feb 19, 2019
requirements-dev.txt Bump minimum dev requirements to currently released versions Feb 20, 2019
requirements.txt [buildcff2vf] Update to match change in fontTools from version 3.41.0… May 14, 2019
setup.cfg [setup.cfg] Ignore tostring/fromstring DeprecationWarnings Oct 20, 2018 Formatting fixes and minor cleanups May 10, 2019

Travis Appveyor CircleCI Codacy Coverage PyPI

Adobe Font Development Kit for OpenType (AFDKO)

The AFDKO is a set of tools for building OpenType font files from PostScript and TrueType font data.

This repository contains the data files, Python scripts, and sources for the command line programs that comprise the AFDKO. The project uses the Apache 2.0 OpenSource license.

Please refer to the AFDKO Overview for a more detailed description of what is included in the package.

Please see the wiki for additional information, such as links to reference materials and related projects.


⚠️ WARNING ⚠️ After June 30th 2019 the AFDKO will officially only support Python 3.6 or later. See #741 for details.

The AFDKO requires Python 2.7, 3.6 or later.

Releases are available on the Python Package Index (PyPI) and can be installed with pip.


Option 1 (Recommended)

  • Create a virtual environment:

    • Python 3.6+

        python3 -m venv afdko_env
    • Python 2.7

        pip install --user virtualenv
        python -m virtualenv afdko_env
  • Activate the virtual environment:

    • macOS & Linux

        source afdko_env/bin/activate
    • Windows

  • Install afdko:

      pip install afdko

Installing the afdko inside a virtual environment prevents conflicts between its dependencies and other modules installed globally.

Option 2

Install afdko globally:

pip install --user afdko


Use the -U (or --upgrade) option to update the afdko (and its dependencies) to the newest stable release:

pip install -U afdko

To get pre-release and in-development versions, use the --pre flag:

pip install -U afdko --pre


To remove the afdko package use the command:

pip uninstall afdko

Build from source

First you must have installed the development tools for your platform.

On the Mac, install these with:

xcode-select --install

On Linux, install these with:

apt-get -y install python2.7
apt-get -y install python-pip
apt-get -y install python-dev

On Windows, you need Visual Studio 2017.

To build the afdko from source, clone the afdko GitHub repository, ensure the wheel module is installed (pip install wheel), then cd to the top-level directory of the afdko, and run:

pip install .


It's not possible to install the afdko in editable/develop mode using pip install -e . ; this is because the toolkit includes binary C executables which tries to install in the bin/ (or Scripts/) folder, however this process was only meant to be used with text-based scripts (either written in Python or a shell scripting language). To work around this problem (which really only impacts the few core afdko developers who need to get live feedback as they modify the source files) you can use alternative methods like exporting a PYTHONPATH, using a .pth file or similar hacks. For further details read this comment.

Major changes from version 2.5.x

  • The AFDKO has been restructured so that it can be installed as a Python package. It now depends on the user's Python interpreter, and no longer contains its own Python interpreter.

  • Two programs, IS and checkoutlines were dropped because their source code could not be open-sourced. These tools are available in release version 2.5.65322 and older.


If you install the old AFDKO as well as the new PyPI afdko package, the tools from the newer version will take precedence over the older. This happens because pip adds the afdko's package path at the beginning of the system's PATH environment variable, whereas the old installer adds it at the end; this modification to PATH is not undone by the uninstaller. If you want to completely remove the path to the newer version, you will have to edit the PATH. On the Mac, this means editing the line in your login file that sets the PATH variable. On Windows, this means editing the PATH environment variable in the system's Control Panel.

You can’t perform that action at this time.