diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst
index bf3b6af3f4321751bfcd3506dd5e85798d6123d4..003432b5d4453521c9dd4c6adba4e204166cb83c 100644
--- a/lib/spack/docs/packaging_guide.rst
+++ b/lib/spack/docs/packaging_guide.rst
@@ -2028,8 +2028,8 @@ The last element of a package is its ``install()`` method.  This is
 where the real work of installation happens, and it's the main part of
 the package you'll need to customize for each piece of software.
 
-.. literalinclude::  ../../../var/spack/repos/builtin/packages/libpng/package.py
-   :pyobject: Libpng.install
+.. literalinclude::  ../../../var/spack/repos/builtin/packages/mpfr/package.py
+   :pyobject: Mpfr.install
    :linenos:
 
 ``install`` takes a ``spec``: a description of how the package should
diff --git a/var/spack/repos/builtin/packages/freetype/package.py b/var/spack/repos/builtin/packages/freetype/package.py
index dd181623d02ec51db0a864db75fc98e09737d7cf..189dbc7e9504297131da571b08b823aab17e253e 100644
--- a/var/spack/repos/builtin/packages/freetype/package.py
+++ b/var/spack/repos/builtin/packages/freetype/package.py
@@ -25,17 +25,20 @@
 from spack import *
 
 
-class Freetype(Package):
-    """Font package"""
-    homepage = "http://http://www.freetype.org"
-    url      = "http://download.savannah.gnu.org/releases/freetype/freetype-2.5.3.tar.gz"
+class Freetype(AutotoolsPackage):
+    """FreeType is a freely available software library to render fonts.
+    It is written in C, designed to be small, efficient, highly customizable,
+    and portable while capable of producing high-quality output (glyph images)
+    of most vector and bitmap font formats."""
 
+    homepage = "https://www.freetype.org/index.html"
+    url      = "http://download.savannah.gnu.org/releases/freetype/freetype-2.7.tar.gz"
+
+    version('2.7',   '337139e5c7c5bd645fe130608e0fa8b5')
     version('2.5.3', 'cafe9f210e45360279c730d27bf071e9')
 
     depends_on('libpng')
+    depends_on('bzip2')
 
-    def install(self, spec, prefix):
-        configure("--prefix=%s" % prefix, "--with-harfbuzz=no")
-
-        make()
-        make("install")
+    def configure_args(self):
+        return ['--with-harfbuzz=no']
diff --git a/var/spack/repos/builtin/packages/libpng/package.py b/var/spack/repos/builtin/packages/libpng/package.py
index c3a595d12dd4dcb7ccd2f53c54b79a5b6910342b..fc55651497c89c6bda38620cd72f83504498216c 100644
--- a/var/spack/repos/builtin/packages/libpng/package.py
+++ b/var/spack/repos/builtin/packages/libpng/package.py
@@ -25,23 +25,18 @@
 from spack import *
 
 
-class Libpng(Package):
-    """libpng graphics file format"""
+class Libpng(AutotoolsPackage):
+    """libpng is the official PNG reference library."""
+
     homepage = "http://www.libpng.org/pub/png/libpng.html"
-    url      = "http://download.sourceforge.net/libpng/libpng-1.6.16.tar.gz"
+    url      = "http://download.sourceforge.net/libpng/libpng-1.6.26.tar.gz"
 
+    version('1.6.26', '236cd975520fc1f34cc0b8f0e615f7a0')
     version('1.6.24', '65213080dd30a9b16193d9b83adc1ee9')
-    version('1.6.16', '1a4ad377919ab15b54f6cb6a3ae2622d')
-    version('1.6.15', '829a256f3de9307731d4f52dc071916d')
-    version('1.6.14', '2101b3de1d5f348925990f9aa8405660')
-    version('1.5.26', '3ca98347a5541a2dad55cd6d07ee60a9')
-    version('1.4.19', '89bcbc4fc8b31f4a403906cf4f662330')
+
+    # Security vulnerabilities have been discovered in 1.6.19 an older
+
+    # Required for qt@3
     version('1.2.56', '9508fc59d10a1ffadd9aae35116c19ee')
 
     depends_on('zlib@1.0.4:')  # 1.2.5 or later recommended
-
-    def install(self, spec, prefix):
-        configure("--prefix=%s" % prefix)
-        make()
-        make("check")
-        make("install")