diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 4d7796b732f08cf7b80c16f2b71769eed736007c..54b0a53f904fec6ebeaf94e28ee6a8366cb42cb9 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -10,8 +10,8 @@ class Cairo(AutotoolsPackage):
     """Cairo is a 2D graphics library with support for multiple output
     devices."""
 
-    homepage = "http://cairographics.org"
-    url      = "http://cairographics.org/releases/cairo-1.16.0.tar.xz"
+    homepage = "https://www.cairographics.org/"
+    url      = "https://www.cairographics.org/releases/cairo-1.16.0.tar.xz"
 
     version('1.16.0', sha256='5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331')
     version('1.14.12', '490025a0ba0622a853010f49fb6343f29fb70b9b')
@@ -19,24 +19,31 @@ class Cairo(AutotoolsPackage):
     version('1.14.0', '53cf589b983412ea7f78feee2e1ba9cea6e3ebae')
 
     variant('X', default=False, description="Build with X11 support")
+    variant('pdf', default=False, description="Enable cairo's PDF surface backend feature")
 
     depends_on('libx11', when='+X')
     depends_on('libxext', when='+X')
     depends_on('libxrender', when='+X')
     depends_on('libxcb', when='+X')
     depends_on('python', when='+X', type='build')
-    depends_on("libpng")
-    depends_on("glib")
-    depends_on("pixman")
-    depends_on("freetype")
-    depends_on("pkgconfig", type="build")
-    depends_on("fontconfig@2.10.91:")  # Require newer version of fontconfig.
+    depends_on('libpng')
+    depends_on('glib')
+    depends_on('pixman')
+    depends_on('freetype')
+    depends_on('pkgconfig', type='build')
+    depends_on('fontconfig@2.10.91:')  # Require newer version of fontconfig.
 
     def configure_args(self):
-        args = ["--disable-trace",  # can cause problems with libiberty
-                "--enable-tee"]
+        args = [
+            '--disable-trace',  # can cause problems with libiberty
+            '--enable-tee'
+        ]
+
         if '+X' in self.spec:
-            args.extend(["--enable-xlib", "--enable-xcb"])
+            args.extend(['--enable-xlib', '--enable-xcb'])
         else:
-            args.extend(["--disable-xlib", "--disable-xcb"])
+            args.extend(['--disable-xlib', '--disable-xcb'])
+
+        args.extend(self.enable_or_disable('pdf'))
+
         return args