ref: 6bbbbc1523a3a4f81aac30d7a538875546ca4b9c
parent: ce27fd56fab737dadc1780bbfb0c6b192cfa6d8b
author: Werner Lemberg <[email protected]>
date: Sun Jul 4 03:37:56 EDT 2010
TrueType hinting is no longer patented. * include/freetype/config/ftoption.h, devel/ftoption.h (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define. (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine. * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated. * docs/TRUETYPE, docs/PATENTS: Removed.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2010-07-04 Werner Lemberg <[email protected]>
+
+ TrueType hinting is no longer patented.
+
+ * include/freetype/config/ftoption.h, devel/ftoption.h
+ (TT_CONFIG_OPTION_BYTECODE_INTERPRETER): Define.
+ (TT_CONFIG_OPTION_UNPATENTED_HINTING): Undefine.
+
+ * docs/CHANGES, docs/INSTALL, include/freetype/freetype.h: Updated.
+ * docs/TRUETYPE, docs/PATENTS: Removed.
+
2010-07-04 suzuki toshiya <[email protected]>
Check error value by `FT_CMap_New'.
--- a/devel/ftoption.h
+++ b/devel/ftoption.h
@@ -488,8 +488,7 @@
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */
- /* a bytecode interpreter in the TrueType driver. Note that there are */
- /* important patent issues related to the use of the interpreter. */
+ /* a bytecode interpreter in the TrueType driver. */
/* */
/* By undefining this, you will only compile the code necessary to load */
/* TrueType glyphs without hinting. */
@@ -504,10 +503,13 @@
/* */
/* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */
/* of the TrueType bytecode interpreter is used that doesn't implement */
- /* any of the patented opcodes and algorithms. Note that the */
- /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define */
- /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define */
- /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
+ /* any of the patented opcodes and algorithms. The patents related to */
+ /* TrueType hinting have expired worldwide since May 2010; this option */
+ /* is now deprecated. */
+ /* */
+ /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */
+ /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */
+ /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
/* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */
/* */
/* This macro is only useful for a small number of font files (mostly */
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -1,11 +1,21 @@
-CHANGES BETWEEN 2.3.12 and 2.3.13
+CHANGES BETWEEN 2.3.12 and 2.4.0
I. IMPORTANT CHANGES
+ - Since May 2010, all patents regarding the TrueType bytecode
+ interpreter have expired worldwide. Consequently, we now define
+ TT_CONFIG_OPTION_BYTECODE_INTERPRETER by default (and undefine
+ TT_CONFIG_OPTION_UNPATENTED_HINTING).
+
- A new function `FT_Library_SetLcdFilterWeights' is available to
adjust the filter weights set by `FT_Library_SetLcdFilter'.
+ II. MISCELLANEOUS
+ - Thanks to many reports from Robert Święcki, FreeType's stability
+ in handling broken or damaged fonts could be much improved.
+
+
======================================================================
CHANGES BETWEEN 2.3.11 and 2.3.12
@@ -15,6 +25,7 @@
- For `FT_Open_Face', new parameters are available to ignore
preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and
FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY.
+
II. MISCELLANEOUS
--- a/docs/INSTALL
+++ b/docs/INSTALL
@@ -7,14 +7,8 @@
I. Normal installation and upgrades
===================================
- 1. Native TrueType Hinting
+ 1. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
- Native TrueType hinting is disabled by default[1]. If you really
- need it, read the file `TRUETYPE' for information.
-
-
- 2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
-
Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or
upgrade FreeType 2 on a Unix system. Note that you *need* GNU
Make for automatic compilation, since other make tools won't work
@@ -23,15 +17,15 @@
GNU Make VERSION 3.80 OR NEWER IS NEEDED!
- 3. On VMS with the `mms' build tool
+ 2. On VMS with the `mms' build tool
See `INSTALL.VMS' for installation instructions on this platform.
- 4. Other systems using GNU Make
+ 3. Other systems using GNU Make
On non-Unix platforms, it is possible to build the library using
- GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]!
+ GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[1]!
This methods supports several compilers on Windows, OS/2, and
BeOS, including MinGW, Visual C++, Borland C++, and more.
@@ -38,7 +32,7 @@
Instructions are provided in the file `INSTALL.GNU'.
- 5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
+ 4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
We provide a small number of `project files' for various IDEs to
automatically build the library as well. Note that these files
@@ -49,7 +43,7 @@
directory, where <system> stands for your OS or environment.
- 6. From you own IDE, or own Makefiles
+ 5. From you own IDE, or own Makefiles
If you want to create your own project file, follow the
instructions given in the `INSTALL.ANY' document of this
@@ -66,9 +60,7 @@
----------------------------------------------------------------------
-[1] More details on: http://www.freetype.org/patents.html
-
-[2] make++, a make tool written in Perl, has sufficient support of GNU
+[1] make++, a make tool written in Perl, has sufficient support of GNU
make extensions to build FreeType. See
http://makepp.sourceforge.net
@@ -78,8 +70,8 @@
----------------------------------------------------------------------
-Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by
-David Turner, Robert Wilhelm, and Werner Lemberg.
+Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
+by David Turner, Robert Wilhelm, and Werner Lemberg.
This file is part of the FreeType project, and may only be used,
modified, and distributed under the terms of the FreeType project
--- a/docs/PATENTS
+++ /dev/null
@@ -1,27 +1,0 @@
-
- FreeType Patents Disclaimer
- August 1999
-
-
-
-WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE
-RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF
-FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER
-COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS.
-
-FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE
-PATENTS PAGE AT THE FOLLOWING WEB ADDRESS:
-
- http://www.freetype.org/patents.html
-
-WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL
-UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE
-CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR
-ANSWER ON THE SUBJECT.
-
-PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S
-BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE
-COST OF RENDERING QUALITY.
-
-
---- end of PATENTS ---
--- a/docs/TRUETYPE
+++ /dev/null
@@ -1,40 +1,0 @@
-How to enable the TrueType native hinter if you need it
--------------------------------------------------------
-
- The TrueType bytecode interpreter is disabled in all public releases
- of the FreeType packages for patents reasons; see
-
- http://www.freetype.org/patents.html
-
- for more details.
-
- However, many Linux distributions do enable the interpreter in the
- FreeType packages (DEB/RPM/etc.) they produce for their platforms. If
- you are using TrueType fonts on your system, you most probably want to
- enable it manually by doing the following:
-
- - open the file `include/freetype/config/ftoption.h'
-
- - locate a line that says:
-
- /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
-
- - change it to:
-
- #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
- These steps must be done _before_ compiling the library.
-
-------------------------------------------------------------------------
-
-Copyright 2003, 2005, 2006 by
-David Turner, Robert Wilhelm, and Werner Lemberg.
-
-This file is part of the FreeType project, and may only be used,
-modified, and distributed under the terms of the FreeType project
-license, LICENSE.TXT. By continuing to use, modify, or distribute this
-file you indicate that you have read the license and understand and
-accept it fully.
-
-
---- end of TRUETYPE ---
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -488,8 +488,7 @@
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */
- /* a bytecode interpreter in the TrueType driver. Note that there are */
- /* important patent issues related to the use of the interpreter. */
+ /* a bytecode interpreter in the TrueType driver. */
/* */
/* By undefining this, you will only compile the code necessary to load */
/* TrueType glyphs without hinting. */
@@ -497,7 +496,7 @@
/* Do not #undef this macro here, since the build system might */
/* define it for certain configurations only. */
/* */
-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
+#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
/*************************************************************************/
@@ -504,10 +503,13 @@
/* */
/* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */
/* of the TrueType bytecode interpreter is used that doesn't implement */
- /* any of the patented opcodes and algorithms. Note that the */
- /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define */
- /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define */
- /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
+ /* any of the patented opcodes and algorithms. The patents related to */
+ /* TrueType hinting have expired worldwide since May 2010; this option */
+ /* is now deprecated. */
+ /* */
+ /* Note that the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* */
+ /* if you define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, */
+ /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */
/* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */
/* */
/* This macro is only useful for a small number of font files (mostly */
@@ -544,7 +546,7 @@
/* ... */
/* } */
/* */
-#define TT_CONFIG_OPTION_UNPATENTED_HINTING
+/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */
/*************************************************************************/
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -3834,6 +3834,9 @@
/* 1~if this is a TrueType font that uses one of the patented */
/* opcodes, 0~otherwise. */
/* */
+ /* <Note> */
+ /* Since May 2010, TrueType hinting is no longer patented. */
+ /* */
/* <Since> */
/* 2.3.5 */
/* */
@@ -3860,6 +3863,9 @@
/* The old setting value. This will always be false if this is not */
/* an SFNT font, or if the unpatented hinter is not compiled in this */
/* instance of the library. */
+ /* */
+ /* <Note> */
+ /* Since May 2010, TrueType hinting is no longer patented. */
/* */
/* <Since> */
/* 2.3.5 */
--- a/include/freetype/ftmodapi.h
+++ b/include/freetype/ftmodapi.h
@@ -397,8 +397,8 @@
*
* FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
* The library implements a bytecode interpreter that covers
- * the full instruction set of the TrueType virtual machine.
- * See the file `docs/PATENTS' for legal aspects.
+ * the full instruction set of the TrueType virtual machine (this
+ * was governed by patents until May 2010, hence the name).
*
* @since:
* 2.2