# FontForge Licensing

FontForge is available as a whole under the terms of the [GNU GPL](http://www.gnu.org/copyleft/gpl.html), version
3 or any later version. 
However, almost all of its parts are available under the "revised BSD license" ([pdf](http://www.law.yi.org/~sfllaw/talks/bsd.pdf)) because FontForge was mostly written by George Williams, using that license.

The Revised BSD License is very permissive, and allows for code to be combined with other code under other licenses. 
There are many useful libraries available under copyleft libre licenses, such as the LGPL and GPL, which FontForge started to use in 2012. 
For example, Pango and Cairo are available under the LGPL, and gnulib is available under the GPL.
Advanced features added since 2012 are licensed by their individual developers under the GPLv3.

## How To License Contributions

- Contributions to existing files must be made under the existing license for that file
- Contributions in new files should be made under the original Revised BSD License, but any license compatible with the GPLv3 is fine

The majority of FontForge was written by George Williams and published under the revised BSD license. 
This license is permitted to be compiled with added GNU GPL source code to build a FontForge executable program.

FontForge was known from 2000 to 2004 as PfaEdit, and was written and developed primarily by George Williams from 2000 until 2012.
It is published as free/libre software and distributed under the 3-clause BSD license. 
Later, when development slowed down and then stopped in 2012, the FontForge community began to take an interest in improving FontForge further with fixes, modifications, libraries, patches, and other additions which have been introduced under the same, or different, yet, compatible licenses.

## Copyright Notices, Contributors, Translators

See [`AUTHORS`](https://github.com/fontforge/fontforge/blob/master/AUTHORS)

## The Revised BSD License used by FontForge

```
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

The name of the author may not be used to endorse or promote
products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
```

## LGPL and GPL

FontForge includes the GPLv3 in the source tree as [COPYING.gplv3](https://github.com/fontforge/fontforge/blob/master/COPYING.gplv3)

You can read the [LGPL](http://www.gnu.org/licenses/lgpl.html) and [GPL](http://www.gnu.org/copyleft/gpl.html) on the GNU website.

## Source Files

### FontForge Files Using The Revised BSD License

These files were created under the Revised BSD License:
```
fontforge-20120731-b/
install-sh

fontforge-20120731-b/fontforge:
alignment.c		fontinfo.c		savefont.h
anchorsaway.c		fontview.c		savefontdlg.c
asmfpst.c		fontviewbase.c		scriptfuncs.h
autohint.c		freetype.c		scripting.c
autosave.c		freetypeui.c		scripting.h
autotrace.c		ftdelta.c		scriptingdlg.c
autowidth.c		fvcomposite.c		scstyles.c
autowidth2.c		fvfonts.c		scstylesui.c
autowidth2.h		fvfontsdlg.c		sd.h
autowidth2dlg.c		fvmetrics.c		search.c
basedlg.c		fvmetrics.h		search.h
baseviews.h		fvmetricsdlg.c		searchview.c
bdfinfo.c		glyphcomp.c		sfd.c
bitmapchar.c		gotodlg.c		sfd1.c
bitmapcontrol.c		groups.c		sfd1.h
bitmapcontrol.h		groups.h		sfddiff.c
bitmapdlg.c		groupsdlg.c		sflayout.c
bitmapview.c		histograms.c		sflayoutP.h
bvedit.c		http.c			sftextfield.c
charinfo.c		ikarus.c		sftextfieldP.h
charview.c		images.c		showatt.c
clipnoui.c		justifydlg.c		simplifydlg.c
clipui.c		kernclass.c		spiro.c
combinations.c		layer2layer.c		splashimage.c
configure-fontforge.h	lookups.c		splinechar.c
contextchain.c		lookupui.c		splinefill.c
cursors.c		macbinary.c		splinefont.c
cvaddpoints.c		macenc.c		splinefont.h
cvdebug.c		macencui.c		splineorder2.c
cvdgloss.c		math.c			splineoverlap.c
cvexport.c		mathconstants.c		splinerefigure.c
cvexportdlg.c		metricsview.c		splinesaveafm.c
cvfreehand.c		mm.c			splinesave.c
cvgetinfo.c		mm.h			splinestroke.c
cvgridfit.c		mmdlg.c			splineutil.c
cvhand.c		namehash.h		splineutil2.c
cvhints.c		namelist.c		start.c
cvimages.c		nonlineartrans.c	startnoui.c
cvimportdlg.c		nonlineartrans.h	startui.c
cvknife.c		nonlineartransui.c	statemachine.c
cvpalettes.c		noprefs.c		stemdb.c
cvpointer.c		nouiutil.c		stemdb.h
cvruler.c		nowakowskittfinstr.c	svg.c
cvshapes.c		tilepath.c
cvstroke.c		openfontdlg.c		tottf.c
cvtranstools.c		palmfonts.c		tottfaat.c
cvundoes.c		parsepdf.c		tottfgpos.c
delta.h			parsepfa.c		tottfvar.c
deltaui.c		parsettf.c		transform.c
displayfonts.c		parsettfatt.c		ttf.h
dumpbdf.c		parsettfbmf.c		ttfinstrs.c
dumppfa.c		parsettfvar.c		ttfinstrs.h
edgelist.h		PfEd.h			ttfinstrsui.c
edgelist2.h		plugins.c		ttfspecial.c
effects.c		plugins.h		ufo.c
effectsui.c		prefs.c			uiinterface.h
encoding.c		print.c			uiutil.c
encodingui.c		print.h			unicoderange.c
featurefile.c		problems.c		unicoderange.h
fffreetype.h		psfont.h		utils.c
ffpython.h		psread.c		views.h
fontforge.h		python.c		windowmenu.c
fontforgeui.h		pythonui.c		winfonts.c
fontforgevw.h		savefont.c		woff.c

fontforge-20120731-b/gdraw:
choosericons.c		gfiledlg.c		gradio.c
colorP.h		ggadgetP.h		gresedit.c
ctlvalues.c		ggadgets.c		gresource.c
drawboxborder.c		ggroupbox.c		gresourceimage.c
gaskdlg.c		ghvbox.c		gresourceP.h
gbuttons.c		gimagebmpP.h		growcol.c
gchardlg.c		gimageclut.c		gsavefiledlg.c
gcolor.c		gimagecvt.c		gscrollbar.c
gcontainer.c		gimagepsdraw.c		gspacer.c
gdraw.c			gimagewriteeps.c	gtabset.c
gdrawable.c		gimagexdraw.c		gtextfield.c
gdrawbuildchars.c	gkeysym.c		gtextinfo.c
gdrawerror.c		glist.c			gwidgetP.h
gdrawgimage.c		gmatrixedit.c		gwidgets.c
gdrawP.h		gmenu.c			gxcdraw.c
gdrawtxt.c		gprogress.c		gxcdrawP.h
gdrawtxtinit.c		gpsdraw.c		gxdrawP.h
gdrawwacomdriver.c	gpsdrawP.h		hotkeys.c
gfilechooser.c		gpstxtinit.c		hotkeys.h

fontforge-20120731-b/gutils:
dynamic.c		gimagereadrgb.c		giofile.c
fsys.c			gimagereadtiff.c	gioftp.c
gcol.c			gimagereadxbm.c		gioftpP.h
gimage.c		gimagereadxpm.c		giofuncP.h
gimagebmpP.h		gimagewritebmp.c	giohosts.c
gimageread.c		gimagewritegimage.c	giomime.c
gimagereadbmp.c		gimagewritejpeg.c	gioP.h
gimagereadgif.c		gimagewritepng.c	giothread.c
gimagereadjpeg.c	gimagewritexbm.c	giotrans.c
gimagereadpng.c		gimagewritexpm.c	gwwintl.c
gimagereadras.c		gio.c

fontforge-20120731-b/inc:
basics.h	gfile.h		gio.h		gwidget.h
charset.h	ggadget.h	gprogress.h	gwwiconv.h
fileutil.h	gicons.h	gresedit.h	intl.h
gdraw.h		gimage.h	gresource.h	ustring.h

fontforge-20120731-b/Packaging:
fontforge.desktop	FontForge.spec		fontforge.xml
FontForge-doc.spec	FontForge.static.spec

fontforge-20120731-b/pycontrib:
excepthook.py

fontforge-20120731-b/Unicode:
char.c		makebuildtables.c	ucharmap.c
dump.c		makeutype.c		usprintf.c
gwwiconv.c	memory.c		ustring.c
```

### FontForge Files Using The GPL Licenses

These files were created under the GPL License:
```
fontforge-20120731-b/
aclocal.m4	configure.dynamic	configure.static.in
config.guess	configure.dynamic.in	ltmain.sh
config.sub	configure.in		Makefile.dynamic.in
configure	configure.static	Makefile.static.in

fontforge-20120731-b/fontforge:
Makefile.dynamic.in	Makefile.static.in

fontforge-20120731-b/gdraw:
Makefile.dynamic.in	Makefile.static.in

fontforge-20120731-b/gutils:
giomime.c	Makefile.dynamic.in	Makefile.static.in

fontforge-20120731-b/inc:
fontforge-config.h.in

fontforge-20120731-b/plugins:
ANALYZE_MAP.COM	Makefile.in

fontforge-20120731-b/Unicode:
Makefile.dynamic.in	Makefile.static.in
```

### FontForge Files Using The Open Group License

```
fontforge-20120731-b/fontforge:
fvimportbdf.c

fontforge-20120731-b/gdraw:
fontP.h

fontforge-20120731-b/inc:
gkeysym.h

### Other Files

These are generated files, or do not have a license specified:

```
fontforge-20120731-b/
LICENSE		README-Unix.html
fontforge.pc.in	README-Mac.html	systemspecific.in
INSTALL		README-unix	VERSION

fontforge-20120731-b/fontforge:
acorn2sfd.c		fontimage.pe		pottitle.patch
autowidth.h		fontlint.1		pua.c
bezctx_ff.c		fontlint.pe		sfddiff.1
bezctx_ff.h		langfreq.c		sfddiff.pe
crctab.c		libffstamp.h		stamp.c
libstamp.pre		stamper.c
diffstubs.c		threaddummy.c
encoding.h		lookups.h		utf8.pot
exelibstamp.pre		MacFontForgeApp.zip
fontforge.1		othersubrs.c		zapfnomen.c
fontimage.1		potmstitle.patch

fontforge-20120731-b/gdraw:
genkeysym.c	gxdraw.c	xkeysyms_unicode.c

fontforge-20120731-b/inc:
chardata.h	dynamic.h	utype.h

fontforge-20120731-b/gutils:
divisors.c

fontforge-20120731-b/plugins:
gb12345.c

fontforge-20120731-b/po:
ca.po  el.po     es.po  it.po  ml.po  ru.po     uk.po  zh_CN.po
de.po  en_GB.po  fr.po  ja.po  pl.po  toengb.c  vi.po  zh_TW.po

fontforge-20120731-b/pyhook:
fontforgepyhook.c	psMatpyhook.c	setup.py.in
loadfontforge.h		README

fontforge-20120731-b/Unicode:
alphabet.c	cjk.c		README.TXT
ArabicForms.c	combiners.h	unialt.c
backtrns.c	utype.c
```
