diff --git a/lib/spack/docs/packaging_guide.rst b/lib/spack/docs/packaging_guide.rst
index 343adca964c3cddefce9e39a028c917350017fb1..708dd71c761e52e14106e5e0f9f9d12e6565b155 100644
--- a/lib/spack/docs/packaging_guide.rst
+++ b/lib/spack/docs/packaging_guide.rst
@@ -1507,11 +1507,7 @@ Additional hybrid dependency types are (note the lack of quotes):
 
   * **<not specified>**: ``type`` assumed to be ``("build",
     "link")``. This is the common case for compiled language usage.
-  * **alldeps**: All dependency types.  **Note:** No quotes here
-  * **nolink**: Equal to ``("build", "run")``, for use by dependencies
-    that are not expressed via a linker (e.g., Python or Lua module
-    loading).  **Note:** No quotes here
-
+ 
 """""""""""""""""""
 Dependency Formulas
 """""""""""""""""""
@@ -3110,7 +3106,6 @@ dependencies as well.  This is equivalent to
 
 * Any combination of ``build``, ``link``, and ``run`` separated by
   commas.
-* ``nobuild``, ``nolink``, ``norun`` to omit one type.
 * ``all`` or ``alldeps`` for all types of dependencies.
 
 You can also use ``spack graph`` to generate graphs in the widely used
diff --git a/lib/spack/external/_pytest/freeze_support.py b/lib/spack/external/_pytest/freeze_support.py
index f78ccd298ef4cf773497a0f78636d97650c5c237..b27f59d74a6ce6f9adc6e8ba4706cb65e2881250 100644
--- a/lib/spack/external/_pytest/freeze_support.py
+++ b/lib/spack/external/_pytest/freeze_support.py
@@ -42,4 +42,4 @@ def _iter_all_modules(package, prefix=''):
             for m in _iter_all_modules(os.path.join(path, name), prefix=name + '.'):
                 yield prefix + m
         else:
-            yield prefix + name
\ No newline at end of file
+            yield prefix + name
diff --git a/lib/spack/spack/__init__.py b/lib/spack/spack/__init__.py
index 1e38376f5e151ee9c8d227fc6545037cf3899248..901b8f115c552b8d905281451c31b9da523aec5a 100644
--- a/lib/spack/spack/__init__.py
+++ b/lib/spack/spack/__init__.py
@@ -166,8 +166,8 @@
 from spack.version import Version, ver
 __all__ += ['Version', 'ver']
 
-from spack.spec import Spec, alldeps, nolink
-__all__ += ['Spec', 'alldeps', 'nolink']
+from spack.spec import Spec, alldeps
+__all__ += ['Spec', 'alldeps']
 
 from spack.multimethod import when
 __all__ += ['when']
diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py
index 2607daaeb5e2deaafdf034ec429e23ee4bbe2915..2d25e8c8a9af8a886adeab8e09d06cbed7d0f81e 100644
--- a/lib/spack/spack/cmd/create.py
+++ b/lib/spack/spack/cmd/create.py
@@ -200,7 +200,7 @@ class PythonGuess(DefaultGuess):
 
     # FIXME: Add additional dependencies if required.
     # depends_on('py-setuptools', type='build')
-    # depends_on('py-foo',        type=nolink)"""
+    # depends_on('py-foo',        type=('build', 'run'))"""
 
     body = """\
     def install(self, spec, prefix):
@@ -216,7 +216,7 @@ class RGuess(DefaultGuess):
     """Provides appropriate overrides for R extensions"""
     dependencies = """\
     # FIXME: Add dependencies if required.
-    # depends_on('r-foo', type=nolink)"""
+    # depends_on('r-foo', type=('build', 'run'))"""
 
     body = """\
     # FIXME: Override install() if necessary."""
@@ -232,7 +232,7 @@ class OctaveGuess(DefaultGuess):
     extends('octave')
 
     # FIXME: Add additional dependencies if required.
-    # depends_on('octave-foo', type=nolink)"""
+    # depends_on('octave-foo', type=('build', 'run'))"""
 
     body = """\
     def install(self, spec, prefix):
diff --git a/lib/spack/spack/database.py b/lib/spack/spack/database.py
index 3a0c028d5b904ff9ab9df4610aeade99a7b64987..ff552233515552d5f652059c1baeccd4b1961dab 100644
--- a/lib/spack/spack/database.py
+++ b/lib/spack/spack/database.py
@@ -68,7 +68,7 @@
 _db_lock_timeout = 60
 
 # Types of dependencies tracked by the database
-_tracked_deps = 'nobuild'
+_tracked_deps = ('link', 'run')
 
 
 def _autospec(function):
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index 9ce50a54d3ddefb740b2dd933da58761086e08f8..8c6dd36c845a8ba0b269781a5364380f22c5155f 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -126,8 +126,6 @@
 __all__ = [
     'Spec',
     'alldeps',
-    'nolink',
-    'nobuild',
     'canonical_deptype',
     'validate_deptype',
     'parse',
@@ -188,14 +186,10 @@
 
 # Special types of dependencies.
 alldeps = ('build', 'link', 'run')
-nolink  = ('build', 'run')
-nobuild = ('link', 'run')
 norun   = ('link', 'build')
 special_types = {
     'alldeps': alldeps,
     'all': alldeps,  # allow "all" as string but not symbol.
-    'nolink': nolink,
-    'nobuild': nobuild,
     'norun': norun,
 }
 
diff --git a/lib/spack/spack/test/conftest.py b/lib/spack/spack/test/conftest.py
index 79d9018c27cbac4b127e19c13f0951ad6c043f85..f3447276745958be628ba8b570599714eb4c78b3 100644
--- a/lib/spack/spack/test/conftest.py
+++ b/lib/spack/spack/test/conftest.py
@@ -511,4 +511,4 @@ def get_rev():
 
     t = Bunch(checks=checks, url=url, hash=get_rev, path=str(repodir))
     yield t
-    current.chdir()
\ No newline at end of file
+    current.chdir()
diff --git a/var/spack/repos/builtin/packages/antlr/package.py b/var/spack/repos/builtin/packages/antlr/package.py
index 87c0119feff75af1de35008fd1a3c661b9a9c052..88653a8ea91562d14a69e2e247002c9da4c3e35a 100644
--- a/var/spack/repos/builtin/packages/antlr/package.py
+++ b/var/spack/repos/builtin/packages/antlr/package.py
@@ -54,7 +54,7 @@ class Antlr(AutotoolsPackage):
     variant('python', default=False, description='Enable ANTLR for Python')
 
     extends('python', when='+python')
-    depends_on('jdk', type='nolink', when='+java')
+    depends_on('jdk', type=('build', 'run'), when='+java')
 
     def configure_args(self):
         spec = self.spec
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 66e1197669a24929a2069bfc8fd43072d52978f6..5cd9fcdd17dd172cfcc862858cf501213d6fb646 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -57,10 +57,10 @@ class Cantera(Package):
 
     # Python module dependencies
     extends('python', when='+python')
-    depends_on('py-numpy',  when='+python', type=nolink)
-    depends_on('py-scipy',  when='+python', type=nolink)
-    depends_on('py-cython', when='+python', type=nolink)
-    depends_on('py-3to2',   when='+python', type=nolink)
+    depends_on('py-numpy',  when='+python', type=('build', 'run'))
+    depends_on('py-scipy',  when='+python', type=('build', 'run'))
+    depends_on('py-cython', when='+python', type=('build', 'run'))
+    depends_on('py-3to2',   when='+python', type=('build', 'run'))
     # TODO: these "when" specs don't actually work
     # depends_on('py-unittest2',     when='+python^python@2.6')
     # depends_on('py-unittest2py3k', when='+python^python@3.1')
diff --git a/var/spack/repos/builtin/packages/cask/package.py b/var/spack/repos/builtin/packages/cask/package.py
index 5a5bfaa5f10acd6424365f3d4edeb306b3e1f5a4..b48365b61d2581e5064d0e2127a2c1b17fb36795 100644
--- a/var/spack/repos/builtin/packages/cask/package.py
+++ b/var/spack/repos/builtin/packages/cask/package.py
@@ -41,7 +41,7 @@ class Cask(Package):
     # version 0.8.0 is broken
     version('0.7.4', 'c973a7db43bc980dd83759a5864a1260')
 
-    depends_on('emacs', type=nolink)
+    depends_on('emacs', type=('build', 'run'))
 
     def install(self, spec, prefix):
         mkdirp(prefix.bin)
diff --git a/var/spack/repos/builtin/packages/cmor/package.py b/var/spack/repos/builtin/packages/cmor/package.py
index 1cbf068493bf4ef3074b9e60bd2119620efafabf..b5debf953772d3b673073131f56bbc77d35b5a0f 100644
--- a/var/spack/repos/builtin/packages/cmor/package.py
+++ b/var/spack/repos/builtin/packages/cmor/package.py
@@ -47,7 +47,7 @@ class Cmor(AutotoolsPackage):
 
     extends('python', when='+python')
     depends_on('python@:2.7', when='+python')
-    depends_on('py-numpy', type=nolink, when='+python')
+    depends_on('py-numpy', type=('build', 'run'), when='+python')
 
     @AutotoolsPackage.precondition('configure')
     def validate(self):
diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py
index 335fa1a3fec78d594b8472d7ba9724ef994fce91..11ddb12876a7eef717c9886036a5c56460bf899d 100644
--- a/var/spack/repos/builtin/packages/environment-modules/package.py
+++ b/var/spack/repos/builtin/packages/environment-modules/package.py
@@ -36,7 +36,7 @@ class EnvironmentModules(Package):
     version('3.2.10', '8b097fdcb90c514d7540bb55a3cb90fb')
 
     # Dependencies:
-    depends_on('tcl', type=alldeps)
+    depends_on('tcl', type=('build', 'link', 'run'))
 
     def install(self, spec, prefix):
         tcl_spec = spec['tcl']
diff --git a/var/spack/repos/builtin/packages/espressopp/package.py b/var/spack/repos/builtin/packages/espressopp/package.py
index ddc98f07c5a30aba6aeec3a20950e6d0cc7cf356..21e1cc1317827479618caaef4cec703899ddcd6f 100644
--- a/var/spack/repos/builtin/packages/espressopp/package.py
+++ b/var/spack/repos/builtin/packages/espressopp/package.py
@@ -49,8 +49,8 @@ class Espressopp(CMakePackage):
     depends_on("boost+serialization+filesystem+system+python+mpi", when='@1.9.4:')
     extends("python")
     depends_on("python@2:2.7.13")
-    depends_on("py-mpi4py@2.0.0:", when='@1.9.4', type='nolink')
-    depends_on("py-mpi4py@1.3.1:", when='@1.9.4.1:', type='nolink')
+    depends_on("py-mpi4py@2.0.0:", when='@1.9.4', type=('build', 'run'))
+    depends_on("py-mpi4py@1.3.1:", when='@1.9.4.1:', type=('build', 'run'))
     depends_on("fftw")
     depends_on("py-sphinx", when="+ug", type='build')
     depends_on("py-sphinx", when="+pdf", type='build')
diff --git a/var/spack/repos/builtin/packages/fenics/package.py b/var/spack/repos/builtin/packages/fenics/package.py
index 1dc302fdff3b5cd468a32908ae415be888fa0d7e..4be94a96b89fbd1656158ce086db9f5af8eefcea 100644
--- a/var/spack/repos/builtin/packages/fenics/package.py
+++ b/var/spack/repos/builtin/packages/fenics/package.py
@@ -83,12 +83,12 @@ class Fenics(Package):
     depends_on('suite-sparse', when='+suite-sparse')
     depends_on('qt', when='+qt')
 
-    depends_on('py-ply', type=nolink)
-    depends_on('py-six', type=nolink)
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-sympy', type=nolink)
-    depends_on('swig@3.0.3:', type=nolink)
-    depends_on('cmake@2.8.12:', type=nolink)
+    depends_on('py-ply', type=('build', 'run'))
+    depends_on('py-six', type=('build', 'run'))
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-sympy', type=('build', 'run'))
+    depends_on('swig@3.0.3:', type=('build', 'run'))
+    depends_on('cmake@2.8.12:', type=('build', 'run'))
 
     depends_on('py-setuptools', type='build')
     depends_on('py-sphinx@1.0.1:', when='+doc', type='build')
diff --git a/var/spack/repos/builtin/packages/gdal/package.py b/var/spack/repos/builtin/packages/gdal/package.py
index a1acddc210d7d6b3d69e2e6461bd5ce87c646104..b52b1f1038a761285f302b38861ceebad73c84c3 100644
--- a/var/spack/repos/builtin/packages/gdal/package.py
+++ b/var/spack/repos/builtin/packages/gdal/package.py
@@ -63,7 +63,7 @@ class Gdal(Package):
     depends_on("libpng")
     depends_on("zlib")
     depends_on("proj")
-    depends_on("py-numpy", type=nolink)
+    depends_on("py-numpy", type=('build', 'run'))
 
     parallel = False
 
diff --git a/var/spack/repos/builtin/packages/global/package.py b/var/spack/repos/builtin/packages/global/package.py
index f832834a2804b15ab4769391c8dafee68b159b0c..fedf41c829f9f22785be957b953af5a3f376bf10 100644
--- a/var/spack/repos/builtin/packages/global/package.py
+++ b/var/spack/repos/builtin/packages/global/package.py
@@ -34,7 +34,7 @@ class Global(Package):
 
     version('6.5', 'dfec818b4f53d91721e247cf7b218078')
 
-    depends_on('exuberant-ctags', type=nolink)
+    depends_on('exuberant-ctags', type=('build', 'run'))
     depends_on('ncurses')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py
index 050feab24d2cbe2c1d5c495f0ffb3114bddb2737..b497144f2f8964746d38208e74772852dcb1cb53 100644
--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py
@@ -53,7 +53,7 @@ class GoBootstrap(Package):
 
     provides('golang@:1.4-bootstrap-20161024')
 
-    depends_on('git', type='alldeps')
+    depends_on('git', type=('build', 'link', 'run'))
 
     # NOTE: Older versions of Go attempt to download external files that have
     # since been moved while running the test suite.  This patch modifies the
diff --git a/var/spack/repos/builtin/packages/go/package.py b/var/spack/repos/builtin/packages/go/package.py
index 2d797a37345dba9eaa54e1339f924069cfe7c6bf..ad1436c0c379f9be8666083a44efeb2f519b4b6d 100644
--- a/var/spack/repos/builtin/packages/go/package.py
+++ b/var/spack/repos/builtin/packages/go/package.py
@@ -58,7 +58,7 @@ class Go(Package):
 
     provides('golang')
 
-    depends_on('git', type='alldeps')
+    depends_on('git', type=('build', 'link', 'run'))
     # TODO: Make non-c self-hosting compilers feasible without backflips
     # should be a dep on external go compiler
     depends_on('go-bootstrap', type='build')
diff --git a/var/spack/repos/builtin/packages/hoomd-blue/package.py b/var/spack/repos/builtin/packages/hoomd-blue/package.py
index 79e99e7b8942caabeb7585f044fda3554657deae..5e27f6aead189e66e8f3211e770ba8baaa9e4b4d 100644
--- a/var/spack/repos/builtin/packages/hoomd-blue/package.py
+++ b/var/spack/repos/builtin/packages/hoomd-blue/package.py
@@ -46,7 +46,7 @@ class HoomdBlue(Package):
     variant('doc',  default=True, description='Generate documentation')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
     depends_on('boost+python')
     depends_on('cmake', type='build')
     depends_on('mpi', when='+mpi')
diff --git a/var/spack/repos/builtin/packages/ibmisc/package.py b/var/spack/repos/builtin/packages/ibmisc/package.py
index 8409da6b2290e85fd4a5ef6b06846ac20b9bb7e6..7365eac46aaf6f619ab7b7ce043477a692dba13a 100644
--- a/var/spack/repos/builtin/packages/ibmisc/package.py
+++ b/var/spack/repos/builtin/packages/ibmisc/package.py
@@ -59,8 +59,8 @@ class Ibmisc(CMakePackage):
     depends_on('netcdf-cxx4', when='+netcdf')
     depends_on('udunits2', when='+udunits2')
     depends_on('googletest', when='+googletest', type='build')
-    depends_on('py-cython', when='+python', type=nolink)
-    depends_on('py-numpy', when='+python', type=nolink)
+    depends_on('py-cython', when='+python', type=('build', 'run'))
+    depends_on('py-numpy', when='+python', type=('build', 'run'))
     depends_on('boost', when='+boost')
 
     # Build dependencies
diff --git a/var/spack/repos/builtin/packages/lmod/package.py b/var/spack/repos/builtin/packages/lmod/package.py
index c2daca80a584d4194659ac67054ab2959158230a..9ac270bab5c97a2c79a6daeb362faff250ed3d6d 100644
--- a/var/spack/repos/builtin/packages/lmod/package.py
+++ b/var/spack/repos/builtin/packages/lmod/package.py
@@ -44,9 +44,9 @@ class Lmod(Package):
     version('6.0.1', '91abf52fe5033bd419ffe2842ebe7af9')
 
     depends_on('lua@5.2:')
-    depends_on('lua-luaposix', type=nolink)
-    depends_on('lua-luafilesystem', type=nolink)
-    depends_on('tcl', type=nolink)
+    depends_on('lua-luaposix', type=('build', 'run'))
+    depends_on('lua-luafilesystem', type=('build', 'run'))
+    depends_on('tcl', type=('build', 'run'))
 
     parallel = False
 
diff --git a/var/spack/repos/builtin/packages/lua/package.py b/var/spack/repos/builtin/packages/lua/package.py
index 4da2c99e0446a6cc9ffdb868abfa8c8e18de2c22..357e2cc03a4a9287ccf57725d35d7a008196b2c3 100644
--- a/var/spack/repos/builtin/packages/lua/package.py
+++ b/var/spack/repos/builtin/packages/lua/package.py
@@ -88,7 +88,8 @@ def append_paths(self, paths, cpaths, path):
 
     def setup_dependent_environment(self, spack_env, run_env, extension_spec):
         lua_paths = []
-        for d in extension_spec.traverse(deptypes=nolink, deptype_query='run'):
+        for d in extension_spec.traverse(
+                deptypes=('build', 'run'), deptype_query='run'):
             if d.package.extends(self.spec):
                 lua_paths.append(os.path.join(d.prefix, self.lua_lib_dir))
                 lua_paths.append(os.path.join(d.prefix, self.lua_share_dir))
diff --git a/var/spack/repos/builtin/packages/nwchem/package.py b/var/spack/repos/builtin/packages/nwchem/package.py
index a8b9f3d3e2c2e5004c16aaecbe65c1321dd34630..556dba34c218b4650b5e011ce30f54d1ffb8de56 100644
--- a/var/spack/repos/builtin/packages/nwchem/package.py
+++ b/var/spack/repos/builtin/packages/nwchem/package.py
@@ -41,7 +41,7 @@ class Nwchem(Package):
     depends_on('mpi')
     depends_on('scalapack')
 
-    depends_on('python@2.7:2.8', type=nolink)
+    depends_on('python@2.7:2.8', type=('build', 'run'))
 
     # patches for 6.6-27746:
     urls_for_patches = {
diff --git a/var/spack/repos/builtin/packages/opencv/package.py b/var/spack/repos/builtin/packages/opencv/package.py
index 03cc7ba427589c00ae4facba27ea19a4b061065d..8a721032a6154dba03f634655b3a96720e3ad8c4 100644
--- a/var/spack/repos/builtin/packages/opencv/package.py
+++ b/var/spack/repos/builtin/packages/opencv/package.py
@@ -76,7 +76,7 @@ class Opencv(Package):
     depends_on('vtk', when='+vtk')
     depends_on('qt', when='+qt')
     depends_on('jdk', when='+java')
-    depends_on('py-numpy', when='+python', type='nolink')
+    depends_on('py-numpy', when='+python', type=('build', 'run'))
 
     extends('python', when='+python')
 
diff --git a/var/spack/repos/builtin/packages/psi4/package.py b/var/spack/repos/builtin/packages/psi4/package.py
index 566aa50f443326ef5eb6df0c2a09ac3191e9a3f5..4248c2464649e700f611a2fe39ce752f4c12287e 100644
--- a/var/spack/repos/builtin/packages/psi4/package.py
+++ b/var/spack/repos/builtin/packages/psi4/package.py
@@ -50,7 +50,7 @@ class Psi4(Package):
                '+thread')
     depends_on('python')
     depends_on('cmake', type='build')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     # Optional dependencies
     # TODO: add packages for these
diff --git a/var/spack/repos/builtin/packages/py-astroid/package.py b/var/spack/repos/builtin/packages/py-astroid/package.py
index ff5683c7059670472a7db29ca2e55bc8fe839123..a42d936f054928e4e769dd0ffffc2eae901174e2 100644
--- a/var/spack/repos/builtin/packages/py-astroid/package.py
+++ b/var/spack/repos/builtin/packages/py-astroid/package.py
@@ -22,7 +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
 ##############################################################################
-from spack import depends_on, extends, version, nolink
+from spack import depends_on, extends, version
 from spack import Package
 
 
@@ -37,9 +37,9 @@ class PyAstroid(Package):
     version('1.4.1', 'ed70bfed5e4b25be4292e7fe72da2c02')
 
     extends('python')
-    depends_on('py-logilab-common', type=nolink)
+    depends_on('py-logilab-common', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
-    depends_on('py-six', type=nolink)
+    depends_on('py-six', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-astropy/package.py b/var/spack/repos/builtin/packages/py-astropy/package.py
index 1565db0bddc127899bb46ed2631bc79bebf70511..193add18ef4bb67e04e3128100a12e29efc68be1 100644
--- a/var/spack/repos/builtin/packages/py-astropy/package.py
+++ b/var/spack/repos/builtin/packages/py-astropy/package.py
@@ -38,18 +38,18 @@ class PyAstropy(Package):
 
     # Required dependencies
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     # Optional dependencies
-    depends_on('py-h5py', type=nolink)
-    depends_on('py-beautifulsoup4', type=nolink)
-    depends_on('py-pyyaml', type=nolink)
-    depends_on('py-scipy', type=nolink)
+    depends_on('py-h5py', type=('build', 'run'))
+    depends_on('py-beautifulsoup4', type=('build', 'run'))
+    depends_on('py-pyyaml', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
     depends_on('libxml2')
-    depends_on('py-matplotlib', type=nolink)
-    depends_on('py-pytz', type=nolink)
-    depends_on('py-scikit-image', type=nolink)
-    depends_on('py-pandas', type=nolink)
+    depends_on('py-matplotlib', type=('build', 'run'))
+    depends_on('py-pytz', type=('build', 'run'))
+    depends_on('py-scikit-image', type=('build', 'run'))
+    depends_on('py-pandas', type=('build', 'run'))
 
     # System dependencies
     depends_on('cfitsio')
diff --git a/var/spack/repos/builtin/packages/py-autopep8/package.py b/var/spack/repos/builtin/packages/py-autopep8/package.py
index 6d093f32f685c61265397cb213541908250aedca..629a3b515ee9a71fe15215712844d81593249af9 100644
--- a/var/spack/repos/builtin/packages/py-autopep8/package.py
+++ b/var/spack/repos/builtin/packages/py-autopep8/package.py
@@ -38,7 +38,7 @@ class PyAutopep8(Package):
     extends('python', ignore='bin/pep8')
     depends_on('python@2.6:2.7,3.2:')
 
-    depends_on('py-pycodestyle@1.5.7:1.7.0', type=nolink)
+    depends_on('py-pycodestyle@1.5.7:1.7.0', type=('build', 'run'))
 
     depends_on('py-setuptools', type='build')
 
diff --git a/var/spack/repos/builtin/packages/py-babel/package.py b/var/spack/repos/builtin/packages/py-babel/package.py
index 8beb216fd34a8400570ade8177a04705b6403c8e..12d7ff84b6c604e092ecacc2b5fb9a4571969e44 100644
--- a/var/spack/repos/builtin/packages/py-babel/package.py
+++ b/var/spack/repos/builtin/packages/py-babel/package.py
@@ -39,7 +39,7 @@ class PyBabel(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-pytz',       type=nolink)
+    depends_on('py-pytz',       type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-basemap/package.py b/var/spack/repos/builtin/packages/py-basemap/package.py
index 3f5bf989c15cead3827ce39f8c04d370e34539d9..d69051037b51e349299e87373980af6e65b29adb 100644
--- a/var/spack/repos/builtin/packages/py-basemap/package.py
+++ b/var/spack/repos/builtin/packages/py-basemap/package.py
@@ -37,9 +37,9 @@ class PyBasemap(Package):
 
     extends('python')
     depends_on('py-setuptools', type='build')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
-    depends_on('pil', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
+    depends_on('pil', type=('build', 'run'))
     depends_on("geos")
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-biopython/package.py b/var/spack/repos/builtin/packages/py-biopython/package.py
index 9e1b693a0d6a047b9c8357560b3e8d3b1de751e2..83ede166d6caf558a2c36f76b9fe08045a8bbf40 100644
--- a/var/spack/repos/builtin/packages/py-biopython/package.py
+++ b/var/spack/repos/builtin/packages/py-biopython/package.py
@@ -37,8 +37,8 @@ class PyBiopython(Package):
     version('1.65', '143e7861ade85c0a8b5e2bbdd1da1f67')
 
     extends('python')
-    depends_on('py-mx', type=nolink)
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-mx', type=('build', 'run'))
+    depends_on('py-numpy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-bottleneck/package.py b/var/spack/repos/builtin/packages/py-bottleneck/package.py
index 20d78846bb5dc8dc16af9a8090d95cb18276aedd..d2d258105d08bcc59bcdcaa834b2c52457557b53 100644
--- a/var/spack/repos/builtin/packages/py-bottleneck/package.py
+++ b/var/spack/repos/builtin/packages/py-bottleneck/package.py
@@ -33,7 +33,7 @@ class PyBottleneck(Package):
     version('1.0.0', '380fa6f275bd24f27e7cf0e0d752f5d2')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-cclib/package.py b/var/spack/repos/builtin/packages/py-cclib/package.py
index 33b1d25c7e2532f8118d0ca175e673054ee9d765..f06a8cbc371e415a956d8fe8ca0a57578f33eaf5 100644
--- a/var/spack/repos/builtin/packages/py-cclib/package.py
+++ b/var/spack/repos/builtin/packages/py-cclib/package.py
@@ -36,7 +36,7 @@ class PyCclib(Package):
 
     extends('python')
 
-    depends_on('py-numpy@1.5:', type=nolink)
+    depends_on('py-numpy@1.5:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-cdo/package.py b/var/spack/repos/builtin/packages/py-cdo/package.py
index b52d3223ebefed4f18fce174474cdd475150a6f8..c74a3f7c335b2380d42fdd01ef542f25f125755e 100644
--- a/var/spack/repos/builtin/packages/py-cdo/package.py
+++ b/var/spack/repos/builtin/packages/py-cdo/package.py
@@ -40,8 +40,8 @@ class PyCdo(Package):
     depends_on('cdo')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-scipy', type=nolink)
-    depends_on('py-netcdf', type=nolink)   
+    depends_on('py-scipy', type=('build', 'run'))
+    depends_on('py-netcdf', type=('build', 'run'))   
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-cffi/package.py b/var/spack/repos/builtin/packages/py-cffi/package.py
index 5cd983b3438ab4fa6ff0c8db699e0840d990027a..f2f76466876734dceda211d8389fc8f9eefd8952 100644
--- a/var/spack/repos/builtin/packages/py-cffi/package.py
+++ b/var/spack/repos/builtin/packages/py-cffi/package.py
@@ -37,7 +37,7 @@ class PyCffi(Package):
 
     extends('python')
     depends_on('py-setuptools', type='build')
-    depends_on('py-pycparser', type=nolink)
+    depends_on('py-pycparser', type=('build', 'run'))
     depends_on('libffi')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-configparser/package.py b/var/spack/repos/builtin/packages/py-configparser/package.py
index 1ad4ed619edc4b4470c138b2cd7852a1ef4f55d1..6885d6bd935b9c30e8600b8604b7aab54e007133 100644
--- a/var/spack/repos/builtin/packages/py-configparser/package.py
+++ b/var/spack/repos/builtin/packages/py-configparser/package.py
@@ -38,7 +38,7 @@ class PyConfigparser(Package):
     extends('python')
     depends_on('python@2.6:2.7,3.4:')
 
-    depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=nolink)
+    depends_on('py-ordereddict', when='^python@2.6:2.6.999', type=('build', 'run'))
 
     depends_on('py-setuptools', type='build')
 
diff --git a/var/spack/repos/builtin/packages/py-csvkit/package.py b/var/spack/repos/builtin/packages/py-csvkit/package.py
index 904f138d12b54644198baa8adaea5c30365378b1..ceb220eef74c720b3c7e87fcc7f514ecd1fd698d 100644
--- a/var/spack/repos/builtin/packages/py-csvkit/package.py
+++ b/var/spack/repos/builtin/packages/py-csvkit/package.py
@@ -36,12 +36,12 @@ class PyCsvkit(Package):
 
     extends('python')
 
-    depends_on('py-dateutil', type=nolink)
-    depends_on('py-dbf', type=nolink)
-    depends_on('py-xlrd', type=nolink)
-    depends_on('py-sqlalchemy', type=nolink)
-    depends_on('py-six', type=nolink)
-    depends_on('py-openpyxl', type=nolink)
+    depends_on('py-dateutil', type=('build', 'run'))
+    depends_on('py-dbf', type=('build', 'run'))
+    depends_on('py-xlrd', type=('build', 'run'))
+    depends_on('py-sqlalchemy', type=('build', 'run'))
+    depends_on('py-six', type=('build', 'run'))
+    depends_on('py-openpyxl', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-cycler/package.py b/var/spack/repos/builtin/packages/py-cycler/package.py
index 16da057f2196dde5df673dced9e55edb37e23b64..dff307cddda666063260cb2a0458842a78ec6bc7 100644
--- a/var/spack/repos/builtin/packages/py-cycler/package.py
+++ b/var/spack/repos/builtin/packages/py-cycler/package.py
@@ -36,7 +36,7 @@ class PyCycler(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-six',        type=nolink)
+    depends_on('py-six',        type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-dateutil/package.py b/var/spack/repos/builtin/packages/py-dateutil/package.py
index f147e2357bdbb4af6d2e77b36c0fa91fd430ed27..c9e77b3b086eb18aa25daa73c3573dffeb0f2202 100644
--- a/var/spack/repos/builtin/packages/py-dateutil/package.py
+++ b/var/spack/repos/builtin/packages/py-dateutil/package.py
@@ -36,7 +36,7 @@ class PyDateutil(Package):
 
     extends('python')
     depends_on('py-setuptools', type='build')
-    depends_on('py-six', type=nolink)
+    depends_on('py-six', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-emcee/package.py b/var/spack/repos/builtin/packages/py-emcee/package.py
index 2045ec9d59737f9f44d024e5f450b30e92678760..d3627b32c55a32fb6352d5a248cf4305f3fff991 100644
--- a/var/spack/repos/builtin/packages/py-emcee/package.py
+++ b/var/spack/repos/builtin/packages/py-emcee/package.py
@@ -35,7 +35,7 @@ class PyEmcee(Package):
     version('2.1.0', 'c6b6fad05c824d40671d4a4fc58dfff7')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-enum34/package.py b/var/spack/repos/builtin/packages/py-enum34/package.py
index 2f294bac12a2ee4924ad1e635be7e17da8994e8c..584572b47df70c8f067665d0765ae37c0aa67506 100644
--- a/var/spack/repos/builtin/packages/py-enum34/package.py
+++ b/var/spack/repos/builtin/packages/py-enum34/package.py
@@ -37,7 +37,7 @@ class PyEnum34(Package):
     extends('python')
     depends_on('python@2.4:2.8,3.3:')
 
-    depends_on('py-ordereddict', when='^python@:2.6.999', type=nolink)
+    depends_on('py-ordereddict', when='^python@:2.6.999', type=('build', 'run'))
 
     depends_on('py-setuptools', type='build')
 
diff --git a/var/spack/repos/builtin/packages/py-flake8/package.py b/var/spack/repos/builtin/packages/py-flake8/package.py
index 8bb36bc02fd8bc1fd4b2bae52cd65697a2065254..4515f68e0ab921ca59c7b8e671dee72f64c80c47 100644
--- a/var/spack/repos/builtin/packages/py-flake8/package.py
+++ b/var/spack/repos/builtin/packages/py-flake8/package.py
@@ -40,25 +40,25 @@ class PyFlake8(Package):
 
     # Most Python packages only require py-setuptools as a build dependency.
     # However, py-flake8 requires py-setuptools during runtime as well.
-    depends_on('py-setuptools', type=nolink)
+    depends_on('py-setuptools', type=('build', 'run'))
 
     # pyflakes >= 0.8.1, != 1.2.0, != 1.2.1, != 1.2.2, < 1.3.0
-    depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=nolink)  # noqa
+    depends_on('py-pyflakes@0.8.1:1.1.0,1.2.3:1.2.3', when='@3.0.4', type=('build', 'run'))  # noqa
     # pyflakes >= 0.8.1, < 1.1
-    depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=nolink)
+    depends_on('py-pyflakes@0.8.1:1.0.0', when='@2.5.4', type=('build', 'run'))
 
     # pycodestyle >= 2.0.0, < 2.1.0
-    depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=nolink)
+    depends_on('py-pycodestyle@2.0.0:2.0.999', when='@3.0.4', type=('build', 'run'))
     # pep8 >= 1.5.7, != 1.6.0, != 1.6.1, != 1.6.2
-    depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=nolink)
+    depends_on('py-pycodestyle@1.5.7,1.7.0:', when='@2.5.4', type=('build', 'run'))
 
     # mccabe >= 0.5.0, < 0.6.0
-    depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=nolink)
+    depends_on('py-mccabe@0.5.0:0.5.999', when='@3.0.4', type=('build', 'run'))
     # mccabe >= 0.2.1, < 0.5
-    depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=nolink)
+    depends_on('py-mccabe@0.2.1:0.4.0', when='@2.5.4', type=('build', 'run'))
 
-    depends_on('py-configparser', when='^python@:3.3.999', type=nolink)
-    depends_on('py-enum34', when='^python@:3.1.999', type=nolink)
+    depends_on('py-configparser', when='^python@:3.3.999', type=('build', 'run'))
+    depends_on('py-enum34', when='^python@:3.1.999', type=('build', 'run'))
 
     # TODO: Add test dependencies
     # depends_on('py-nose', type='test')
diff --git a/var/spack/repos/builtin/packages/py-gnuplot/package.py b/var/spack/repos/builtin/packages/py-gnuplot/package.py
index cc273103f2f2c7e9af1edde53c43d93c3fce65cd..f7b88d00fe6d2661b6cfff7cfb8dcc91792fce36 100644
--- a/var/spack/repos/builtin/packages/py-gnuplot/package.py
+++ b/var/spack/repos/builtin/packages/py-gnuplot/package.py
@@ -34,7 +34,7 @@ class PyGnuplot(Package):
     version('1.8', 'abd6f571e7aec68ae7db90a5217cd5b1')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-h5py/package.py b/var/spack/repos/builtin/packages/py-h5py/package.py
index 85c3996051007ad0031efd15df33e845cc879389..dffd2463d3fc743a80cef67ea84a1b8c467a9f74 100644
--- a/var/spack/repos/builtin/packages/py-h5py/package.py
+++ b/var/spack/repos/builtin/packages/py-h5py/package.py
@@ -50,10 +50,10 @@ class PyH5py(Package):
     depends_on('py-mpi4py', when='+mpi')
 
     # Build and runtime dependencies
-    depends_on('py-numpy@1.6.1:', type=nolink)
+    depends_on('py-numpy@1.6.1:', type=('build', 'run'))
 
     # Runtime dependencies
-    depends_on('py-six', type=nolink)
+    depends_on('py-six', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('configure', '--hdf5={0}'.format(spec['hdf5'].prefix))
diff --git a/var/spack/repos/builtin/packages/py-iminuit/package.py b/var/spack/repos/builtin/packages/py-iminuit/package.py
index c58b722e3b43de306f7b60890c187093ac28f3c5..3162b4131600ff9e65262474ddaa7cce573fe6db 100644
--- a/var/spack/repos/builtin/packages/py-iminuit/package.py
+++ b/var/spack/repos/builtin/packages/py-iminuit/package.py
@@ -38,8 +38,8 @@ class PyIminuit(Package):
     depends_on('py-setuptools', type='build')
 
     # Optional dependencies
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
     depends_on('py-cython', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-ipython/package.py b/var/spack/repos/builtin/packages/py-ipython/package.py
index 0c7cb7ab67895f6f1a50536f4d836164f9abed4a..b8ad5bf03a51f6a3aadaf8d88993b10ca29f4e05 100644
--- a/var/spack/repos/builtin/packages/py-ipython/package.py
+++ b/var/spack/repos/builtin/packages/py-ipython/package.py
@@ -36,8 +36,8 @@ class PyIpython(Package):
     version('2.3.1', '2b7085525dac11190bfb45bb8ec8dcbf')
 
     extends('python')
-    depends_on('py-pygments', type=nolink)
-    depends_on('py-setuptools', type=nolink)
+    depends_on('py-pygments', type=('build', 'run'))
+    depends_on('py-setuptools', type=('build', 'run'))
     depends_on('py-backports-shutil-get-terminal-size', when="^python@:3.2.999")
     depends_on('py-pathlib2', when="^python@:3.3.999")
     depends_on('py-pickleshare')
diff --git a/var/spack/repos/builtin/packages/py-jinja2/package.py b/var/spack/repos/builtin/packages/py-jinja2/package.py
index 8ef4f568c5178d1fa91b25fc6ddca1bf5b54a123..d9191952eea364aaac70e8e589f1d1eb102f4f2a 100644
--- a/var/spack/repos/builtin/packages/py-jinja2/package.py
+++ b/var/spack/repos/builtin/packages/py-jinja2/package.py
@@ -42,8 +42,8 @@ class PyJinja2(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-markupsafe', type=nolink)
-    depends_on('py-babel@0.8:', type=nolink)  # optional, required for i18n
+    depends_on('py-markupsafe', type=('build', 'run'))
+    depends_on('py-babel@0.8:', type=('build', 'run'))  # optional, required for i18n
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-logilab-common/package.py b/var/spack/repos/builtin/packages/py-logilab-common/package.py
index b8ca85eb3bbecc119e59caf00639e983fe22e8af..e8c52493b5c005c10e34a86384e02698315dedca 100644
--- a/var/spack/repos/builtin/packages/py-logilab-common/package.py
+++ b/var/spack/repos/builtin/packages/py-logilab-common/package.py
@@ -22,7 +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
 ##############################################################################
-from spack import depends_on, extends, version, nolink
+from spack import depends_on, extends, version
 from spack import Package
 
 
@@ -35,7 +35,7 @@ class PyLogilabCommon(Package):
 
     extends('python', ignore=r'bin/pytest')
     depends_on("py-setuptools", type='build')
-    depends_on("py-six", type=nolink)
+    depends_on("py-six", type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-macs2/package.py b/var/spack/repos/builtin/packages/py-macs2/package.py
index df5b00555faf753c3f501b366446aa608e7eeac6..09cb76c3d3d0a73ca7b7cfe04c174ed5b11d1087 100644
--- a/var/spack/repos/builtin/packages/py-macs2/package.py
+++ b/var/spack/repos/builtin/packages/py-macs2/package.py
@@ -39,8 +39,8 @@ class PyMacs2(Package):
 
     # Most Python packages only require py-setuptools as a build dependency.
     # However, py-macs2 requires py-setuptools during runtime as well.
-    depends_on('py-setuptools', type=nolink)
-    depends_on('py-numpy@1.6:', type=nolink)
+    depends_on('py-setuptools', type=('build', 'run'))
+    depends_on('py-numpy@1.6:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-mako/package.py b/var/spack/repos/builtin/packages/py-mako/package.py
index 460666081e6cae65a18e000bf152d2c40c7fe9dc..799bc7b5d959d97dd2817edbc13fceaa92fa668d 100644
--- a/var/spack/repos/builtin/packages/py-mako/package.py
+++ b/var/spack/repos/builtin/packages/py-mako/package.py
@@ -40,7 +40,7 @@ class PyMako(Package):
     depends_on('py-setuptools', type='build')
     # depends_on('py-mock',   type='test')  # TODO: Add test deptype
     # depends_on('py-pytest', type='test')  # TODO: Add test deptype
-    depends_on('py-markupsafe@0.9.2:', type=nolink)
+    depends_on('py-markupsafe@0.9.2:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-matplotlib/package.py b/var/spack/repos/builtin/packages/py-matplotlib/package.py
index 8661a3f7215517cd6e54e81ac4ec3ae2a22558ed..cac4da9e792fd9620a06154394c78a04fe5bf013 100644
--- a/var/spack/repos/builtin/packages/py-matplotlib/package.py
+++ b/var/spack/repos/builtin/packages/py-matplotlib/package.py
@@ -63,16 +63,16 @@ class PyMatplotlib(Package):
     depends_on('libpng@1.2:')
     depends_on('freetype@2.3:')
 
-    depends_on('py-numpy@1.6:', type=nolink)
-    depends_on('py-dateutil@1.1:', type=nolink)
-    depends_on('py-pyparsing', type=nolink)
-    depends_on('py-pytz', type=nolink)
-    depends_on('py-cycler@0.9:', type=nolink)
+    depends_on('py-numpy@1.6:', type=('build', 'run'))
+    depends_on('py-dateutil@1.1:', type=('build', 'run'))
+    depends_on('py-pyparsing', type=('build', 'run'))
+    depends_on('py-pytz', type=('build', 'run'))
+    depends_on('py-cycler@0.9:', type=('build', 'run'))
 
     # ------ Optional GUI frameworks
     depends_on('tk@8.3:', when='+tk')  # not 8.6.0 or 8.6.1
     depends_on('qt', when='+qt')
-    depends_on('py-pyside', when='+qt', type=nolink)
+    depends_on('py-pyside', when='+qt', type=('build', 'run'))
 
     # --------- Optional external programs
     # ffmpeg/avconv or mencoder
@@ -80,7 +80,7 @@ class PyMatplotlib(Package):
 
     # --------- Optional dependencies
     depends_on('pkg-config', type='build')    # why not...
-    depends_on('py-pillow', when='+image', type=nolink)
+    depends_on('py-pillow', when='+image', type=('build', 'run'))
     depends_on('py-ipython', when='+ipython')
     depends_on('ghostscript', when='+latex', type='run')
     depends_on('texlive', when='+latex', type='run')
@@ -93,7 +93,7 @@ class PyMatplotlib(Package):
     # depends_on('agg@2.4:')
     depends_on('qhull@2012.1:')
     # depends_on('ttconv')
-    depends_on('py-six@1.9.0:', type=nolink)
+    depends_on('py-six@1.9.0:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('build')
diff --git a/var/spack/repos/builtin/packages/py-meep/package.py b/var/spack/repos/builtin/packages/py-meep/package.py
index 269ac55c677e1e731b939842cf12bff12179e959..a0d57e7373c09c3b2d4a046008465ebe8e48e26e 100644
--- a/var/spack/repos/builtin/packages/py-meep/package.py
+++ b/var/spack/repos/builtin/packages/py-meep/package.py
@@ -37,9 +37,9 @@ class PyMeep(Package):
     variant('mpi', default=True, description='Enable MPI support')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-scipy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
 
     depends_on('mpi', when='+mpi')
     depends_on('meep~mpi', when='~mpi')
diff --git a/var/spack/repos/builtin/packages/py-mock/package.py b/var/spack/repos/builtin/packages/py-mock/package.py
index d397b7232921e1474ebddd04656c4ded208c7888..b33dfe73799dea02c27963acce64bae325bf71a7 100644
--- a/var/spack/repos/builtin/packages/py-mock/package.py
+++ b/var/spack/repos/builtin/packages/py-mock/package.py
@@ -36,7 +36,7 @@ class PyMock(Package):
     version('1.3.0', '73ee8a4afb3ff4da1b4afa287f39fdeb')
 
     extends('python')
-    depends_on('py-pbr', type=nolink)
+    depends_on('py-pbr', type=('build', 'run'))
     depends_on('py-setuptools@17.1:', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-nestle/package.py b/var/spack/repos/builtin/packages/py-nestle/package.py
index 03096586b9a83211e04096c25738cafc277b0dc5..a2ce2f514f3aa5c5f027ba9eee13061deb10201d 100644
--- a/var/spack/repos/builtin/packages/py-nestle/package.py
+++ b/var/spack/repos/builtin/packages/py-nestle/package.py
@@ -35,10 +35,10 @@ class PyNestle(Package):
 
     # Required dependencies
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     # Optional dependencies
-    depends_on('py-scipy', type=nolink)
+    depends_on('py-scipy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-netcdf/package.py b/var/spack/repos/builtin/packages/py-netcdf/package.py
index d238855d1e91dad4264e1faeedf6815a8d71c21a..967b8e0613463e411b4248398f2862a6c1745f29 100644
--- a/var/spack/repos/builtin/packages/py-netcdf/package.py
+++ b/var/spack/repos/builtin/packages/py-netcdf/package.py
@@ -33,9 +33,9 @@ class PyNetcdf(Package):
     version('1.2.3.1', '4fc4320d4f2a77b894ebf8da1c9895af')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-cython', type=nolink)
-    depends_on('py-setuptools', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-cython', type=('build', 'run'))
+    depends_on('py-setuptools', type=('build', 'run'))
     depends_on('netcdf')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-networkx/package.py b/var/spack/repos/builtin/packages/py-networkx/package.py
index aaeaac9674e4bebe7986215dc36692493be29b65..3086709a7935c6047778b32210e7cc63e8886995 100644
--- a/var/spack/repos/builtin/packages/py-networkx/package.py
+++ b/var/spack/repos/builtin/packages/py-networkx/package.py
@@ -35,7 +35,7 @@ class PyNetworkx(Package):
 
     extends('python')
 
-    depends_on('py-decorator', type=nolink)
+    depends_on('py-decorator', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-numexpr/package.py b/var/spack/repos/builtin/packages/py-numexpr/package.py
index 51b4ef2e92f72db39d8817222762122e9f3749af..b8e1ca5e0c9d1df26ac11ef7e15aad2a7b424f5a 100644
--- a/var/spack/repos/builtin/packages/py-numexpr/package.py
+++ b/var/spack/repos/builtin/packages/py-numexpr/package.py
@@ -34,7 +34,7 @@ class PyNumexpr(Package):
     version('2.5', '84f66cced45ba3e30dcf77a937763aaa')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-openpyxl/package.py b/var/spack/repos/builtin/packages/py-openpyxl/package.py
index 94949076ef018dd89a0aa415a7dc409288526424..b9d86367421101d2bb16429d3120e77304b656fd 100644
--- a/var/spack/repos/builtin/packages/py-openpyxl/package.py
+++ b/var/spack/repos/builtin/packages/py-openpyxl/package.py
@@ -35,7 +35,7 @@ class PyOpenpyxl(Package):
 
     extends('python')
 
-    depends_on('py-jdcal', type=nolink)
+    depends_on('py-jdcal', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-pandas/package.py b/var/spack/repos/builtin/packages/py-pandas/package.py
index ae797cee4044f83fded847fe60c961b24f0365c4..eb2d948f221bfc8620bd0b2007868968ef908d07 100644
--- a/var/spack/repos/builtin/packages/py-pandas/package.py
+++ b/var/spack/repos/builtin/packages/py-pandas/package.py
@@ -43,12 +43,12 @@ class PyPandas(Package):
     version('0.18.0', 'f143762cd7a59815e348adf4308d2cf6')
 
     extends('python')
-    depends_on('py-dateutil', type=nolink)
-    depends_on('py-numpy', type=nolink)
+    depends_on('py-dateutil', type=('build', 'run'))
+    depends_on('py-numpy', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
-    depends_on('py-pytz', type=nolink)
-    depends_on('py-numexpr', type=nolink)
-    depends_on('py-bottleneck', type=nolink)
+    depends_on('py-pytz', type=('build', 'run'))
+    depends_on('py-numexpr', type=('build', 'run'))
+    depends_on('py-bottleneck', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-periodictable/package.py b/var/spack/repos/builtin/packages/py-periodictable/package.py
index 4a5b015e60fee9948b09365c9f46d3dda7c316a9..d4f732a5871f038c9c0e20663f9ff3f414f9c548 100644
--- a/var/spack/repos/builtin/packages/py-periodictable/package.py
+++ b/var/spack/repos/builtin/packages/py-periodictable/package.py
@@ -34,8 +34,8 @@ class PyPeriodictable(Package):
 
     version('1.4.1', '7246b63cc0b6b1be6e86b6616f9e866e')
 
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-pyparsing', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-pyparsing', type=('build', 'run'))
     extends('python')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-phonopy/package.py b/var/spack/repos/builtin/packages/py-phonopy/package.py
index a4ad03f34d79aa338f381834331ba3eefdc27cf4..748f0dd36b1af1bb745e30b9b1063a6b8f0f4f01 100644
--- a/var/spack/repos/builtin/packages/py-phonopy/package.py
+++ b/var/spack/repos/builtin/packages/py-phonopy/package.py
@@ -34,10 +34,10 @@ class PyPhonopy(Package):
     version('1.10.0', '973ed1bcea46e21b9bf747aab9061ff6')
 
     extends('python')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-scipy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
-    depends_on('py-pyyaml', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
+    depends_on('py-pyyaml', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--home=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-pudb/package.py b/var/spack/repos/builtin/packages/py-pudb/package.py
index dd2c751389ab1c1a44a316135bcbd9fcef569527..d9c2d3e0a46f5fd2f2766cac91019a91de7dff0a 100644
--- a/var/spack/repos/builtin/packages/py-pudb/package.py
+++ b/var/spack/repos/builtin/packages/py-pudb/package.py
@@ -37,8 +37,8 @@ class PyPudb(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-urwid@1.1.1:', type=nolink)
-    depends_on('py-pygments@1.0:', type=nolink)
+    depends_on('py-urwid@1.1.1:', type=('build', 'run'))
+    depends_on('py-pygments@1.0:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pycodestyle/package.py b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
index 964822aac94b1e7a572bc72ac968d26a4711c655..9feb5eb8f6e440064c815e791828af7ba80e0c6e 100644
--- a/var/spack/repos/builtin/packages/py-pycodestyle/package.py
+++ b/var/spack/repos/builtin/packages/py-pycodestyle/package.py
@@ -46,7 +46,7 @@ class PyPycodestyle(Package):
 
     # Most Python packages only require py-setuptools as a build dependency.
     # However, py-pycodestyle requires py-setuptools during runtime as well.
-    depends_on('py-setuptools', type=nolink)
+    depends_on('py-setuptools', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pyflakes/package.py b/var/spack/repos/builtin/packages/py-pyflakes/package.py
index 50bc8ab4623d4597671d24d6fce2cfb54a64bf64..fc904d533455fb51f11e2d76128def08b956f38f 100644
--- a/var/spack/repos/builtin/packages/py-pyflakes/package.py
+++ b/var/spack/repos/builtin/packages/py-pyflakes/package.py
@@ -46,7 +46,7 @@ class PyPyflakes(Package):
 
     # Most Python packages only require py-setuptools as a build dependency.
     # However, py-pyflakes requires py-setuptools during runtime as well.
-    depends_on('py-setuptools', type=nolink)
+    depends_on('py-setuptools', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-pylint/package.py b/var/spack/repos/builtin/packages/py-pylint/package.py
index 8b7c52c7409f3ecfc2207dfcee05fa3987ad10a9..c0c31a76862fd54b5f40c5f61ea7f848deaee2b5 100644
--- a/var/spack/repos/builtin/packages/py-pylint/package.py
+++ b/var/spack/repos/builtin/packages/py-pylint/package.py
@@ -34,9 +34,9 @@ class PyPylint(Package):
     version('1.4.3', '5924c1c7ca5ca23647812f5971d0ea44')
 
     extends('python', ignore=r'bin/pytest')
-    depends_on('py-six', type=nolink)
-    depends_on('py-astroid', type=nolink)
-    depends_on('py-logilab-common', type=nolink)
+    depends_on('py-six', type=('build', 'run'))
+    depends_on('py-astroid', type=('build', 'run'))
+    depends_on('py-logilab-common', type=('build', 'run'))
     depends_on('py-nose', type='build')
     depends_on('py-setuptools', type='build')
 
diff --git a/var/spack/repos/builtin/packages/py-pyqt/package.py b/var/spack/repos/builtin/packages/py-pyqt/package.py
index 43f2e2630b8ebdbcee594ad239db7a80a821b700..e1e87880e0f411fba43895da2f811349f6c99e62 100644
--- a/var/spack/repos/builtin/packages/py-pyqt/package.py
+++ b/var/spack/repos/builtin/packages/py-pyqt/package.py
@@ -35,7 +35,7 @@ class PyPyqt(Package):
     version('4.11.3', '997c3e443165a89a559e0d96b061bf70')
 
     extends('python')
-    depends_on('py-sip', type=nolink)
+    depends_on('py-sip', type=('build', 'run'))
 
     # TODO: allow qt5 when conditional deps are supported.
     # TODO: Fix version matching so that @4 works like @:4
diff --git a/var/spack/repos/builtin/packages/py-pyside/package.py b/var/spack/repos/builtin/packages/py-pyside/package.py
index e6c115027efea0bef446bd2f5f4183d9f1e3ae19..ab8c70140c27aab7a12475eec217472271fc096f 100644
--- a/var/spack/repos/builtin/packages/py-pyside/package.py
+++ b/var/spack/repos/builtin/packages/py-pyside/package.py
@@ -38,7 +38,7 @@ class PyPyside(Package):
 
     extends('python')
     depends_on('py-setuptools', type='build')
-    depends_on('py-sphinx', type=nolink)
+    depends_on('py-sphinx', type=('build', 'run'))
     depends_on('qt@4.5:4.9')
     depends_on('libxml2@2.6.32:')
     depends_on('libxslt@1.1.19:')
diff --git a/var/spack/repos/builtin/packages/py-pytables/package.py b/var/spack/repos/builtin/packages/py-pytables/package.py
index 30d8fab87a3820421260ae9d14c6de6e71ab0967..110d13f355d4b365dba8a0a8e511800543156633 100644
--- a/var/spack/repos/builtin/packages/py-pytables/package.py
+++ b/var/spack/repos/builtin/packages/py-pytables/package.py
@@ -37,9 +37,9 @@ class PyPytables(Package):
 
     extends('python')
     depends_on('hdf5')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-numexpr', type=nolink)
-    depends_on('py-cython', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-numexpr', type=('build', 'run'))
+    depends_on('py-cython', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-pytest/package.py b/var/spack/repos/builtin/packages/py-pytest/package.py
index 4208b9d3ec5b5d285c47934d2d3b55ba7523faba..1ad356ff4b4272400e2652ebe9600d00816b94f1 100644
--- a/var/spack/repos/builtin/packages/py-pytest/package.py
+++ b/var/spack/repos/builtin/packages/py-pytest/package.py
@@ -37,7 +37,7 @@ class PyPytest(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-py@1.4.29:', type=nolink)
+    depends_on('py-py@1.4.29:', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-python-daemon/package.py b/var/spack/repos/builtin/packages/py-python-daemon/package.py
index c696b7490bf4836040ed8357b50821e30b4c35c8..f8532c9175278b76f5253a4e95b585e2ff93ae62 100644
--- a/var/spack/repos/builtin/packages/py-python-daemon/package.py
+++ b/var/spack/repos/builtin/packages/py-python-daemon/package.py
@@ -44,7 +44,7 @@ class PyPythonDaemon(Package):
 
     extends("python")
     depends_on("py-setuptools", type='build')
-    depends_on("py-lockfile", type=nolink)
+    depends_on("py-lockfile", type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-restview/package.py b/var/spack/repos/builtin/packages/py-restview/package.py
index 9b0bd437c062ec8937b35df866c0158522706364..1aaf5d8f8a5d485865badbb828f0b166c67c0b7c 100644
--- a/var/spack/repos/builtin/packages/py-restview/package.py
+++ b/var/spack/repos/builtin/packages/py-restview/package.py
@@ -34,8 +34,8 @@ class PyRestview(Package):
     version('2.6.1', 'ac8b70e15b8f1732d1733d674813666b')
 
     extends('python')
-    depends_on('py-docutils', type=nolink)
-    depends_on('py-pygments', type=nolink)
+    depends_on('py-docutils', type=('build', 'run'))
+    depends_on('py-pygments', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-rpy2/package.py b/var/spack/repos/builtin/packages/py-rpy2/package.py
index ec3ced22f14a08951d06f9779002f067d3813e25..6308afd3dde24824922e2e376a5be21633f21b58 100644
--- a/var/spack/repos/builtin/packages/py-rpy2/package.py
+++ b/var/spack/repos/builtin/packages/py-rpy2/package.py
@@ -39,7 +39,7 @@ class PyRpy2(Package):
     version('2.5.6', 'a36e758b633ce6aec6a5f450bfee980f')
 
     extends('python')
-    depends_on('py-six', type=nolink)
+    depends_on('py-six', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
 
     depends_on('R')
diff --git a/var/spack/repos/builtin/packages/py-scikit-image/package.py b/var/spack/repos/builtin/packages/py-scikit-image/package.py
index 124d2ec4b7abc7e15038c516b3310af5cf35737d..9ea21bdbdf6796ec5fc20a99a03bc13450945630 100644
--- a/var/spack/repos/builtin/packages/py-scikit-image/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-image/package.py
@@ -36,12 +36,12 @@ class PyScikitImage(Package):
 
     extends('python', ignore=r'bin/.*\.py$')
 
-    depends_on('py-dask', type=nolink)
-    depends_on('pil', type=nolink)
-    depends_on('py-networkx', type=nolink)
-    depends_on('py-six', type=nolink)
-    depends_on('py-scipy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
+    depends_on('py-dask', type=('build', 'run'))
+    depends_on('pil', type=('build', 'run'))
+    depends_on('py-networkx', type=('build', 'run'))
+    depends_on('py-six', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
     depends_on('py-setuptools', type='build')
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-scikit-learn/package.py b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
index 09318a6c56d72da8138fbdc557c135da06a43580..4a713e6565e5bcb3194c44178f63ab5d7adc6f8a 100644
--- a/var/spack/repos/builtin/packages/py-scikit-learn/package.py
+++ b/var/spack/repos/builtin/packages/py-scikit-learn/package.py
@@ -37,8 +37,8 @@ class PyScikitLearn(Package):
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-scipy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix=%s' % prefix)
diff --git a/var/spack/repos/builtin/packages/py-scipy/package.py b/var/spack/repos/builtin/packages/py-scipy/package.py
index 71bf83c3f08ebb3743f8e6f2131f03091e5f66b5..509a1f8b9431f55648f6ed1ee453c4fad270d1ea 100644
--- a/var/spack/repos/builtin/packages/py-scipy/package.py
+++ b/var/spack/repos/builtin/packages/py-scipy/package.py
@@ -44,7 +44,7 @@ class PyScipy(Package):
     depends_on('py-nose', type='build')
     # Known not to work with 2.23, 2.25
     depends_on('binutils@2.26:', type='build')
-    depends_on('py-numpy@1.7.1:+blas+lapack', type=nolink)
+    depends_on('py-numpy@1.7.1:+blas+lapack', type=('build', 'run'))
     depends_on('blas')
     depends_on('lapack')
 
diff --git a/var/spack/repos/builtin/packages/py-sncosmo/package.py b/var/spack/repos/builtin/packages/py-sncosmo/package.py
index d5e32fd5e2d9a6d094f0c5eaf174733f34c8797a..6a1fb7c557ea3d3cf3e3657b8fe3a3622baab2dc 100644
--- a/var/spack/repos/builtin/packages/py-sncosmo/package.py
+++ b/var/spack/repos/builtin/packages/py-sncosmo/package.py
@@ -37,15 +37,15 @@ class PySncosmo(Package):
     # Required dependencies
     # py-sncosmo binaries are duplicates of those from py-astropy
     extends('python', ignore=r'bin/.*')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-scipy', type=nolink)
-    depends_on('py-astropy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-scipy', type=('build', 'run'))
+    depends_on('py-astropy', type=('build', 'run'))
 
     # Recommended dependencies
-    depends_on('py-matplotlib', type=nolink)
-    depends_on('py-iminuit', type=nolink)
-    depends_on('py-emcee', type=nolink)
-    depends_on('py-nestle', type=nolink)
+    depends_on('py-matplotlib', type=('build', 'run'))
+    depends_on('py-iminuit', type=('build', 'run'))
+    depends_on('py-emcee', type=('build', 'run'))
+    depends_on('py-nestle', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-sphinx/package.py b/var/spack/repos/builtin/packages/py-sphinx/package.py
index 923962a2dc5af844b632e59ca2366ae7bf911a26..48b19d4d7b71af71665a8310a29476e6d4f1e8da 100644
--- a/var/spack/repos/builtin/packages/py-sphinx/package.py
+++ b/var/spack/repos/builtin/packages/py-sphinx/package.py
@@ -38,17 +38,17 @@ class PySphinx(Package):
 
     # Most Python packages only require py-setuptools as a build dependency.
     # However, py-sphinx requires py-setuptools during runtime as well.
-    depends_on('py-setuptools',              type=nolink)
+    depends_on('py-setuptools',              type=('build', 'run'))
 
-    depends_on('py-six@1.4:',                type=nolink)
-    depends_on('py-jinja2@2.3:',             type=nolink)
-    depends_on('py-pygments@2.0:',           type=nolink)
-    depends_on('py-docutils@0.11:',          type=nolink)
-    depends_on('py-snowballstemmer@1.1:',    type=nolink)
-    depends_on('py-babel@1.3:',              type=nolink)  # not 2.0
-    depends_on('py-alabaster@0.7:',          type=nolink)
-    depends_on('py-imagesize', when='@1.4:', type=nolink)
-    depends_on('py-sphinx-rtd-theme@0.1:',   type=nolink)  # optional as of 1.4
+    depends_on('py-six@1.4:',                type=('build', 'run'))
+    depends_on('py-jinja2@2.3:',             type=('build', 'run'))
+    depends_on('py-pygments@2.0:',           type=('build', 'run'))
+    depends_on('py-docutils@0.11:',          type=('build', 'run'))
+    depends_on('py-snowballstemmer@1.1:',    type=('build', 'run'))
+    depends_on('py-babel@1.3:',              type=('build', 'run'))  # not 2.0
+    depends_on('py-alabaster@0.7:',          type=('build', 'run'))
+    depends_on('py-imagesize', when='@1.4:', type=('build', 'run'))
+    depends_on('py-sphinx-rtd-theme@0.1:',   type=('build', 'run'))  # optional as of 1.4
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-traitlets/package.py b/var/spack/repos/builtin/packages/py-traitlets/package.py
index c414dba758dc72a02cc3d1a53e2354933d53f194..2a087dffb98a7269e578ed2832bbd6ef9b64051c 100644
--- a/var/spack/repos/builtin/packages/py-traitlets/package.py
+++ b/var/spack/repos/builtin/packages/py-traitlets/package.py
@@ -38,12 +38,12 @@ class PyTraitlets(Package):
     version('4.2.0', '53553a10d124e264fd2e234d0571b7d0')
     version('4.1.0', 'd5bc75c7bd529afb40afce86c2facc3a')
     version('4.0.0', 'b5b95ea5941fd9619b4704dfd8201568')
-    version('4.0'  , '14544e25ccf8e920ed1cbf833852481f')
+    version('4.0',   '14544e25ccf8e920ed1cbf833852481f')
 
     extends('python')
 
     depends_on('py-setuptools', type='build')
-    depends_on('py-decorator', type=nolink)
+    depends_on('py-decorator', type=('build', 'run'))
     depends_on('py-ipython-genutils')
     depends_on('py-enum34', when='^python@:3.3')
 
diff --git a/var/spack/repos/builtin/packages/py-tuiview/package.py b/var/spack/repos/builtin/packages/py-tuiview/package.py
index e20de3ff791cf3a38d5b8db040eb4c5f49483d32..5ce2043fb393963b5f7e93e3deb9c1c8681f1937 100644
--- a/var/spack/repos/builtin/packages/py-tuiview/package.py
+++ b/var/spack/repos/builtin/packages/py-tuiview/package.py
@@ -36,8 +36,8 @@ class PyTuiview(Package):
     version('1.1.7', '4b3b38a820cc239c8ab4a181ac5d4c30')
 
     extends("python")
-    depends_on("py-pyqt", type=nolink)
-    depends_on("py-numpy", type=nolink)
+    depends_on("py-pyqt", type=('build', 'run'))
+    depends_on("py-numpy", type=('build', 'run'))
     depends_on("gdal")
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/py-wcsaxes/package.py b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
index ddc10d3e2201c8e38012c20fc0844a487b3152fa..f7b5c13a133603843953b8053912ae5f311a80f5 100644
--- a/var/spack/repos/builtin/packages/py-wcsaxes/package.py
+++ b/var/spack/repos/builtin/packages/py-wcsaxes/package.py
@@ -35,9 +35,9 @@ class PyWcsaxes(Package):
     version('0.8', 'de1c60fdae4c330bf5ddb9f1ab5ab920')
 
     extends('python', ignore=r'bin/pbr')
-    depends_on('py-numpy', type=nolink)
-    depends_on('py-matplotlib', type=nolink)
-    depends_on('py-astropy', type=nolink)
+    depends_on('py-numpy', type=('build', 'run'))
+    depends_on('py-matplotlib', type=('build', 'run'))
+    depends_on('py-astropy', type=('build', 'run'))
 
     def install(self, spec, prefix):
         setup_py('install', '--prefix={0}'.format(prefix))
diff --git a/var/spack/repos/builtin/packages/py-yt/package.py b/var/spack/repos/builtin/packages/py-yt/package.py
index 646bd4db2f79fc29273dd774122680fb3697a037..cf359121916db1ee87b22ce6d69a328d346af2a3 100644
--- a/var/spack/repos/builtin/packages/py-yt/package.py
+++ b/var/spack/repos/builtin/packages/py-yt/package.py
@@ -56,15 +56,15 @@ class PyYt(Package):
 
     extends("python")
 
-    depends_on("py-astropy", type="nolink", when="+astropy")
-    depends_on("py-cython", type="nolink")
-    depends_on("py-h5py", type="nolink", when="+h5py")
-    depends_on("py-ipython", type="nolink")
-    depends_on("py-matplotlib", type="nolink")
-    depends_on("py-numpy", type="nolink")
-    depends_on("py-scipy", type="nolink", when="+scipy")
+    depends_on("py-astropy", type=('build', 'run'), when="+astropy")
+    depends_on("py-cython", type=('build', 'run'))
+    depends_on("py-h5py", type=('build', 'run'), when="+h5py")
+    depends_on("py-ipython", type=('build', 'run'))
+    depends_on("py-matplotlib", type=('build', 'run'))
+    depends_on("py-numpy", type=('build', 'run'))
+    depends_on("py-scipy", type=('build', 'run'), when="+scipy")
     depends_on("py-setuptools", type="build")
-    depends_on("py-sympy", type="nolink")
+    depends_on("py-sympy", type=('build', 'run'))
     depends_on("python @2.7:2.999,3.4:")
 
     def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py
index f9b953a009bf8cc3a54bc36ef51be6c3409f32be..7a5904ddd92af5b076b4edaf65a7b31318cef9cf 100644
--- a/var/spack/repos/builtin/packages/python/package.py
+++ b/var/spack/repos/builtin/packages/python/package.py
@@ -347,7 +347,8 @@ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
         spack_env.set('PYTHONHOME', prefix.strip('\n'))
 
         python_paths = []
-        for d in extension_spec.traverse(deptype=nolink, deptype_query='run'):
+        for d in extension_spec.traverse(
+                deptype=('build', 'run'), deptype_query='run'):
             if d.package.extends(self.spec):
                 python_paths.append(join_path(d.prefix,
                                               self.site_packages_dir))
diff --git a/var/spack/repos/builtin/packages/r-c50/package.py b/var/spack/repos/builtin/packages/r-c50/package.py
index 6fc5b60fdc5f571b037d32cbc2ebc010ac8a7c8f..571f8f461ba9483efeaefdc54e874acae9e73882 100644
--- a/var/spack/repos/builtin/packages/r-c50/package.py
+++ b/var/spack/repos/builtin/packages/r-c50/package.py
@@ -35,4 +35,4 @@ class RC50(RPackage):
 
     version('0.1.0-24', '42631e65c5c579532cc6edf5ea175949')
 
-    depends_on('r-partykit', type=nolink)
+    depends_on('r-partykit', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-car/package.py b/var/spack/repos/builtin/packages/r-car/package.py
index b6232d6297ee702696d08f91192791cde948518a..80a0206a8ac7bf6d07056093233c7006a7df7d0f 100644
--- a/var/spack/repos/builtin/packages/r-car/package.py
+++ b/var/spack/repos/builtin/packages/r-car/package.py
@@ -35,8 +35,8 @@ class RCar(RPackage):
 
     version('2.1-2', '0f78ad74ef7130126d319acec23951a0')
 
-    depends_on('r-mass', type=nolink)
-    depends_on('r-mgcv', type=nolink)
-    depends_on('r-nnet', type=nolink)
-    depends_on('r-pbkrtest', type=nolink)
-    depends_on('r-quantreg', type=nolink)
+    depends_on('r-mass', type=('build','run'))
+    depends_on('r-mgcv', type=('build','run'))
+    depends_on('r-nnet', type=('build','run'))
+    depends_on('r-pbkrtest', type=('build','run'))
+    depends_on('r-quantreg', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-caret/package.py b/var/spack/repos/builtin/packages/r-caret/package.py
index f98cebcff8a99266dfc2ee865e0ce9e6ee5a19eb..d795cfa204758f0458e1a910d3f72c427d56941c 100644
--- a/var/spack/repos/builtin/packages/r-caret/package.py
+++ b/var/spack/repos/builtin/packages/r-caret/package.py
@@ -35,10 +35,10 @@ class RCaret(RPackage):
 
     version('6.0-70', '202d7abb6a679af716ea69fb2573f108')
 
-    depends_on('r-lattice', type=nolink)
-    depends_on('r-ggplot2', type=nolink)
-    depends_on('r-car', type=nolink)
-    depends_on('r-foreach', type=nolink)
-    depends_on('r-plyr', type=nolink)
-    depends_on('r-nlme', type=nolink)
-    depends_on('r-reshape2', type=nolink)
+    depends_on('r-lattice', type=('build','run'))
+    depends_on('r-ggplot2', type=('build','run'))
+    depends_on('r-car', type=('build','run'))
+    depends_on('r-foreach', type=('build','run'))
+    depends_on('r-plyr', type=('build','run'))
+    depends_on('r-nlme', type=('build','run'))
+    depends_on('r-reshape2', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-catools/package.py b/var/spack/repos/builtin/packages/r-catools/package.py
index 57e9c17f24247bbdead27132d7d3bdc736bdabbe..7b82a19c0167baeced7c2c051484b6734a5ac63b 100644
--- a/var/spack/repos/builtin/packages/r-catools/package.py
+++ b/var/spack/repos/builtin/packages/r-catools/package.py
@@ -38,4 +38,4 @@ class RCatools(RPackage):
 
     version('1.17.1', '5c872bbc78b177b306f36709deb44498')
 
-    depends_on('r-bitops', type=nolink)
+    depends_on('r-bitops', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-class/package.py b/var/spack/repos/builtin/packages/r-class/package.py
index d455deb303b3fecb5807258d949ef9dc72ef377f..de81e7588e064dfd1b42773896955b1debd48a4e 100644
--- a/var/spack/repos/builtin/packages/r-class/package.py
+++ b/var/spack/repos/builtin/packages/r-class/package.py
@@ -35,4 +35,4 @@ class RClass(RPackage):
 
     version('7.3-14', '6a21dd206fe4ea29c55faeb65fb2b71e')
 
-    depends_on('r-mass', type=nolink)
+    depends_on('r-mass', type=('build','run'))
diff --git a/var/spack/repos/builtin/packages/r-datatable/package.py b/var/spack/repos/builtin/packages/r-datatable/package.py
index fecde7ede2b92a01dc3b8521141817c66e4fbc8e..23802524e82d39bd41b92e88385f7b41b550bf91 100644
--- a/var/spack/repos/builtin/packages/r-datatable/package.py
+++ b/var/spack/repos/builtin/packages/r-datatable/package.py
@@ -37,4 +37,4 @@ class RDatatable(RPackage):
 
     version('1.9.6', 'b1c0c7cce490bdf42ab288541cc55372')
 
-    depends_on('r-chron', type='nolink')
+    depends_on('r-chron', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-devtools/package.py b/var/spack/repos/builtin/packages/r-devtools/package.py
index 4a8a8e3026e3d588b5968c38e42e19cb2796a315..9895a3b3900f0feba9e242cbe8523786ecec5bbd 100644
--- a/var/spack/repos/builtin/packages/r-devtools/package.py
+++ b/var/spack/repos/builtin/packages/r-devtools/package.py
@@ -34,11 +34,11 @@ class RDevtools(RPackage):
 
     version('1.11.1', '242672ee27d24dddcbdaac88c586b6c2')
 
-    depends_on('r-httr', type=nolink)
-    depends_on('r-memoise', type=nolink)
-    depends_on('r-whisker', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-rstudioapi', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-git2r', type=nolink)
-    depends_on('r-withr', type=nolink)
+    depends_on('r-httr', type=('build', 'run'))
+    depends_on('r-memoise', type=('build', 'run'))
+    depends_on('r-whisker', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-rstudioapi', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-git2r', type=('build', 'run'))
+    depends_on('r-withr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-diagrammer/package.py b/var/spack/repos/builtin/packages/r-diagrammer/package.py
index f99e14672407893848acb174a0217189b5517180..5f8e27a102785f451dbeef660e02a13180d9d123 100644
--- a/var/spack/repos/builtin/packages/r-diagrammer/package.py
+++ b/var/spack/repos/builtin/packages/r-diagrammer/package.py
@@ -34,10 +34,10 @@ class RDiagrammer(RPackage):
 
     version('0.8.4', '9ee295c744f5d4ba9a84289ca7bdaf1a')
 
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-igraph', type=nolink)
-    depends_on('r-influencer', type=nolink)
-    depends_on('r-rstudioapi@0.6:', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-visnetwork', type=nolink)
-    depends_on('r-scales', type=nolink)
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-igraph', type=('build', 'run'))
+    depends_on('r-influencer', type=('build', 'run'))
+    depends_on('r-rstudioapi@0.6:', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-visnetwork', type=('build', 'run'))
+    depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-doparallel/package.py b/var/spack/repos/builtin/packages/r-doparallel/package.py
index f74b23aae0474f1bf90c1e092dddaf7ef4c805f4..fa039568c6b9eecfaff97c35167cef96c9b18832 100644
--- a/var/spack/repos/builtin/packages/r-doparallel/package.py
+++ b/var/spack/repos/builtin/packages/r-doparallel/package.py
@@ -35,5 +35,5 @@ class RDoparallel(RPackage):
 
     version('1.0.10', 'd9fbde8f315d98d055483ee3493c9b43')
 
-    depends_on('r-foreach', type=nolink)
-    depends_on('r-iterators', type=nolink)
+    depends_on('r-foreach', type=('build', 'run'))
+    depends_on('r-iterators', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dplyr/package.py b/var/spack/repos/builtin/packages/r-dplyr/package.py
index 77877a0e020ec45010564b486bca17efdb754bfd..6ffa48adc8006f033565eec9f226bf9c17e0bc5a 100644
--- a/var/spack/repos/builtin/packages/r-dplyr/package.py
+++ b/var/spack/repos/builtin/packages/r-dplyr/package.py
@@ -35,11 +35,11 @@ class RDplyr(RPackage):
 
     version('0.5.0', '1fcafcacca70806eea2e6d465cdb94ef')
 
-    depends_on('r-assertthat', type=nolink)
-    depends_on('r-r6', type=nolink)
-    depends_on('r-rcpp', type=nolink)
-    depends_on('r-tibble', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-lazyeval', type=nolink)
-    depends_on('r-dbi', type=nolink)
-    depends_on('r-bh', type=nolink)
+    depends_on('r-assertthat', type=('build', 'run'))
+    depends_on('r-r6', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
+    depends_on('r-tibble', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-lazyeval', type=('build', 'run'))
+    depends_on('r-dbi', type=('build', 'run'))
+    depends_on('r-bh', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dt/package.py b/var/spack/repos/builtin/packages/r-dt/package.py
index d5680bee992efffec936bd5b40da175c2ed3f502..85e6fee8374a7b21c486a6e541619e25c7b15a96 100644
--- a/var/spack/repos/builtin/packages/r-dt/package.py
+++ b/var/spack/repos/builtin/packages/r-dt/package.py
@@ -36,6 +36,6 @@ class RDt(RPackage):
 
     version('0.1', '5c8df984921fa484784ec4b8a4fb6f3c')
 
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-magrittr', type=nolink)
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-dygraphs/package.py b/var/spack/repos/builtin/packages/r-dygraphs/package.py
index 80aedda6d63e7e2a8d5d065fe9b9a16959b616b6..323fb6d584b4c004cd5cc8edbc80b7ad9f1ea288 100644
--- a/var/spack/repos/builtin/packages/r-dygraphs/package.py
+++ b/var/spack/repos/builtin/packages/r-dygraphs/package.py
@@ -38,7 +38,7 @@ class RDygraphs(RPackage):
 
     version('0.9', '7f0ce4312bcd3f0a58b8c03b2772f833')
 
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-zoo', type=nolink)
-    depends_on('r-xts', type=nolink)
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-zoo', type=('build', 'run'))
+    depends_on('r-xts', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-e1071/package.py b/var/spack/repos/builtin/packages/r-e1071/package.py
index f9ba6854cce93cb7a27a5ad7fc6f23706614337f..4d79fcccd72474a8edc823b6bf2639e1d23d45a7 100644
--- a/var/spack/repos/builtin/packages/r-e1071/package.py
+++ b/var/spack/repos/builtin/packages/r-e1071/package.py
@@ -36,4 +36,4 @@ class RE1071(RPackage):
 
     version('1.6-7', 'd109a7e3dd0c905d420e327a9a921f5a')
 
-    depends_on('r-class', type=nolink)
+    depends_on('r-class', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-evaluate/package.py b/var/spack/repos/builtin/packages/r-evaluate/package.py
index 5516cc86970ae00abdf312fe342a246073b74730..cf6c72dc62ea3d76eb657d0db06ced8bcb8fdf0a 100644
--- a/var/spack/repos/builtin/packages/r-evaluate/package.py
+++ b/var/spack/repos/builtin/packages/r-evaluate/package.py
@@ -37,4 +37,4 @@ class REvaluate(RPackage):
 
     version('0.9', '877d89ce8a9ef7f403b1089ca1021775')
 
-    depends_on('r-stringr', type=nolink)
+    depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-foreach/package.py b/var/spack/repos/builtin/packages/r-foreach/package.py
index 85f76b4779f4ae0d44058034f4f9398d40767b44..78efe02188608b216bb130caa22ae5491c7f02a7 100644
--- a/var/spack/repos/builtin/packages/r-foreach/package.py
+++ b/var/spack/repos/builtin/packages/r-foreach/package.py
@@ -40,5 +40,5 @@ class RForeach(RPackage):
 
     version('1.4.3', 'ef45768126661b259f9b8994462c49a0')
 
-    depends_on('r-codetools', type=nolink)
-    depends_on('r-iterators', type=nolink)
+    depends_on('r-codetools', type=('build', 'run'))
+    depends_on('r-iterators', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-formatr/package.py b/var/spack/repos/builtin/packages/r-formatr/package.py
index db812b3eb68b83a702a72a3502bbc292bdf93014..011111af07bb1351e63606d736858d4054d81e6e 100644
--- a/var/spack/repos/builtin/packages/r-formatr/package.py
+++ b/var/spack/repos/builtin/packages/r-formatr/package.py
@@ -39,7 +39,7 @@ class RFormatr(RPackage):
 
     version('1.4', '98b9b64b2785b35f9df403e1aab6c73c')
 
-    depends_on('r-codetools', type=nolink)
-    depends_on('r-shiny', type=nolink)
-    depends_on('r-testit', type=nolink)
-    # depends_on('r-knitr', type=nolink) - mutual dependency
+    depends_on('r-codetools', type=('build', 'run'))
+    depends_on('r-shiny', type=('build', 'run'))
+    depends_on('r-testit', type=('build', 'run'))
+    # depends_on('r-knitr', type=('build', 'run')) - mutual dependency
diff --git a/var/spack/repos/builtin/packages/r-gdata/package.py b/var/spack/repos/builtin/packages/r-gdata/package.py
index 591d9cf18a09d6aac35f28b93b1ec5fe84606c7b..ef001699bb4e874a6dbaecdb1148732416fbb88a 100644
--- a/var/spack/repos/builtin/packages/r-gdata/package.py
+++ b/var/spack/repos/builtin/packages/r-gdata/package.py
@@ -50,4 +50,4 @@ class RGdata(RPackage):
 
     version('2.17.0', 'c716b663b9dc16ad8cafe6acc781a75f')
 
-    depends_on('r-gtools', type=nolink)
+    depends_on('r-gtools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-geosphere/package.py b/var/spack/repos/builtin/packages/r-geosphere/package.py
index 5722fc1f312cb62dbb92cf59cc0fa3463dc21261..d90594a3e0c1319431d8d5a1f40f43d30edd1cef 100644
--- a/var/spack/repos/builtin/packages/r-geosphere/package.py
+++ b/var/spack/repos/builtin/packages/r-geosphere/package.py
@@ -36,4 +36,4 @@ class RGeosphere(RPackage):
 
     version('1.5-5', '28efb7a8e266c7f076cdbcf642455f3e')
 
-    depends_on('r-sp', type=nolink)
+    depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggmap/package.py b/var/spack/repos/builtin/packages/r-ggmap/package.py
index be611e356283fed9e51c271eb1b8550f96834587..65a69553a10148f3d4acdd817af3a3fe949dbc89 100644
--- a/var/spack/repos/builtin/packages/r-ggmap/package.py
+++ b/var/spack/repos/builtin/packages/r-ggmap/package.py
@@ -37,15 +37,15 @@ class RGgmap(RPackage):
 
     version('2.6.1', '25ad414a3a1c6d59a227a9f22601211a')
 
-    depends_on('r-ggplot2', type=nolink)
-    depends_on('r-proto', type=nolink)
-    depends_on('r-rgooglemaps', type=nolink)
-    depends_on('r-png', type=nolink)
-    depends_on('r-plyr', type=nolink)
-    depends_on('r-reshape2', type=nolink)
-    depends_on('r-rjson', type=nolink)
-    depends_on('r-mapproj', type=nolink)
-    depends_on('r-jpeg', type=nolink)
-    depends_on('r-geosphere', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-scales', type=nolink)
+    depends_on('r-ggplot2', type=('build', 'run'))
+    depends_on('r-proto', type=('build', 'run'))
+    depends_on('r-rgooglemaps', type=('build', 'run'))
+    depends_on('r-png', type=('build', 'run'))
+    depends_on('r-plyr', type=('build', 'run'))
+    depends_on('r-reshape2', type=('build', 'run'))
+    depends_on('r-rjson', type=('build', 'run'))
+    depends_on('r-mapproj', type=('build', 'run'))
+    depends_on('r-jpeg', type=('build', 'run'))
+    depends_on('r-geosphere', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggplot2/package.py b/var/spack/repos/builtin/packages/r-ggplot2/package.py
index 19da1eee9e2300b3b56b9abafef034bb24456247..3b4c437f0c22e977e378c38831a63b854c4d79cd 100644
--- a/var/spack/repos/builtin/packages/r-ggplot2/package.py
+++ b/var/spack/repos/builtin/packages/r-ggplot2/package.py
@@ -40,9 +40,9 @@ class RGgplot2(RPackage):
 
     version('2.1.0', '771928cfb97c649c720423deb3ec7fd3')
 
-    depends_on('r-digest', type=nolink)
-    depends_on('r-gtable', type=nolink)
-    depends_on('r-mass', type=nolink)
-    depends_on('r-plyr', type=nolink)
-    depends_on('r-reshape2', type=nolink)
-    depends_on('r-scales', type=nolink)
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-gtable', type=('build', 'run'))
+    depends_on('r-mass', type=('build', 'run'))
+    depends_on('r-plyr', type=('build', 'run'))
+    depends_on('r-reshape2', type=('build', 'run'))
+    depends_on('r-scales', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ggvis/package.py b/var/spack/repos/builtin/packages/r-ggvis/package.py
index 3eb27d8483dc39fd0105be1d8814417b6b8e5de9..5acbff04b082dc0bdcdd089984d3cca59761b791 100644
--- a/var/spack/repos/builtin/packages/r-ggvis/package.py
+++ b/var/spack/repos/builtin/packages/r-ggvis/package.py
@@ -36,10 +36,10 @@ class RGgvis(RPackage):
 
     version('0.4.2', '039f45e5c7f1e0652779163d7d99f922')
 
-    depends_on('r-assertthat', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-shiny', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-dplyr', type=nolink)
-    depends_on('r-lazyeval', type=nolink)
-    depends_on('r-htmltools', type=nolink)
+    depends_on('r-assertthat', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-shiny', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-dplyr', type=('build', 'run'))
+    depends_on('r-lazyeval', type=('build', 'run'))
+    depends_on('r-htmltools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gistr/package.py b/var/spack/repos/builtin/packages/r-gistr/package.py
index b939fdfe5b2f7917c91c0a0c5dfc5674ced8346e..67c34cfffc5709de945507a364515b35503751f0 100644
--- a/var/spack/repos/builtin/packages/r-gistr/package.py
+++ b/var/spack/repos/builtin/packages/r-gistr/package.py
@@ -40,10 +40,10 @@ class RGistr(RPackage):
 
     version('0.3.6', '49d548cb3eca0e66711aece37757a2c0')
 
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-httr', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-assertthat', type=nolink)
-    depends_on('r-knitr', type=nolink)
-    depends_on('r-rmarkdown', type=nolink)
-    depends_on('r-dplyr', type=nolink)
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-httr', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-assertthat', type=('build', 'run'))
+    depends_on('r-knitr', type=('build', 'run'))
+    depends_on('r-rmarkdown', type=('build', 'run'))
+    depends_on('r-dplyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-glmnet/package.py b/var/spack/repos/builtin/packages/r-glmnet/package.py
index 1b56d9b5ef2b9ec3cb79f8123967c6da26aab36a..ac44d42c121fac5148a186d66a8178d1d7a99734 100644
--- a/var/spack/repos/builtin/packages/r-glmnet/package.py
+++ b/var/spack/repos/builtin/packages/r-glmnet/package.py
@@ -39,5 +39,5 @@ class RGlmnet(RPackage):
 
     version('2.0-5', '049b18caa29529614cd684db3beaec2a')
 
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-foreach', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-foreach', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-googlevis/package.py b/var/spack/repos/builtin/packages/r-googlevis/package.py
index 1d86dd75929e7912f8a8ecd8ba08311cc199b245..29916965b45c82ad5663faee6b51e63c5d964854 100644
--- a/var/spack/repos/builtin/packages/r-googlevis/package.py
+++ b/var/spack/repos/builtin/packages/r-googlevis/package.py
@@ -38,4 +38,4 @@ class RGooglevis(RPackage):
 
     version('0.6.0', 'ec36fd2a6884ddc7baa894007d0d0468')
 
-    depends_on('r-jsonlite', type=nolink)
+    depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-gridextra/package.py b/var/spack/repos/builtin/packages/r-gridextra/package.py
index 77808b5e4c2128472b6805c6ab00f6b4a7a76785..304035dc0668232c3a17c3bda59a411b3e0ba707 100644
--- a/var/spack/repos/builtin/packages/r-gridextra/package.py
+++ b/var/spack/repos/builtin/packages/r-gridextra/package.py
@@ -35,4 +35,4 @@ class RGridextra(RPackage):
 
     version('2.2.1', '7076c2122d387c7ef3add69a1c4fc1b2')
 
-    depends_on('r-gtable', type=nolink)
+    depends_on('r-gtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-hexbin/package.py b/var/spack/repos/builtin/packages/r-hexbin/package.py
index 5e336c021adbdc24475a5342970da03263e0022f..0a5c66c1a37ad6ccff29642cd774db2f6333c2f6 100644
--- a/var/spack/repos/builtin/packages/r-hexbin/package.py
+++ b/var/spack/repos/builtin/packages/r-hexbin/package.py
@@ -36,4 +36,4 @@ class RHexbin(RPackage):
 
     version('1.27.1', '7f380390c6511e97df10a810a3b3bb7c')
 
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-htmltools/package.py b/var/spack/repos/builtin/packages/r-htmltools/package.py
index 7da66f331465e1a71299b993d0dcfd02590827fb..9374e1f9cc7ddc28e094d9f79473fb7fff4e7709 100644
--- a/var/spack/repos/builtin/packages/r-htmltools/package.py
+++ b/var/spack/repos/builtin/packages/r-htmltools/package.py
@@ -34,5 +34,5 @@ class RHtmltools(RPackage):
 
     version('0.3.5', '5f001aff4a39e329f7342dcec5139724')
 
-    depends_on('r-digest', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-htmlwidgets/package.py b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
index 69f64c2a31b090ad2ad4dd4966eb86ce7308de93..85ab593245c2c1784076935410665f541ce9792f 100644
--- a/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
+++ b/var/spack/repos/builtin/packages/r-htmlwidgets/package.py
@@ -36,6 +36,6 @@ class RHtmlwidgets(RPackage):
 
     version('0.6', '7fa522d2eda97593978021bda9670c0e')
 
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-yaml', type=nolink)
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-yaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-httpuv/package.py b/var/spack/repos/builtin/packages/r-httpuv/package.py
index b700cd1510dca58469bd268a52b2fafaadb23b05..e4b60893b612a35a7963296010c84df4b7f52af6 100644
--- a/var/spack/repos/builtin/packages/r-httpuv/package.py
+++ b/var/spack/repos/builtin/packages/r-httpuv/package.py
@@ -40,4 +40,4 @@ class RHttpuv(RPackage):
 
     version('1.3.3', 'c78ae068cf59e949b9791be987bb4489')
 
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-httr/package.py b/var/spack/repos/builtin/packages/r-httr/package.py
index 826e4a298bfac65b04e2911735f010cd986e6303..55a5b0efab2b2fe02dcdf0f2a46604910616fd5e 100644
--- a/var/spack/repos/builtin/packages/r-httr/package.py
+++ b/var/spack/repos/builtin/packages/r-httr/package.py
@@ -36,8 +36,8 @@ class RHttr(RPackage):
 
     version('1.1.0', '5ffbbc5c2529e49f00aaa521a2b35600')
 
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-mime', type=nolink)
-    depends_on('r-curl', type=nolink)
-    depends_on('r-openssl', type=nolink)
-    depends_on('r-r6', type=nolink)
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-mime', type=('build', 'run'))
+    depends_on('r-curl', type=('build', 'run'))
+    depends_on('r-openssl', type=('build', 'run'))
+    depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-igraph/package.py b/var/spack/repos/builtin/packages/r-igraph/package.py
index 991cc424c016d0394ee6f8c89464d2125b743436..993a80ae1c4e6589e374aa2af3f3c578b46f554f 100644
--- a/var/spack/repos/builtin/packages/r-igraph/package.py
+++ b/var/spack/repos/builtin/packages/r-igraph/package.py
@@ -36,9 +36,9 @@ class RIgraph(RPackage):
 
     version('1.0.1', 'ea33495e49adf4a331e4ba60ba559065')
 
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-nmf', type=nolink)
-    depends_on('r-irlba', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-nmf', type=('build', 'run'))
+    depends_on('r-irlba', type=('build', 'run'))
     depends_on('gmp')
     depends_on('libxml2')
diff --git a/var/spack/repos/builtin/packages/r-influencer/package.py b/var/spack/repos/builtin/packages/r-influencer/package.py
index 04a7b27679b9ef335ac5798a69deedc3515e0ae0..bbfed54e251046432dacf798dd3ec152bdce05c6 100644
--- a/var/spack/repos/builtin/packages/r-influencer/package.py
+++ b/var/spack/repos/builtin/packages/r-influencer/package.py
@@ -40,5 +40,5 @@ class RInfluencer(RPackage):
 
     version('0.1.0', '6c8b6decd78c341364b5811fb3050ba5')
 
-    depends_on('r-igraph', type=nolink)
-    depends_on('r-matrix', type=nolink)
+    depends_on('r-igraph', type=('build', 'run'))
+    depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irdisplay/package.py b/var/spack/repos/builtin/packages/r-irdisplay/package.py
index 0c36be25c37db8a1a7352e86a5f8d16d03620230..f02c00d8ba39669a035c5313af901cff4902a357 100644
--- a/var/spack/repos/builtin/packages/r-irdisplay/package.py
+++ b/var/spack/repos/builtin/packages/r-irdisplay/package.py
@@ -36,4 +36,4 @@ class RIrdisplay(RPackage):
 
     version('0.4.4', '5be672fb82185b90f23bd99ac1e1cdb6')
 
-    depends_on('r-repr', type=nolink)
+    depends_on('r-repr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irkernel/package.py b/var/spack/repos/builtin/packages/r-irkernel/package.py
index 68f62f28011970b6ccbc57f635d8c54b5aa9fced..e69b77f9f016e0905a759619de7a3c10cec973e1 100644
--- a/var/spack/repos/builtin/packages/r-irkernel/package.py
+++ b/var/spack/repos/builtin/packages/r-irkernel/package.py
@@ -35,11 +35,11 @@ class RIrkernel(RPackage):
     version('master', git='https://github.com/IRkernel/IRkernel.git',
         tag='0.7')
 
-    depends_on('r-repr', type=nolink)
-    depends_on('r-irdisplay', type=nolink)
-    depends_on('r-evaluate', type=nolink)
-    depends_on('r-crayon', type=nolink)
-    depends_on('r-pbdzmq', type=nolink)
-    depends_on('r-devtools', type=nolink)
-    depends_on('r-uuid', type=nolink)
-    depends_on('r-digest', type=nolink)
+    depends_on('r-repr', type=('build', 'run'))
+    depends_on('r-irdisplay', type=('build', 'run'))
+    depends_on('r-evaluate', type=('build', 'run'))
+    depends_on('r-crayon', type=('build', 'run'))
+    depends_on('r-pbdzmq', type=('build', 'run'))
+    depends_on('r-devtools', type=('build', 'run'))
+    depends_on('r-uuid', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-irlba/package.py b/var/spack/repos/builtin/packages/r-irlba/package.py
index 2028afcd3460cd7ddac2e293c68e980efce8aa81..e0d1b325659eae343384f6a35432578734d1e501 100644
--- a/var/spack/repos/builtin/packages/r-irlba/package.py
+++ b/var/spack/repos/builtin/packages/r-irlba/package.py
@@ -36,4 +36,4 @@ class RIrlba(RPackage):
 
     version('2.0.0', '557674cf8b68fea5b9f231058c324d26')
 
-    depends_on('r-matrix', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-knitr/package.py b/var/spack/repos/builtin/packages/r-knitr/package.py
index 7ed6562428acdd95bed114fe84370a164b27040a..dd924749449221dc0d47a551ad507d3068806fe2 100644
--- a/var/spack/repos/builtin/packages/r-knitr/package.py
+++ b/var/spack/repos/builtin/packages/r-knitr/package.py
@@ -37,10 +37,10 @@ class RKnitr(RPackage):
     version('1.14', 'ef0fbeaa9372f99ffbc57212a7781511')
     version('0.6',  'c67d6db84cd55594a9e870c90651a3db')
 
-    depends_on('r-evaluate', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-formatr', type=nolink)
-    depends_on('r-highr', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-markdown', type=nolink)
-    depends_on('r-yaml', type=nolink)
+    depends_on('r-evaluate', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-formatr', type=('build', 'run'))
+    depends_on('r-highr', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-markdown', type=('build', 'run'))
+    depends_on('r-yaml', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-leaflet/package.py b/var/spack/repos/builtin/packages/r-leaflet/package.py
index 740c3f60bb9a913c3c4fc6e5b488fa463f94008e..62c2cf3c7c5b336b62f26da44da29949b5acebc7 100644
--- a/var/spack/repos/builtin/packages/r-leaflet/package.py
+++ b/var/spack/repos/builtin/packages/r-leaflet/package.py
@@ -36,13 +36,13 @@ class RLeaflet(RPackage):
 
     version('1.0.1', '7f3d8b17092604d87d4eeb579f73d5df')
 
-    depends_on('r-base64enc', type=nolink)
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-markdown', type=nolink)
-    depends_on('r-png', type=nolink)
-    depends_on('r-rcolorbrewer', type=nolink)
-    depends_on('r-raster', type=nolink)
-    depends_on('r-scales', type=nolink)
-    depends_on('r-sp', type=nolink)
+    depends_on('r-base64enc', type=('build', 'run'))
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-markdown', type=('build', 'run'))
+    depends_on('r-png', type=('build', 'run'))
+    depends_on('r-rcolorbrewer', type=('build', 'run'))
+    depends_on('r-raster', type=('build', 'run'))
+    depends_on('r-scales', type=('build', 'run'))
+    depends_on('r-sp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lme4/package.py b/var/spack/repos/builtin/packages/r-lme4/package.py
index bddc35fad25e13eeae6f092ffdeb287163a6e0f0..0ca545ced90d57da194e5facd34538a32484fa62 100644
--- a/var/spack/repos/builtin/packages/r-lme4/package.py
+++ b/var/spack/repos/builtin/packages/r-lme4/package.py
@@ -37,11 +37,11 @@ class RLme4(RPackage):
 
     version('1.1-12', 'da8aaebb67477ecb5631851c46207804')
 
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-mass', type=nolink)
-    depends_on('r-lattice', type=nolink)
-    depends_on('r-nlme', type=nolink)
-    depends_on('r-minqa', type=nolink)
-    depends_on('r-nloptr', type=nolink)
-    depends_on('r-rcpp', type=nolink)
-    depends_on('r-rcppeigen', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-mass', type=('build', 'run'))
+    depends_on('r-lattice', type=('build', 'run'))
+    depends_on('r-nlme', type=('build', 'run'))
+    depends_on('r-minqa', type=('build', 'run'))
+    depends_on('r-nloptr', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
+    depends_on('r-rcppeigen', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lmtest/package.py b/var/spack/repos/builtin/packages/r-lmtest/package.py
index b52bfd6861d5c74a0562ac51ecc54389f4061773..3d17dd2a7ea813a923bd327d471e2d5c45fbc51d 100644
--- a/var/spack/repos/builtin/packages/r-lmtest/package.py
+++ b/var/spack/repos/builtin/packages/r-lmtest/package.py
@@ -36,4 +36,4 @@ class RLmtest(RPackage):
 
     version('0.9-34', 'fcdf7286bb5ccc2ca46be00bf25ac2fe')
 
-    depends_on('r-zoo', type=nolink)
+    depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-lubridate/package.py b/var/spack/repos/builtin/packages/r-lubridate/package.py
index 8705ce805f7354474d29b76691da8aa20f4e059e..159e84e292796a7978405bbffd0d88919d3733c1 100644
--- a/var/spack/repos/builtin/packages/r-lubridate/package.py
+++ b/var/spack/repos/builtin/packages/r-lubridate/package.py
@@ -39,4 +39,4 @@ class RLubridate(RPackage):
 
     version('1.5.6', 'a5dc44817548ee219d26a10bae92e611')
 
-    depends_on('r-stringr', type=nolink)
+    depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-magic/package.py b/var/spack/repos/builtin/packages/r-magic/package.py
index d58ab5baccfefde193d7110253b59f129b33a303..b0987adcd7abc412657ddf21bb7df2ae56bcd671 100644
--- a/var/spack/repos/builtin/packages/r-magic/package.py
+++ b/var/spack/repos/builtin/packages/r-magic/package.py
@@ -37,4 +37,4 @@ class RMagic(RPackage):
 
     version('1.5-6', 'a68e5ced253b2196af842e1fc84fd029')
 
-    depends_on('r-abind', type=nolink)
+    depends_on('r-abind', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mapproj/package.py b/var/spack/repos/builtin/packages/r-mapproj/package.py
index 5aaac4fe110a8dffcae1d35869b26895850a9829..3475868abdff0b40b416b020b90b03e47f1ce797 100644
--- a/var/spack/repos/builtin/packages/r-mapproj/package.py
+++ b/var/spack/repos/builtin/packages/r-mapproj/package.py
@@ -34,4 +34,4 @@ class RMapproj(RPackage):
 
     version('1.2-4', '10e22bde1c790e1540672f15ddcaee71')
 
-    depends_on('r-maps', type=nolink)
+    depends_on('r-maps', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-maptools/package.py b/var/spack/repos/builtin/packages/r-maptools/package.py
index 799125a7c909217acdbc2254d1cb28d47c76f011..74d0673aea85d125ea903b532ef8b4f478206529 100644
--- a/var/spack/repos/builtin/packages/r-maptools/package.py
+++ b/var/spack/repos/builtin/packages/r-maptools/package.py
@@ -38,6 +38,6 @@ class RMaptools(RPackage):
 
     version('0.8-39', '3690d96afba8ef22c8e27ae540ffb836')
 
-    depends_on('r-sp', type=nolink)
-    depends_on('r-foreign', type=nolink)
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-sp', type=('build', 'run'))
+    depends_on('r-foreign', type=('build', 'run'))
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-markdown/package.py b/var/spack/repos/builtin/packages/r-markdown/package.py
index 544c002d521b958f996cf9d5ada3327b8e03a15f..c0e03fef0aaaaf36a01f2cf7c95ee68fdb6fe31c 100644
--- a/var/spack/repos/builtin/packages/r-markdown/package.py
+++ b/var/spack/repos/builtin/packages/r-markdown/package.py
@@ -38,4 +38,4 @@ class RMarkdown(RPackage):
 
     version('0.7.7', '72deca9c675c7cc9343048edbc29f7ff')
 
-    depends_on('r-mime', type=nolink)
+    depends_on('r-mime', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-matrix/package.py b/var/spack/repos/builtin/packages/r-matrix/package.py
index 12614014dec861d5834113bc74e0d768a68736c9..07c2eaf9da17def0f5a51f8d68a88ab032b56c92 100644
--- a/var/spack/repos/builtin/packages/r-matrix/package.py
+++ b/var/spack/repos/builtin/packages/r-matrix/package.py
@@ -35,4 +35,4 @@ class RMatrix(RPackage):
 
     version('1.2-6', 'f545307fb1284861e9266c4e9712c55e')
 
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-matrixmodels/package.py b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
index 3b4d46513214bef0ae035bd26be1d386ed35b767..0958de49a3fe18e6c00f9f0786994e3686af00ca 100644
--- a/var/spack/repos/builtin/packages/r-matrixmodels/package.py
+++ b/var/spack/repos/builtin/packages/r-matrixmodels/package.py
@@ -35,4 +35,4 @@ class RMatrixmodels(RPackage):
 
     version('0.4-1', '65b3ab56650c62bf1046a3eb1f1e19a0')
 
-    depends_on('r-matrix', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-memoise/package.py b/var/spack/repos/builtin/packages/r-memoise/package.py
index c92daf6652f492cb3196bfa8647af0a2885d3f5d..76c207dc04d026b0ccf87254bd35f6bad2d95c59 100644
--- a/var/spack/repos/builtin/packages/r-memoise/package.py
+++ b/var/spack/repos/builtin/packages/r-memoise/package.py
@@ -35,4 +35,4 @@ class RMemoise(RPackage):
 
     version('1.0.0', 'd31145292e2a88ae9a504cab1602e4ac')
 
-    depends_on('r-digest', type=nolink)
+    depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-mgcv/package.py b/var/spack/repos/builtin/packages/r-mgcv/package.py
index 5d5940129ca5da5d4460bd4ef60d2e48c9ba0d59..c8cb067275eb09515b1469acaec5ddf622ee6d38 100644
--- a/var/spack/repos/builtin/packages/r-mgcv/package.py
+++ b/var/spack/repos/builtin/packages/r-mgcv/package.py
@@ -37,5 +37,5 @@ class RMgcv(RPackage):
 
     version('1.8-13', '30607be3aaf44b13bd8c81fc32e8c984')
 
-    depends_on('r-nlme', type=nolink)
-    depends_on('r-matrix', type=nolink)
+    depends_on('r-nlme', type=('build', 'run'))
+    depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-minqa/package.py b/var/spack/repos/builtin/packages/r-minqa/package.py
index 211694cc380868613014cf2149055f17ad2bc59f..7a9032a546d69fc44678e64114cbd46bf9ad9998 100644
--- a/var/spack/repos/builtin/packages/r-minqa/package.py
+++ b/var/spack/repos/builtin/packages/r-minqa/package.py
@@ -35,4 +35,4 @@ class RMinqa(RPackage):
 
     version('1.2.4', 'bcaae4fdba60a33528f2116e2fd51105')
 
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-multcomp/package.py b/var/spack/repos/builtin/packages/r-multcomp/package.py
index c24f74de38110163853d47bb58ea44f2318ae508..70704a9c6185c22e93d050643fd87a22807f8cb1 100644
--- a/var/spack/repos/builtin/packages/r-multcomp/package.py
+++ b/var/spack/repos/builtin/packages/r-multcomp/package.py
@@ -38,8 +38,8 @@ class RMultcomp(RPackage):
 
     version('1.4-6', 'f1353ede2ed78b23859a7f1f1f9ebe88')
 
-    depends_on('r-mvtnorm', type=nolink)
-    depends_on('r-survival', type=nolink)
-    depends_on('r-thdata', type=nolink)
-    depends_on('r-sandwich', type=nolink)
-    depends_on('r-codetools', type=nolink)
+    depends_on('r-mvtnorm', type=('build', 'run'))
+    depends_on('r-survival', type=('build', 'run'))
+    depends_on('r-thdata', type=('build', 'run'))
+    depends_on('r-sandwich', type=('build', 'run'))
+    depends_on('r-codetools', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-munsell/package.py b/var/spack/repos/builtin/packages/r-munsell/package.py
index acc126a960ee4f7b202ca235f77ba8ddf0cdf0fa..670fed41e2e24ef78f53ece34e4db42c02b257c9 100644
--- a/var/spack/repos/builtin/packages/r-munsell/package.py
+++ b/var/spack/repos/builtin/packages/r-munsell/package.py
@@ -38,4 +38,4 @@ class RMunsell(RPackage):
 
     version('0.4.3', 'ebd205323dc37c948f499ee08be9c476')
 
-    depends_on('r-colorspace', type=nolink)
+    depends_on('r-colorspace', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-networkd3/package.py b/var/spack/repos/builtin/packages/r-networkd3/package.py
index fafd3b3ddee0286fe73ae3b9b87fa67121cde408..e881394538e97af4843db75e94955bf83146e96e 100644
--- a/var/spack/repos/builtin/packages/r-networkd3/package.py
+++ b/var/spack/repos/builtin/packages/r-networkd3/package.py
@@ -35,6 +35,6 @@ class RNetworkd3(RPackage):
 
     version('0.2.12', '356fe4be59698e6fb052644bd9659d84')
 
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-igraph', type=nolink)
-    depends_on('r-magrittr', type=nolink)
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-igraph', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nlme/package.py b/var/spack/repos/builtin/packages/r-nlme/package.py
index 3c9056ec669ebc9fdf0a87240dc867c8f4673b29..869e03ab51dc9c0c1f971f5e4134b258b209a634 100644
--- a/var/spack/repos/builtin/packages/r-nlme/package.py
+++ b/var/spack/repos/builtin/packages/r-nlme/package.py
@@ -34,4 +34,4 @@ class RNlme(RPackage):
 
     version('3.1-128', '3d75ae7380bf123761b95a073eb55008')
 
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-nmf/package.py b/var/spack/repos/builtin/packages/r-nmf/package.py
index 59defb441a7e2a016ba01b414f9d5dfb797b3d0e..78347ea615712b2801fde658f83da7e3a702ec58 100644
--- a/var/spack/repos/builtin/packages/r-nmf/package.py
+++ b/var/spack/repos/builtin/packages/r-nmf/package.py
@@ -39,16 +39,16 @@ class RNmf(RPackage):
 
     version('0.20.6', '81df07b3bf710a611db5af24730ff3d0')
 
-    depends_on('r-pkgmaker', type=nolink)
-    depends_on('r-registry', type=nolink)
-    depends_on('r-rngtools', type=nolink)
-    depends_on('r-cluster', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-gridbase', type=nolink)
-    depends_on('r-colorspace', type=nolink)
-    depends_on('r-rcolorbrewer', type=nolink)
-    depends_on('r-foreach', type=nolink)
-    depends_on('r-doparallel', type=nolink)
-    depends_on('r-ggplot2', type=nolink)
-    depends_on('r-reshape2', type=nolink)
+    depends_on('r-pkgmaker', type=('build', 'run'))
+    depends_on('r-registry', type=('build', 'run'))
+    depends_on('r-rngtools', type=('build', 'run'))
+    depends_on('r-cluster', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-gridbase', type=('build', 'run'))
+    depends_on('r-colorspace', type=('build', 'run'))
+    depends_on('r-rcolorbrewer', type=('build', 'run'))
+    depends_on('r-foreach', type=('build', 'run'))
+    depends_on('r-doparallel', type=('build', 'run'))
+    depends_on('r-ggplot2', type=('build', 'run'))
+    depends_on('r-reshape2', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-np/package.py b/var/spack/repos/builtin/packages/r-np/package.py
index 924472b5265a62fd6c5d93a7ea8ccfe7766d63cf..e15cb7efcb46d3c9c7aaa3246b9e7d2803008438 100644
--- a/var/spack/repos/builtin/packages/r-np/package.py
+++ b/var/spack/repos/builtin/packages/r-np/package.py
@@ -40,5 +40,5 @@ class RNp(RPackage):
 
     version('0.60-2', 'e094d52ddff7280272b41e6cb2c74389')
 
-    depends_on('r-boot', type=nolink)
-    depends_on('r-cubature', type=nolink)
+    depends_on('r-boot', type=('build', 'run'))
+    depends_on('r-cubature', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-partykit/package.py b/var/spack/repos/builtin/packages/r-partykit/package.py
index 70dac90d998771aa32729024490d8f76813b5d88..8773dace22cb74f03960a8dcc5abd54cb7fdb23a 100644
--- a/var/spack/repos/builtin/packages/r-partykit/package.py
+++ b/var/spack/repos/builtin/packages/r-partykit/package.py
@@ -42,5 +42,5 @@ class RPartykit(RPackage):
 
     version('1.1-1', '8fcb31d73ec1b8cd3bcd9789639a9277')
 
-    depends_on('r-survival', type=nolink)
-    depends_on('r-formula', type=nolink)
+    depends_on('r-survival', type=('build', 'run'))
+    depends_on('r-formula', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pbdzmq/package.py b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
index 02b1073ab41e55e3507b92075412c48d8f44c543..f602e5072354253c19bdff18f552830856171084 100644
--- a/var/spack/repos/builtin/packages/r-pbdzmq/package.py
+++ b/var/spack/repos/builtin/packages/r-pbdzmq/package.py
@@ -41,5 +41,5 @@ class RPbdzmq(RPackage):
 
     version('0.2-4', 'e5afb70199aa54d737ee7a0e26bde060')
 
-    depends_on('r-r6', type=nolink)
+    depends_on('r-r6', type=('build', 'run'))
     depends_on('zeromq')
diff --git a/var/spack/repos/builtin/packages/r-pbkrtest/package.py b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
index 6910cad38bcf47c833b99247f5551bfde2d73d5d..2d51d2b9586ec1edde69fad2de434532a18573ea 100644
--- a/var/spack/repos/builtin/packages/r-pbkrtest/package.py
+++ b/var/spack/repos/builtin/packages/r-pbkrtest/package.py
@@ -38,6 +38,6 @@ class RPbkrtest(RPackage):
 
     version('0.4-6', '0a7d9ff83b8d131af9b2335f35781ef9')
 
-    depends_on('r-lme4', type=nolink)
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-mass', type=nolink)
+    depends_on('r-lme4', type=('build', 'run'))
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pkgmaker/package.py b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
index 4f193bc8e4e42a1a503e90b577efbfc48b0e92e2..099cabd954f8483deb2311f089c1bade59fc2ce5 100644
--- a/var/spack/repos/builtin/packages/r-pkgmaker/package.py
+++ b/var/spack/repos/builtin/packages/r-pkgmaker/package.py
@@ -40,8 +40,8 @@ class RPkgmaker(RPackage):
 
     version('0.22', '73a0c6d3e84c6dadf3de7582ef7e88a4')
 
-    depends_on('r-registry', type=nolink)
-    depends_on('r-codetools', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-xtable', type=nolink)
+    depends_on('r-registry', type=('build', 'run'))
+    depends_on('r-codetools', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-xtable', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-plyr/package.py b/var/spack/repos/builtin/packages/r-plyr/package.py
index 229d5177c0513b1e9c258767cdadc6566fa055e9..6f48f5c38efb026f16f9050f179f4f48a5b614ed 100644
--- a/var/spack/repos/builtin/packages/r-plyr/package.py
+++ b/var/spack/repos/builtin/packages/r-plyr/package.py
@@ -40,4 +40,4 @@ class RPlyr(RPackage):
 
     version('1.8.4', 'ef455cf7fc06e34837692156b7b2587b')
 
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-pryr/package.py b/var/spack/repos/builtin/packages/r-pryr/package.py
index 703a6f788fe3d451be9e395dd500748602b76dcd..3a103e98557b4bf690750273f53298f5c288dab7 100644
--- a/var/spack/repos/builtin/packages/r-pryr/package.py
+++ b/var/spack/repos/builtin/packages/r-pryr/package.py
@@ -36,5 +36,5 @@ class RPryr(RPackage):
 
     version('0.1.2', '66b597a762aa15a3b7037779522983b6')
 
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quantmod/package.py b/var/spack/repos/builtin/packages/r-quantmod/package.py
index e0276ef6d80afcddee5c532c37f65babab4b6a38..4cc53fcf69fd7c9de6e8472fc2d184a636f51910 100644
--- a/var/spack/repos/builtin/packages/r-quantmod/package.py
+++ b/var/spack/repos/builtin/packages/r-quantmod/package.py
@@ -35,6 +35,6 @@ class RQuantmod(RPackage):
 
     version('0.4-5', 'cab3c409e4de3df98a20f1ded60f3631')
 
-    depends_on('r-xts', type=nolink)
-    depends_on('r-zoo', type=nolink)
-    depends_on('r-ttr', type=nolink)
+    depends_on('r-xts', type=('build', 'run'))
+    depends_on('r-zoo', type=('build', 'run'))
+    depends_on('r-ttr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-quantreg/package.py b/var/spack/repos/builtin/packages/r-quantreg/package.py
index 248ab28e41e38f09c34c74290b01d6b5a1b8a2e7..2d5091ccafe9aaa735e2131e8737aadc8d516e84 100644
--- a/var/spack/repos/builtin/packages/r-quantreg/package.py
+++ b/var/spack/repos/builtin/packages/r-quantreg/package.py
@@ -39,6 +39,6 @@ class RQuantreg(RPackage):
 
     version('5.26', '1d89ed932fb4d67ae2d5da0eb8c2989f')
 
-    depends_on('r-sparsem', type=nolink)
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-matrixmodels', type=nolink)
+    depends_on('r-sparsem', type=('build', 'run'))
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-matrixmodels', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-raster/package.py b/var/spack/repos/builtin/packages/r-raster/package.py
index 02b121566e22135b49bf9860c2bbdfedf74c5e7f..daa42793ee079210475b836361771ae46f62bc32 100644
--- a/var/spack/repos/builtin/packages/r-raster/package.py
+++ b/var/spack/repos/builtin/packages/r-raster/package.py
@@ -36,5 +36,5 @@ class RRaster(RPackage):
 
     version('2.5-8', '2a7db931c74d50516e82d04687c0a577')
 
-    depends_on('r-sp', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-sp', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rbokeh/package.py b/var/spack/repos/builtin/packages/r-rbokeh/package.py
index 168e8bf76540d388d536b11a00ee3f8b476d8564..00f15891b2b104f3de2b9bba3e583cc7ac736bc5 100644
--- a/var/spack/repos/builtin/packages/r-rbokeh/package.py
+++ b/var/spack/repos/builtin/packages/r-rbokeh/package.py
@@ -36,14 +36,14 @@ class RRbokeh(RPackage):
 
     version('0.5.0', '4e14778c3fbd9286460ca28c68f57d10')
 
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-maps', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-hexbin', type=nolink)
-    depends_on('r-lazyeval', type=nolink)
-    depends_on('r-pryr', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-ggplot2', type=nolink)
-    depends_on('r-scales', type=nolink)
-    depends_on('r-gistr', type=nolink)
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-maps', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-hexbin', type=('build', 'run'))
+    depends_on('r-lazyeval', type=('build', 'run'))
+    depends_on('r-pryr', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-ggplot2', type=('build', 'run'))
+    depends_on('r-scales', type=('build', 'run'))
+    depends_on('r-gistr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rcppeigen/package.py b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
index d407a99b48e33c4f046d2a555bdd66ebcbd8a107..23ec0bc27bc700c17a54b7a4458e8eb65706f3a7 100644
--- a/var/spack/repos/builtin/packages/r-rcppeigen/package.py
+++ b/var/spack/repos/builtin/packages/r-rcppeigen/package.py
@@ -46,5 +46,5 @@ class RRcppeigen(RPackage):
 
     version('0.3.2.8.1', '4146e06e4fdf7f4d08db7839069d479f')
 
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-reshape2/package.py b/var/spack/repos/builtin/packages/r-reshape2/package.py
index 129198d14fae34ad5965872d258fbe8573d8fdeb..d27231e139fb6ac96437766f51c0948d4d54ce6d 100644
--- a/var/spack/repos/builtin/packages/r-reshape2/package.py
+++ b/var/spack/repos/builtin/packages/r-reshape2/package.py
@@ -35,6 +35,6 @@ class RReshape2(RPackage):
 
     version('1.4.1', '41e9dffdf5c6fa830321ac9c8ebffe00')
 
-    depends_on('r-plyr', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-plyr', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rgooglemaps/package.py b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
index 4dd2cd9867e9e29d92ae1a705f9e0bf4447da871..87672a35e265f0b07f3348bb9822fc3894359e68 100644
--- a/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
+++ b/var/spack/repos/builtin/packages/r-rgooglemaps/package.py
@@ -37,5 +37,5 @@ class RRgooglemaps(RPackage):
 
     version('1.2.0.7', '2e1df804f0331b4122d841105f0c7ea5')
 
-    depends_on('r-png', type=nolink)
-    depends_on('r-rjsonio', type=nolink)
+    depends_on('r-png', type=('build', 'run'))
+    depends_on('r-rjsonio', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rinside/package.py b/var/spack/repos/builtin/packages/r-rinside/package.py
index 8e2a802eecdfbe6cf2a2d381c48328e17f695c13..d8e7c28e239919972ca398ae2a8f7bdc71317f6e 100644
--- a/var/spack/repos/builtin/packages/r-rinside/package.py
+++ b/var/spack/repos/builtin/packages/r-rinside/package.py
@@ -48,4 +48,4 @@ class RRinside(RPackage):
 
     version('0.2.13', '2e3c35a7bd648e9bef98d0afcc02cf88')
 
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmarkdown/package.py b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
index 2200ee18ecfbb5240dd9120a911606c6fa3b8ad7..31a76959238410b23f54524e1e7ce7580d6d250d 100644
--- a/var/spack/repos/builtin/packages/r-rmarkdown/package.py
+++ b/var/spack/repos/builtin/packages/r-rmarkdown/package.py
@@ -35,10 +35,10 @@ class RRmarkdown(RPackage):
 
     version('1.0', '264aa6a59e9680109e38df8270e14c58')
 
-    depends_on('r-knitr', type=nolink)
-    depends_on('r-yaml', type=nolink)
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-catools', type=nolink)
-    depends_on('r-evaluate', type=nolink)
-    depends_on('r-base64enc', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
+    depends_on('r-knitr', type=('build', 'run'))
+    depends_on('r-yaml', type=('build', 'run'))
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-catools', type=('build', 'run'))
+    depends_on('r-evaluate', type=('build', 'run'))
+    depends_on('r-base64enc', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rmysql/package.py b/var/spack/repos/builtin/packages/r-rmysql/package.py
index fd3864722032f74c034e8485fa0ee3f0a62140ad..4946b071faee3687a532ab960b93e0ed15976eeb 100644
--- a/var/spack/repos/builtin/packages/r-rmysql/package.py
+++ b/var/spack/repos/builtin/packages/r-rmysql/package.py
@@ -34,5 +34,5 @@ class RRmysql(RPackage):
 
     version('0.10.9', '3628200a1864ac3005cfd55cc7cde17a')
 
-    depends_on('r-dbi', type=nolink)
+    depends_on('r-dbi', type=('build', 'run'))
     depends_on('mariadb')
diff --git a/var/spack/repos/builtin/packages/r-rngtools/package.py b/var/spack/repos/builtin/packages/r-rngtools/package.py
index b2b5e5286197032380887758c1e392180b833fc5..f9edc93a2cdd9675af92f5007cd2d424590d12b6 100644
--- a/var/spack/repos/builtin/packages/r-rngtools/package.py
+++ b/var/spack/repos/builtin/packages/r-rngtools/package.py
@@ -38,6 +38,6 @@ class RRngtools(RPackage):
 
     version('1.2.4', '715967f8b3af2848a76593a7c718c1cd')
 
-    depends_on('r-pkgmaker', type=nolink)
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-digest', type=nolink)
+    depends_on('r-pkgmaker', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-roxygen2/package.py b/var/spack/repos/builtin/packages/r-roxygen2/package.py
index 1d3b3fa1f6c67d100994a72c96fd35c0aef205a2..1bbfeb2e87a239ffcedeea4f93e6377083891cb9 100644
--- a/var/spack/repos/builtin/packages/r-roxygen2/package.py
+++ b/var/spack/repos/builtin/packages/r-roxygen2/package.py
@@ -35,8 +35,8 @@ class RRoxygen2(RPackage):
 
     version('5.0.1', 'df5bdbc12fda372e427710ef1cd92ed7')
 
-    depends_on('r-stringr', type=nolink)
-    depends_on('r-stringi', type=nolink)
-    depends_on('r-brew', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-stringr', type=('build', 'run'))
+    depends_on('r-stringi', type=('build', 'run'))
+    depends_on('r-brew', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rpostgresql/package.py b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
index 227f7e9ce5aa6cdd7791e418917cd5728e32ef54..b204c5382834359762cf97faf10e350abbe9135b 100644
--- a/var/spack/repos/builtin/packages/r-rpostgresql/package.py
+++ b/var/spack/repos/builtin/packages/r-rpostgresql/package.py
@@ -42,5 +42,5 @@ class RRpostgresql(RPackage):
 
     version('0.4-1', 'e7b22e212afbb2cbb88bab937f93e55a')
 
-    depends_on('r-dbi', type=nolink)
+    depends_on('r-dbi', type=('build', 'run'))
     depends_on('postgresql')
diff --git a/var/spack/repos/builtin/packages/r-rsnns/package.py b/var/spack/repos/builtin/packages/r-rsnns/package.py
index d707f5f54246d6c0eb7f95257e62d94db1b78c3f..1a0978363af16341b068569ba16c7d9dda1c15ea 100644
--- a/var/spack/repos/builtin/packages/r-rsnns/package.py
+++ b/var/spack/repos/builtin/packages/r-rsnns/package.py
@@ -41,4 +41,4 @@ class RRsnns(RPackage):
 
     version('0.4-7', 'ade7736611c456effb5f72e0ce0a1e6f')
 
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rsqlite/package.py b/var/spack/repos/builtin/packages/r-rsqlite/package.py
index f09040540841a18c9b371c4278d6f2aa1c16796f..c08fcac20c4315dc5b24a98f1bed57ec22163919 100644
--- a/var/spack/repos/builtin/packages/r-rsqlite/package.py
+++ b/var/spack/repos/builtin/packages/r-rsqlite/package.py
@@ -36,4 +36,4 @@ class RRsqlite(RPackage):
 
     version('1.0.0', 'e6cbe2709612b687c13a10d30c7bad45')
 
-    depends_on('r-dbi', type=nolink)
+    depends_on('r-dbi', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-rstan/package.py b/var/spack/repos/builtin/packages/r-rstan/package.py
index 26a040c36333e73574822c7958a222bff80bd37d..e616f0a7dd3b90497fb0b73205b27d0b98f25ef5 100644
--- a/var/spack/repos/builtin/packages/r-rstan/package.py
+++ b/var/spack/repos/builtin/packages/r-rstan/package.py
@@ -42,10 +42,10 @@ class RRstan(RPackage):
 
     version('2.10.1', 'f5d212f6f8551bdb91fe713d05d4052a')
 
-    depends_on('r-ggplot2', type=nolink)
-    depends_on('r-stanheaders', type=nolink)
-    depends_on('r-inline', type=nolink)
-    depends_on('r-gridextra', type=nolink)
-    depends_on('r-rcpp', type=nolink)
-    depends_on('r-rcppeigen', type=nolink)
-    depends_on('r-bh', type=nolink)
+    depends_on('r-ggplot2', type=('build', 'run'))
+    depends_on('r-stanheaders', type=('build', 'run'))
+    depends_on('r-inline', type=('build', 'run'))
+    depends_on('r-gridextra', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
+    depends_on('r-rcppeigen', type=('build', 'run'))
+    depends_on('r-bh', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sandwich/package.py b/var/spack/repos/builtin/packages/r-sandwich/package.py
index 248f09c614c1f8fe40f959ea859ef7df692baf0c..62bd2880e593bc7ea1fc9aa1b8dca8dfa8797ce6 100644
--- a/var/spack/repos/builtin/packages/r-sandwich/package.py
+++ b/var/spack/repos/builtin/packages/r-sandwich/package.py
@@ -35,4 +35,4 @@ class RSandwich(RPackage):
 
     version('2.3-4', 'a621dbd8a57b6e1e036496642aadc2e5')
 
-    depends_on('r-zoo', type=nolink)
+    depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-scales/package.py b/var/spack/repos/builtin/packages/r-scales/package.py
index 174b7d7d6e29b907551d87577122caaf47e2a9c4..e3832f78e08c927f0fde62a68abbe3d4dc2f552a 100644
--- a/var/spack/repos/builtin/packages/r-scales/package.py
+++ b/var/spack/repos/builtin/packages/r-scales/package.py
@@ -35,9 +35,9 @@ class RScales(RPackage):
 
     version('0.4.0', '7b5602d9c55595901192248bca25c099')
 
-    depends_on('r-rcolorbrewer', type=nolink)
-    depends_on('r-dichromat', type=nolink)
-    depends_on('r-plyr', type=nolink)
-    depends_on('r-munsell', type=nolink)
-    depends_on('r-labeling', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-rcolorbrewer', type=('build', 'run'))
+    depends_on('r-dichromat', type=('build', 'run'))
+    depends_on('r-plyr', type=('build', 'run'))
+    depends_on('r-munsell', type=('build', 'run'))
+    depends_on('r-labeling', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-shiny/package.py b/var/spack/repos/builtin/packages/r-shiny/package.py
index 4c357bdc30580023ecf96e845f9173cd91d54f48..b1d21c7e7c355bda5a1238eaa9910819fee0816f 100644
--- a/var/spack/repos/builtin/packages/r-shiny/package.py
+++ b/var/spack/repos/builtin/packages/r-shiny/package.py
@@ -37,10 +37,10 @@ class RShiny(RPackage):
 
     version('0.13.2', 'cb5bff7a28ad59ec2883cd0912ca9611')
 
-    depends_on('r-httpuv', type=nolink)
-    depends_on('r-mime', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-xtable', type=nolink)
-    depends_on('r-digest', type=nolink)
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-r6', type=nolink)
+    depends_on('r-httpuv', type=('build', 'run'))
+    depends_on('r-mime', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-xtable', type=('build', 'run'))
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-sp/package.py b/var/spack/repos/builtin/packages/r-sp/package.py
index 19ce2ee912534ba45bf4ac0c6779f512d3a41b61..2917f0b6b6ce667da13285ea623d9b8d6ea21829 100644
--- a/var/spack/repos/builtin/packages/r-sp/package.py
+++ b/var/spack/repos/builtin/packages/r-sp/package.py
@@ -37,4 +37,4 @@ class RSp(RPackage):
 
     version('1.2-3', 'f0e24d993dec128642ee66b6b47b10c1')
 
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-stringr/package.py b/var/spack/repos/builtin/packages/r-stringr/package.py
index 5f9f05df31deaccdddbf90ab72a6cbd1d8a226d8..de8d83b50074d4ffc2ee827c07e4afed903dae63 100644
--- a/var/spack/repos/builtin/packages/r-stringr/package.py
+++ b/var/spack/repos/builtin/packages/r-stringr/package.py
@@ -38,5 +38,5 @@ class RStringr(RPackage):
 
     version('1.0.0', '5ca977c90351f78b1b888b379114a7b4')
 
-    depends_on('r-stringi', type=nolink)
-    depends_on('r-magrittr', type=nolink)
+    depends_on('r-stringi', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-survival/package.py b/var/spack/repos/builtin/packages/r-survival/package.py
index 44d5043189c821515f7fc3aab76a511e3f2d3390..1df00f0c935e94f06219c7637180f00150e06aad 100644
--- a/var/spack/repos/builtin/packages/r-survival/package.py
+++ b/var/spack/repos/builtin/packages/r-survival/package.py
@@ -36,4 +36,4 @@ class RSurvival(RPackage):
 
     version('2.39-5', 'a3cc6b5762e8c5c0bb9e64a276710be2')
 
-    depends_on('r-matrix', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tarifx/package.py b/var/spack/repos/builtin/packages/r-tarifx/package.py
index 0703c0f5f0c79dc5ccb294a70abdd43d4de83c3c..1fb2d35b1d4c95f92442eb2a7bd896ef272d2e1c 100644
--- a/var/spack/repos/builtin/packages/r-tarifx/package.py
+++ b/var/spack/repos/builtin/packages/r-tarifx/package.py
@@ -34,5 +34,5 @@ class RTarifx(RPackage):
 
     version('1.0.6', '7e782e04bd69d929b29f91553382e6a2')
 
-    depends_on('r-reshape2', type=nolink)
-    depends_on('r-plyr', type=nolink)
+    depends_on('r-reshape2', type=('build', 'run'))
+    depends_on('r-plyr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-testthat/package.py b/var/spack/repos/builtin/packages/r-testthat/package.py
index 7589909b3b08a95bea1d033e90d1c743fb6fd8dc..62409912f71f81665ed99f4984df91f032d73123 100644
--- a/var/spack/repos/builtin/packages/r-testthat/package.py
+++ b/var/spack/repos/builtin/packages/r-testthat/package.py
@@ -35,8 +35,8 @@ class RTestthat(RPackage):
 
     version('1.0.2', '6c6a90c8db860292df5784a70e07b8dc')
 
-    depends_on('r-digest', type=nolink)
-    depends_on('r-crayon', type=nolink)
-    depends_on('r-praise', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-r6', type=nolink)
+    depends_on('r-digest', type=('build', 'run'))
+    depends_on('r-crayon', type=('build', 'run'))
+    depends_on('r-praise', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-r6', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-thdata/package.py b/var/spack/repos/builtin/packages/r-thdata/package.py
index 4639b7f5ae4e62b2865aae5b1359c7568e6cc458..cf2b01e6e8b2fa3d8240dd6d8e3fbcd7caa0cfe5 100644
--- a/var/spack/repos/builtin/packages/r-thdata/package.py
+++ b/var/spack/repos/builtin/packages/r-thdata/package.py
@@ -34,5 +34,5 @@ class RThdata(RPackage):
 
     version('1.0-7', '3e8b6b1a4699544f175215aed7039a94')
 
-    depends_on('r-survival', type=nolink)
-    depends_on('r-mass', type=nolink)
+    depends_on('r-survival', type=('build', 'run'))
+    depends_on('r-mass', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-threejs/package.py b/var/spack/repos/builtin/packages/r-threejs/package.py
index a525425fa3df293f864c7d0fef32927f4e009e1e..50b484dc25d3b441c9aad1d619b7b902fd566eff 100644
--- a/var/spack/repos/builtin/packages/r-threejs/package.py
+++ b/var/spack/repos/builtin/packages/r-threejs/package.py
@@ -35,7 +35,7 @@ class RThreejs(RPackage):
 
     version('0.2.2', '35c179b10813c5e4bd3e7827fae6627b')
 
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-base64enc', type=nolink)
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-base64enc', type=('build', 'run'))
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tibble/package.py b/var/spack/repos/builtin/packages/r-tibble/package.py
index 47355cc4515a765536dacabf0bab6c8fe02b247a..39dfc3893bafc9dbd93f3d8a60844bf75b36f8f7 100644
--- a/var/spack/repos/builtin/packages/r-tibble/package.py
+++ b/var/spack/repos/builtin/packages/r-tibble/package.py
@@ -35,6 +35,6 @@ class RTibble(RPackage):
 
     version('1.1', '2fe9f806109d0b7fadafb1ffafea4cb8')
 
-    depends_on('r-assertthat', type=nolink)
-    depends_on('r-lazyeval', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-assertthat', type=('build', 'run'))
+    depends_on('r-lazyeval', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-tidyr/package.py b/var/spack/repos/builtin/packages/r-tidyr/package.py
index c7ac3d3225e11faa3058a68d624abd705c8f14c6..1285e5e9ae14d02ce2b5adf6516ac1392f3d43ca 100644
--- a/var/spack/repos/builtin/packages/r-tidyr/package.py
+++ b/var/spack/repos/builtin/packages/r-tidyr/package.py
@@ -36,9 +36,9 @@ class RTidyr(RPackage):
 
     version('0.5.1', '3cadc869510c054ed93d374ab44120bd')
 
-    depends_on('r-tibble', type=nolink)
-    depends_on('r-dplyr', type=nolink)
-    depends_on('r-stringi', type=nolink)
-    depends_on('r-lazyeval', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-rcpp', type=nolink)
+    depends_on('r-tibble', type=('build', 'run'))
+    depends_on('r-dplyr', type=('build', 'run'))
+    depends_on('r-stringi', type=('build', 'run'))
+    depends_on('r-lazyeval', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-rcpp', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-ttr/package.py b/var/spack/repos/builtin/packages/r-ttr/package.py
index 98f4a0e45030c9689f5389fd0f247b6ea724497b..79429f5286a094f832c740b4cd99cce6b52f3d7b 100644
--- a/var/spack/repos/builtin/packages/r-ttr/package.py
+++ b/var/spack/repos/builtin/packages/r-ttr/package.py
@@ -34,5 +34,5 @@ class RTtr(RPackage):
 
     version('0.23-1', '35f693ac0d97e8ec742ebea2da222986')
 
-    depends_on('r-xts', type=nolink)
-    depends_on('r-zoo', type=nolink)
+    depends_on('r-xts', type=('build', 'run'))
+    depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-vcd/package.py b/var/spack/repos/builtin/packages/r-vcd/package.py
index 0e16260d0f4090478128f9828d9ca35fd883278f..56a2ebdfa7723ee99371e8149eaf6b94bc3afe59 100644
--- a/var/spack/repos/builtin/packages/r-vcd/package.py
+++ b/var/spack/repos/builtin/packages/r-vcd/package.py
@@ -39,6 +39,6 @@ class RVcd(RPackage):
 
     version('1.4-1', '7db150a77f173f85b69a1f86f73f8f02')
 
-    depends_on('r-mass', type=nolink)
-    depends_on('r-colorspace', type=nolink)
-    depends_on('r-lmtest', type=nolink)
+    depends_on('r-mass', type=('build', 'run'))
+    depends_on('r-colorspace', type=('build', 'run'))
+    depends_on('r-lmtest', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-visnetwork/package.py b/var/spack/repos/builtin/packages/r-visnetwork/package.py
index 81be9fb5c29e7a7814f8e9a123ff391b55ce088b..ea0b972bf1ce93cc17f9320786f87fa244f6357c 100644
--- a/var/spack/repos/builtin/packages/r-visnetwork/package.py
+++ b/var/spack/repos/builtin/packages/r-visnetwork/package.py
@@ -35,7 +35,7 @@ class RVisnetwork(RPackage):
 
     version('1.0.1', 'dfc9664a5165134d8dbdcd949ad73cf7')
 
-    depends_on('r-htmlwidgets', type=nolink)
-    depends_on('r-htmltools', type=nolink)
-    depends_on('r-jsonlite', type=nolink)
-    depends_on('r-magrittr', type=nolink)
+    depends_on('r-htmlwidgets', type=('build', 'run'))
+    depends_on('r-htmltools', type=('build', 'run'))
+    depends_on('r-jsonlite', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xgboost/package.py b/var/spack/repos/builtin/packages/r-xgboost/package.py
index dfa9928ee3f4a3000bc2efbac4c706f72766d7f5..766191dcc16b932a7aad51ea9006fb779ed00713 100644
--- a/var/spack/repos/builtin/packages/r-xgboost/package.py
+++ b/var/spack/repos/builtin/packages/r-xgboost/package.py
@@ -42,7 +42,7 @@ class RXgboost(RPackage):
 
     version('0.4-4', 'c24d3076058101a71de4b8af8806697c')
 
-    depends_on('r-matrix', type=nolink)
-    depends_on('r-datatable', type=nolink)
-    depends_on('r-magrittr', type=nolink)
-    depends_on('r-stringr', type=nolink)
+    depends_on('r-matrix', type=('build', 'run'))
+    depends_on('r-datatable', type=('build', 'run'))
+    depends_on('r-magrittr', type=('build', 'run'))
+    depends_on('r-stringr', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlconnect/package.py b/var/spack/repos/builtin/packages/r-xlconnect/package.py
index cdb8dbce3f3e4a1d97cc2121e9fc5b085cc250ad..1863997ad79cffa3f5a6d7752dae34278ee907bb 100644
--- a/var/spack/repos/builtin/packages/r-xlconnect/package.py
+++ b/var/spack/repos/builtin/packages/r-xlconnect/package.py
@@ -36,5 +36,5 @@ class RXlconnect(RPackage):
     version('0.2-12', '3340d05d259f0a41262eab4ed32617ad')
     version('0.2-11', '9d1769a103cda05665df399cc335017d')
 
-    depends_on('r-xlconnectjars', type=nolink)
-    depends_on('r-rjava', type=nolink)
+    depends_on('r-xlconnectjars', type=('build', 'run'))
+    depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
index 46068475127e7642ec83924affdc74f52cabd2d9..0200b00a0faf8624a4fe4479d306fa0806e63c8b 100644
--- a/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
+++ b/var/spack/repos/builtin/packages/r-xlconnectjars/package.py
@@ -35,4 +35,4 @@ class RXlconnectjars(RPackage):
     version('0.2-12', '6984e5140cd1c887c017ef6f88cbba81')
     version('0.2-9', 'e6d6b1acfede26acaa616ee421bd30fb')
 
-    depends_on('r-rjava', type=nolink)
+    depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlsx/package.py b/var/spack/repos/builtin/packages/r-xlsx/package.py
index e7a8b28204c427a85fa010547fdec5798b2ed20f..e16a582306b66685cc967592f043917696446848 100644
--- a/var/spack/repos/builtin/packages/r-xlsx/package.py
+++ b/var/spack/repos/builtin/packages/r-xlsx/package.py
@@ -35,5 +35,5 @@ class RXlsx(RPackage):
 
     version('0.5.7', '36b1b16f29c54b6089b1dae923180dd5')
 
-    depends_on('r-rjava', type=nolink)
-    depends_on('r-xlsxjars', type=nolink)
+    depends_on('r-rjava', type=('build', 'run'))
+    depends_on('r-xlsxjars', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xlsxjars/package.py b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
index 972ac4b5573a1eeb96705bc47cb2fbc73588b7e1..1c16c75a9d46ae2636383b7ecc501ca604eed0eb 100644
--- a/var/spack/repos/builtin/packages/r-xlsxjars/package.py
+++ b/var/spack/repos/builtin/packages/r-xlsxjars/package.py
@@ -35,4 +35,4 @@ class RXlsxjars(RPackage):
 
     version('0.6.1', '5a1721d5733cb42f3a29e3f353e39166')
 
-    depends_on('r-rjava', type=nolink)
+    depends_on('r-rjava', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-xts/package.py b/var/spack/repos/builtin/packages/r-xts/package.py
index 47b3a6072023e28d3a67bc1bc890eb0989f76ee3..1cedec1d422ead1e1931a7e2f9712bb7a6c0340a 100644
--- a/var/spack/repos/builtin/packages/r-xts/package.py
+++ b/var/spack/repos/builtin/packages/r-xts/package.py
@@ -37,4 +37,4 @@ class RXts(RPackage):
 
     version('0.9-7', 'a232e94aebfa654653a7d88a0503537b')
 
-    depends_on('r-zoo', type=nolink)
+    depends_on('r-zoo', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r-zoo/package.py b/var/spack/repos/builtin/packages/r-zoo/package.py
index ade0e762df4b6b505ae89317f39a9f969e542b88..230c78a61ac1d897668b0c0d535a965d65b4b86e 100644
--- a/var/spack/repos/builtin/packages/r-zoo/package.py
+++ b/var/spack/repos/builtin/packages/r-zoo/package.py
@@ -38,4 +38,4 @@ class RZoo(RPackage):
 
     version('1.7-13', '99521dfa4c668e692720cefcc5a1bf30')
 
-    depends_on('r-lattice', type=nolink)
+    depends_on('r-lattice', type=('build', 'run'))
diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py
index a60fa8122c1d7a3ddc8bce1484b2c4f2c1c6427d..df447eba3e9b57fc225fe066dcc56764c9b5b353 100644
--- a/var/spack/repos/builtin/packages/r/package.py
+++ b/var/spack/repos/builtin/packages/r/package.py
@@ -22,6 +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
 ##############################################################################
+
 from spack import *
 from spack.util.environment import *
 import shutil
@@ -139,7 +140,8 @@ def setup_dependent_environment(self, spack_env, run_env, extension_spec):
         # Set R_LIBS to include the library dir for the
         # extension and any other R extensions it depends on.
         r_libs_path = []
-        for d in extension_spec.traverse(deptype=nolink, deptype_query='run'):
+        for d in extension_spec.traverse(
+                deptype=('build', 'run'), deptype_query='run'):
             if d.package.extends(self.spec):
                 r_libs_path.append(join_path(d.prefix, self.r_lib_dir))
 
diff --git a/var/spack/repos/builtin/packages/rename/package.py b/var/spack/repos/builtin/packages/rename/package.py
index 64ef5fce66483613db72f57ff3fa7ea5d332567e..3538fd21cc4228b72a09171f5b290ba4cd97e71a 100644
--- a/var/spack/repos/builtin/packages/rename/package.py
+++ b/var/spack/repos/builtin/packages/rename/package.py
@@ -33,7 +33,7 @@ class Rename(Package):
 
     version('1.600', '91beb555c93d407420b5dad191069bb3')
 
-    depends_on('perl', type='nolink')
+    depends_on('perl', type=('build', 'run'))
 
     def install(self, spec, prefix):
         Executable('pod2man')('rename', 'rename.1')
diff --git a/var/spack/repos/builtin/packages/stat/package.py b/var/spack/repos/builtin/packages/stat/package.py
index eae4971acea65cfe660290d897c4d15c80776c1e..c511fcee70fa778daaa22ba4482e1245486d9ced 100644
--- a/var/spack/repos/builtin/packages/stat/package.py
+++ b/var/spack/repos/builtin/packages/stat/package.py
@@ -50,7 +50,7 @@ class Stat(Package):
     depends_on('dyninst@8.2.1+stat_dysect', when='+dysect')
     depends_on('graphlib@2.0.0', when='@2.0.0:2.2.0')
     depends_on('graphlib@3.0.0', when='@3:')
-    depends_on('graphviz', type=alldeps)
+    depends_on('graphviz', type=('build', 'link', 'run'))
     depends_on('launchmon')
     depends_on('mrnet')
     depends_on('python')