diff --git a/var/spack/repos/builtin/packages/doxygen/package.py b/var/spack/repos/builtin/packages/doxygen/package.py
index b8f15dee146addb0366ec196b9b8eeea4a079ace..b2e9582b5a9ad7a823592ebaf2e56be5f53f4554 100644
--- a/var/spack/repos/builtin/packages/doxygen/package.py
+++ b/var/spack/repos/builtin/packages/doxygen/package.py
@@ -22,12 +22,7 @@
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
-
-# Author: Justin Too <justin@doubleotoo.com>
-# Date: September 11, 2015
-
 from spack import *
-import sys
 
 
 class Doxygen(Package):
@@ -43,10 +38,15 @@ class Doxygen(Package):
     version('1.8.11', 'f4697a444feaed739cfa2f0644abc19b')
     version('1.8.10', '79767ccd986f12a0f949015efb5f058f')
 
+    # graphviz appears to be a run-time optional dependency
+    variant('graphviz', default=True, description='Build with dot command support from Graphviz.')  # NOQA: ignore=E501
+
     depends_on("cmake@2.8.12:")
-    # flex does not build on OSX, but it's provided there anyway
-    depends_on("flex", sys.platform != 'darwin')
-    depends_on("bison", sys.platform != 'darwin')
+    depends_on("flex")
+    depends_on("bison")
+
+    # optional dependencies
+    depends_on("graphviz", when="+graphviz")
 
     def install(self, spec, prefix):
         cmake('.', *std_cmake_args)
diff --git a/var/spack/repos/builtin/packages/ghostscript/package.py b/var/spack/repos/builtin/packages/ghostscript/package.py
index ba787f858f8f40b1b2766456e0c359a0f954be00..707f65c90284b531785a8b6cb350f9b2f13ed6dc 100644
--- a/var/spack/repos/builtin/packages/ghostscript/package.py
+++ b/var/spack/repos/builtin/packages/ghostscript/package.py
@@ -24,18 +24,18 @@
 ##############################################################################
 from spack import *
 
+
 class Ghostscript(Package):
     """an interpreter for the PostScript language and for PDF. """
     homepage = "http://ghostscript.com/"
-    url      = "http://downloads.ghostscript.com/public/ghostscript-9.16.tar.gz"
+    url      = "http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.16.tar.gz"
 
     version('9.16', '829319325bbdb83f5c81379a8f86f38f')
 
     parallel = False
 
     def install(self, spec, prefix):
-        configure("--prefix=%s" %prefix, "--enable-shared")
+        configure("--prefix=%s" % prefix, "--enable-shared")
 
         make()
         make("install")
-
diff --git a/var/spack/repos/builtin/packages/graphviz/package.py b/var/spack/repos/builtin/packages/graphviz/package.py
index 203e7b7f3ca0bd6da6fd77a8adf76bc6ec69a871..2f99015ba2618d44cc6554a214502cf4eefd2efe 100644
--- a/var/spack/repos/builtin/packages/graphviz/package.py
+++ b/var/spack/repos/builtin/packages/graphviz/package.py
@@ -23,6 +23,8 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 from spack import *
+import sys
+
 
 class Graphviz(Package):
     """Graph Visualization Software"""
@@ -35,19 +37,27 @@ class Graphviz(Package):
     # related to missing Perl packages. If spack begins support for Perl in the
     # future, this package can be updated to depend_on('perl') and the
     # ncecessary devel packages.
-    variant('perl', default=False, description='Enable if you need the optional Perl language bindings.')
+    variant('perl', default=False, description='Enable if you need the optional Perl language bindings.')  # NOQA: ignore=E501
 
     parallel = False
 
     depends_on("swig")
     depends_on("python")
     depends_on("ghostscript")
+    depends_on("pkg-config")
 
     def install(self, spec, prefix):
         options = ['--prefix=%s' % prefix]
-        if not '+perl' in spec:
+        if '+perl' not in spec:
             options.append('--disable-perl')
 
+        # On OSX fix the compiler error:
+        # In file included from tkStubLib.c:15:
+        # /usr/include/tk.h:78:11: fatal error: 'X11/Xlib.h' file not found
+        #       include <X11/Xlib.h>
+        if sys.platform == 'darwin':
+            options.append('CFLAGS=-I/opt/X11/include')
+
         configure(*options)
         make()
         make("install")