diff --git a/.mailmap b/.mailmap
index c406e23..52d0506 100644
--- a/.mailmap
+++ b/.mailmap
@@ -7,3 +7,4 @@
 Suzuki, Toshiya (鈴木俊哉) <mpsuzuki@hiroshima-u.ac.jp> suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
 Ben Wagner <bungeman@gmail.com> Bungeman <bungeman@gmail.com>
 Ewald Hew (Hew Yih Shiuan 丘毅宣) <ewaldhew@gmail.com>
+Nikhil Ramakrishnan (निखिल रामकृष्णन) <ramakrishnan.nikhil@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94e0b37..a7aec4d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -147,7 +147,7 @@
 
 set(VERSION_MAJOR "2")
 set(VERSION_MINOR "10")
-set(VERSION_PATCH "1")
+set(VERSION_PATCH "2")
 
 # Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
 set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
diff --git a/ChangeLog b/ChangeLog
index 05ae6f8..e4ea3c5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2020-05-09  Werner Lemberg  <wl@gnu.org>
+
+	* Version 2.10.2 released.
+	==========================
+
+
+	Tag sources with `VER-2-10-2'.
+
+	* docs/VERSION.TXT: Add entry for version 2.10.2.
+
+	* README, Jamfile (RefDoc), src/base/ftver.rc,
+	builds/windows/vc2010/index.html, builds/windows/visualc/index.html,
+	builds/windows/visualce/index.html,
+	builds/wince/vc2005-ce/index.html,
+	builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
+	s/2.10.1/2.10.2/, s/2101/2102/.
+
+	* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.
+
+	* builds/unix/configure.raw (version_info): Set to 23:2:17.
+	* CMakeLists.txt (VERSION_PATCH): Set to 2.
+
+	* docs/CHANGES: Updated.
+
 2020-05-08  Jakub Alba  <jalba@vewd.com>
 
 	* src/truetype/ttinterp.c (TT_RunIns): Adjust loop counter (#58319).
diff --git a/Jamfile b/Jamfile
index 660cfc4..76ccdee 100644
--- a/Jamfile
+++ b/Jamfile
@@ -210,7 +210,7 @@
 {
   python3 -m docwriter
           --prefix=ft2
-          --title=FreeType-2.10.1
+          --title=FreeType-2.10.2
           --site=reference
           --output=$(DOC_DIR)
           $(FT2_INCLUDE)/freetype/*.h
diff --git a/README b/README
index 15757ce..67455d7 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-  FreeType 2.10.1
+  FreeType 2.10.2
   ===============
 
   Homepage: https://www.freetype.org
@@ -16,17 +16,20 @@
   the file `docs/LICENSE.TXT' for the available licenses.
 
   The FreeType  2 API  reference is located  in `docs/reference/site';
-  use  the  file `index.html'  as  the  top entry  point.   Additional
-  documentation is available as a separate package from our sites.  Go
-  to
+  use the file `index.html' as the top entry point.  [Please note that
+  currently the  search function  for locally  installed documentation
+  doesn't work due to cross-site scripting issues.]
+
+  Additional documentation is available as a separate package from our
+  sites.  Go to
 
     https://download.savannah.gnu.org/releases/freetype/
 
   and download one of the following files.
 
-    freetype-doc-2.10.1.tar.xz
-    freetype-doc-2.10.1.tar.gz
-    ftdoc2101.zip
+    freetype-doc-2.10.2.tar.xz
+    freetype-doc-2.10.2.tar.gz
+    ftdoc2102.zip
 
   To view the documentation online, go to
 
diff --git a/builds/unix/configure.raw b/builds/unix/configure.raw
index 5ab549c..2d89c74 100644
--- a/builds/unix/configure.raw
+++ b/builds/unix/configure.raw
@@ -17,7 +17,7 @@
 
 # Don't forget to update `docs/VERSIONS.TXT'!
 
-version_info='23:1:17'
+version_info='23:2:17'
 AC_SUBST([version_info])
 ft_version=`echo $version_info | tr : .`
 AC_SUBST([ft_version])
diff --git a/builds/wince/vc2005-ce/index.html b/builds/wince/vc2005-ce/index.html
index 8d52513..ff57231 100644
--- a/builds/wince/vc2005-ce/index.html
+++ b/builds/wince/vc2005-ce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.10.1 sources:</p>
+It compiles the following libraries from the FreeType 2.10.2 sources:</p>
 
 <ul>
   <pre>
diff --git a/builds/wince/vc2008-ce/index.html b/builds/wince/vc2008-ce/index.html
index 303ee77..4379821 100644
--- a/builds/wince/vc2008-ce/index.html
+++ b/builds/wince/vc2008-ce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.10.1 sources:</p>
+It compiles the following libraries from the FreeType 2.10.2 sources:</p>
 
 <ul>
   <pre>
diff --git a/builds/windows/vc2010/index.html b/builds/windows/vc2010/index.html
index eed4dd3..1999a7f 100644
--- a/builds/windows/vc2010/index.html
+++ b/builds/windows/vc2010/index.html
@@ -12,7 +12,7 @@
 <p>This directory contains solution and project files for
 Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
 and <tt>freetype.vcxproj</tt>.  It compiles the following libraries
-from the FreeType 2.10.1 sources:</p>
+from the FreeType 2.10.2 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
diff --git a/builds/windows/visualc/index.html b/builds/windows/visualc/index.html
index 423244a..56a52f4 100644
--- a/builds/windows/visualc/index.html
+++ b/builds/windows/visualc/index.html
@@ -12,7 +12,7 @@
 <p>This directory contains project files <tt>freetype.dsp</tt> for
 Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
 through 2008, which you might need to upgrade automatically.
-It compiles the following libraries from the FreeType 2.10.1 sources:</p>
+It compiles the following libraries from the FreeType 2.10.2 sources:</p>
 
 <ul>
   <li>freetype.dll using 'Release' or 'Debug' configurations</li>
diff --git a/builds/windows/visualce/index.html b/builds/windows/visualce/index.html
index 32bcd25..1501123 100644
--- a/builds/windows/visualce/index.html
+++ b/builds/windows/visualce/index.html
@@ -21,7 +21,7 @@
   <li>PPC/SP WM6 (Windows Mobile 6)</li>
 </ul>
 
-It compiles the following libraries from the FreeType 2.10.1 sources:</p>
+It compiles the following libraries from the FreeType 2.10.2 sources:</p>
 
 <ul>
   <pre>
diff --git a/docs/CHANGES b/docs/CHANGES
index a094415..b0f4304 100644
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -12,12 +12,27 @@
   - Function  `FT_Get_Var_Axis_Flags' returned random data for  Type 1
     MM fonts.
 
+  - Type 1 fonts with non-integer metrics are now supported by the new
+    (CFF) engine introduced in FreeType 2.9.
+
   - Drop  support  for Python 2 in Freetype's API reference  generator
     `docwriter'  (Python >= 3.5 is required for targets  `make refdoc'
     and `make refdoc-venv').
 
+  - Auto-hinter support for Hanifi Rohingya.
+
+  - Document the `FT2_KEEP_ALIVE' debugging environment variable.
+
+  - The Visual C++ (and Visual C)  project files for Windows builds no
+    longer generate libraries that contain the FreeType version in its
+    filenames.   Instead,  a  resource  file gets  used  to  make  the
+    libraries contain the corresponding information.
+
   - The next release will remove Jam build support.
 
+  - The  `ftbench'  demo  program  has  a new  test  for  testing  the
+    `FT_Glyph_Stroke' functionality.
+
 
 ======================================================================
 
diff --git a/docs/VERSIONS.TXT b/docs/VERSIONS.TXT
index 1e1e87f..1cb5982 100644
--- a/docs/VERSIONS.TXT
+++ b/docs/VERSIONS.TXT
@@ -1,36 +1,44 @@
-Due  to our  use of  `libtool' to  generate and  install the  FreeType 2
-libraries on  Unix systems, as  well as  other historical events,  it is
-generally very  difficult to  know precisely which  release of  the font
+Due to  our use of  `libtool' to generate  and install the  FreeType 2
+libraries on Unix  systems, as well as other historical  events, it is
+generally very difficult  to know precisely which release  of the font
 engine is installed on a given system.
 
-This file tries  to explain why and to document  ways to properly detect
+This file tries to explain why and to document ways to properly detect
 FreeType on Unix.
 
 
 1. Version and Release numbers
 ------------------------------
 
-For each new  public release of FreeType 2, there  are generally *three*
+For each new public release of FreeType 2, there are generally *three*
 distinct `version' numbers to consider:
 
-  * The official FreeType 2 release number, like 2.3.1 or 2.4.10.
+  * The official FreeType 2 release number, like 2.7.0 or 2.10.2.
 
-  * The libtool (and  Unix) specific version number,  like 13.0.7.  This
-    is what `freetype-config --version' returns.
+  * The  libtool (and  Unix)  specific version  number, like  23.2.17.
+    This is what
 
-  * The platform-specific  shared object  number, used for  example when
-    the library is installed as `/usr/lib/libfreetype.so.6.7.1'.
+      pkg-config freetype2 --modversion
 
-The platform-specific  number is, unsurprisingly,  platform-specific and
-varies  with the  operating system  you are  using (several  variants of
-Linux, FreeBSD,  Solaris, etc.).  You  should thus _never_ use  it, even
+    or
+
+      freetype-config --version
+
+    returns.
+
+  * The platform-specific shared object  number, used for example when
+    the library is installed as `/usr/lib/libfreetype.so.6.17.2'.
+
+The platform-specific number is, unsurprisingly, platform-specific and
+varies with  the operating system  you are using (several  variants of
+Linux, FreeBSD, Solaris, etc.).  You  should thus _never_ use it, even
 for simple tests.
 
-The libtool-specific  number does  not equal the  release number  but is
+The libtool-specific number  does not equal the release  number but is
 tied to it.
 
-The release number is available  at *compile* time through the following
-macros defined in FT_FREETYPE_H:
+The  release  number  is  available  at  *compile*  time  through  the
+following macros defined in FT_FREETYPE_H:
 
   - FREETYPE_MAJOR: major release number
   - FREETYPE_MINOR: minor release number
@@ -38,20 +46,21 @@
 
 See below for a small autoconf fragment.
 
-The  release  number   is  also  available  at   *runtime*  through  the
+The  release  number  is  also  available  at  *runtime*  through  the
 `FT_Library_Version' API.
 
 
 2. History
 ----------
 
-The  following   table  gives,  for   all  releases  since   2.4.0,  the
-corresponding libtool number, as well  as the shared object number found
-on _most_ systems, but not all of them:
+The  following  table  gives,  for   all  releases  since  2.5.0,  the
+corresponding  libtool number,  as well  as the  shared object  number
+found on _most_ systems, but not all of them:
 
 
     release     libtool     so
   -------------------------------
+     2.10.2     23.2.17   6.17.2
      2.10.1     23.1.17   6.17.1
      2.10.0     23.0.17   6.17.0
      2.9.1      22.1.16   6.16.1
@@ -72,58 +81,48 @@
      2.5.2      17.1.11   6.11.1
      2.5.1      17.0.11   6.11.0
      2.5.0      16.2.10   6.10.2
-     2.4.12     16.1.10   6.10.1
-     2.4.11     16.0.10   6.10.0
-     2.4.10     15.0.9    6.9.0
-     2.4.9      14.1.8    6.8.1
-     2.4.8      14.0.8    6.8.0
-     2.4.7      13.2.7    6.7.2
-     2.4.6      13.1.7    6.7.1
-     2.4.5      13.0.7    6.7.0
-     2.4.4      12.2.6    6.6.2
-     2.4.3      12.1.6    6.6.1
-     2.4.2      12.0.6    6.6.0
-     2.4.1      11.1.5    6.5.1
-     2.4.0      11.0.5    6.5.0
 
 
 3. Autoconf Code Fragment
 -------------------------
 
-Lars Clausen contributed the following autoconf fragment to detect which
-version of  FreeType is  installed on  a system.  This  one tests  for a
-version that  is at least 2.0.9;  you should change it  to check against
+Lars  Clausen contributed  the  following autoconf  fragment to  check
+which version of FreeType is installed on a system (now updated to use
+`pkg-config'  instead of  `freetype-config').   This one  tests for  a
+version that is at least 2.10.2; you should change it to check against
 other release numbers.
 
 
-  AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
+  AC_MSG_CHECKING([whether FreeType version is 2.10.2 or higher])
   old_CPPFLAGS="$CPPFLAGS"
-  CPPFLAGS=`freetype-config --cflags`
+  CPPFLAGS=`pkg-config freetype2 --cflags`
   AC_TRY_CPP([
 
 #include <ft2build.h>
 #include FT_FREETYPE_H
-#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
-#error FreeType version too low.
+
+#if FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH < 21002
+#  error FreeType version too low.
 #endif
+
   ],
   [AC_MSG_RESULT(yes)
-   FREETYPE_LIBS=`freetype-config --libs`
+   FREETYPE_LIBS=`pkg-config freetype2 --libs`
    AC_SUBST(FREETYPE_LIBS)
    AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
    CPPFLAGS="$old_CPPFLAGS"],
-  [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
+  [AC_MSG_ERROR([Need FreeType library version 2.10.2 or higher])])
 
-------------------------------------------------------------------------
+----------------------------------------------------------------------
 
 Copyright (C) 2002-2020 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.
+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 VERSIONS.TXT ---
diff --git a/docs/freetype-config.1 b/docs/freetype-config.1
index 96ff0f2..ae65e83 100644
--- a/docs/freetype-config.1
+++ b/docs/freetype-config.1
@@ -1,4 +1,4 @@
-.TH FREETYPE-CONFIG 1 "July 2019" "FreeType 2.10.1"
+.TH FREETYPE-CONFIG 1 "May 2020" "FreeType 2.10.2"
 .
 .
 .SH NAME
diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h
index a772427..973264b 100644
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -4782,7 +4782,7 @@
    */
 #define FREETYPE_MAJOR  2
 #define FREETYPE_MINOR  10
-#define FREETYPE_PATCH  1
+#define FREETYPE_PATCH  2
 
 
   /**************************************************************************
diff --git a/src/base/ftver.rc b/src/base/ftver.rc
index c16a0c9..fcbd9ef 100644
--- a/src/base/ftver.rc
+++ b/src/base/ftver.rc
@@ -18,8 +18,8 @@
 
 #include<windows.h>
 
-#define FT_VERSION      2,10,1,0
-#define FT_VERSION_STR  "2.10.1"
+#define FT_VERSION      2,10,2,0
+#define FT_VERSION_STR  "2.10.2"
 
 VS_VERSION_INFO      VERSIONINFO
 FILEVERSION          FT_VERSION
@@ -45,7 +45,7 @@
       VALUE "FileVersion",      FT_VERSION_STR
       VALUE "ProductName",      "FreeType"
       VALUE "ProductVersion",   FT_VERSION_STR
-      VALUE "LegalCopyright",   "\251 2018-2019 The FreeType Project www.freetype.org. All rights reserved."
+      VALUE "LegalCopyright",   "\251 2000-2020 The FreeType Project www.freetype.org. All rights reserved."
       VALUE "InternalName",     "freetype"
       VALUE "OriginalFilename", FT_FILENAME
     END
