Technical | How To Install FontForge

This page is step by step guide to installing FontForge for beginners.

Windows

Please see this guide on how to install FontForge on Windows.

Mac OS X

Please see this guide on how to install FontForge on Mac OS X. (To solve copy-paste problems with FontForge and also Inkscape, change the X11 preferences' "Pasteboard" settings to that "Enable syncing" is disabled.)

GNU/Linux

Install the required programs

The parts in the light blue boxes are commands that should be typed (copy and pasted) into your "Terminal" program.

When using Debian or Ubuntu:

sudo aptitude update; sudo aptitude install -y autoconf libtool libpng12-dev zlibc zlib1g-dev libtiff-dev libungif4-dev libjpeg-dev libxml2-dev libuninameslist-dev xorg-dev subversion cvs gettext git libpango1.0-dev libcairo2-dev python-dev uuid-dev libreadline-dev;

and enter your password when prompted.

When using Fedora or Red Hat:

sudo yum update; sudo yum install -y libpng-devel zlib-devel libtiff-devel giflib-devel libjpeg-devel libxml2-devel libuninameslist-devel cairo-devel python-devel cvs git subversion mercurial pango-devel libtool-ltdl-devel libtool-ltdl libtool libuuid-devel readline-devel czmq-devel; sudo yum groupinstall -y x-software-development development-tools;

and enter the root password when prompted.

Download, Compile and Install FontForge Dependencies

First, use the 'change directory' command "cd" to ensure you are in your 'home directory' ("~"). Then make a "source code" folder with the 'make directory' command "mkdir" to keep things tidy. Then change to that directory.

cd ~; mkdir src; cd src;

Using the Git version control program, download the other source code to enable all of FontForge's features: Freetype2 is a text rendering system used to draw fonts on screen; libspiro is the Spiro drawing program that is integrated into FontForge; libuninameslist is a program for looking up descriptions of unicode characters, and libzmq and czmq are programs required for the new real time collaboration feature.

git clone git://git.sv.gnu.org/freetype/freetype2.git; git clone https://github.com/fontforge/libspiro.git; git clone https://github.com/fontforge/libuninameslist.git; git clone https://github.com/zeromq/libzmq.git; git clone https://github.com/zeromq/czmq.git;

These 3 commands change to the libspiro directory, configure, compile and install it:

   cd ~/src/libspiro; ./configure; make -j 4 -k; sudo make install;

These 3 commands change to the libuninameslist directory, configure, compile and install it:

   cd ~/src/libuninameslist; ./configure; make -j 4 -k; sudo make install;

These 3 commands change to the libzmq directory, configure, compile and install it:

   cd ~/src/libzmq; ./autogen.sh; ./configure; make -j 4 -k; sudo make install;

These 3 commands change to the czmq directory, configure, compile and install it:

   cd ~/src/czmq; ./autogen.sh; ./configure; make -j 4 -k; sudo make install;

Download FontForge source code

Typically, you will want to download the latest daily source code, with the "git" version control system, hosted by the GitHub website. To do this, run:

cd ~/src/; git clone https://github.com/fontforge/fontforge.git;

Compile, install and run FontForge

Now configure, compile and install FontForge:

cd ~/src/fontforge/; ./autogen.sh; ./configure --with-freetype=../freetype2; make -j 4 -k; sudo make install; sudo ldconfig;

Finally, run FontForge:

   /usr/local/bin/fontforge;

Updating your source code

You don't have to do all this each time you want to update. Just run the following commands:

cd ~/src/libspiro; make clean; svn up; ./configure; make; sudo make install; cd ~/src/freetype2; git pull; cd ~/src/fontforge; sudo make clean; git pull; ./configure --with-freetype=../freetype2; make -j 4 -k; sudo make install; sudo ldconfig;