=====================================================================
IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT

  During development that followed the 2.1.4 release, some
  unfortunate changes to the source code did break *binary*
  compatibility of the library with previous releases. This had the
  potential to severely break any system where a version of FreeType
  was installed from recent CVS sources.

  We did undo the changes, and everything should be completely
  compatible now. However, due to other subtleties too long to be
  explained here, there may still be a tiny risk that the current
  sources break some rare applications.

  This package is thus FreeType 2.1.5 release candidate 1 and has
  been released for testing. If you install it on your system, please
  be certain to be able to install a previous version in the case
  where something would go wrong.

  We will make the official 2.1.5 release as soon as we're convinced
  that it will not break anything.


IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
=====================================================================




  Special notes to Unix users
  ===========================

  Please  read  the file  "docs/UPGRADE.UNX".   It contains  important
  information regarding the installation  of FreeType on Unix systems,
  especially GNU based operating systems like GNU/Linux.

  FreeType 2's  library is called `libfreetype',  FreeType 1's library
  is called `libttf'.  They are *not* compatible!


  FreeType 2.1.5
  ==============

  Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION.

  Read the files "docs/INSTALL" for installation instructions.

  Note  that  the FreeType  2  documentation  is  now available  as  a
  separate package from our sites.  See:

    ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.5.tar.bz2
    ftp://ftp.freetype.org/pub/freetype2/ftdocs-2.1.5.tar.gz
    ftp://ftp.freetype.org/pub/freetype2/ftdoc215.zip


  Bugs
  ====

  Please report bugs by  e-mail to `devel@freetype.org'.  Don't forget
  to send  a detailed explanation of  the problem --  there is nothing
  worse  than receiving  a terse  message that  only says  "it doesn't
  work".


  Enjoy!


    The FreeType Team
