diff --git a/var/spack/repos/builtin.mock/packages/test-a/package.py b/var/spack/repos/builtin.mock/packages/test-a/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f72370580ab0967e0926716a8b7d9be90d29cb8
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/test-a/package.py
@@ -0,0 +1,29 @@
+from spack import *
+
+import os
+
+mydir = os.path.dirname(__file__)
+source = os.path.join(mydir,'test-a-0.0.tar.gz')
+
+class TestA(Package):
+    """The test-a package"""
+
+    url = 'file://'+source
+
+    version('0.0', '4e823d0af4154fcf52b75dad41b7fd63')
+
+    variant('nom', default=True, description='Nominal variant')
+    variant('var', default=False, description='Variant variant')
+  
+    def install(self, spec, prefix):
+        bindir = os.path.join(prefix,'bin')
+        os.makedirs(bindir)
+        script = os.path.join(bindir, 'test-a')
+        with open(script,'w') as fp:
+            fp.write("""#!/bin/bash
+echo 'name: %s'
+echo 'prefix: %s'
+echo 'spec: %s'
+            """ % (spec.name, prefix, spec))
+        
+        os.chmod(script, 0555)
diff --git a/var/spack/repos/builtin.mock/packages/test-a/test-a-0.0.tar.gz b/var/spack/repos/builtin.mock/packages/test-a/test-a-0.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..3588e05765cd799dfe19e1f77e057bf7508ec47e
Binary files /dev/null and b/var/spack/repos/builtin.mock/packages/test-a/test-a-0.0.tar.gz differ
diff --git a/var/spack/repos/builtin.mock/packages/test-b/package.py b/var/spack/repos/builtin.mock/packages/test-b/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..db64b0a5565a0dd6666dd691659c724daef22f49
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/test-b/package.py
@@ -0,0 +1,31 @@
+from spack import *
+
+import os
+
+mydir = os.path.dirname(__file__)
+source = os.path.join(mydir,'test-b-0.0.tar.gz')
+
+class TestB(Package):
+    """The test-b package"""
+
+    url = 'file://'+source
+
+    version('0.0', '4e823d0af4154fcf52b75dad41b7fd63')
+
+    variant('nom', default=True, description='Nominal variant')
+    variant('var', default=False, description='Variant variant')
+  
+    depends_on('test-a')
+
+    def install(self, spec, prefix):
+        bindir = os.path.join(prefix,'bin')
+        os.makedirs(bindir)
+        script = os.path.join(bindir, 'test-b')
+        with open(script,'w') as fp:
+            fp.write("""#!/bin/bash
+echo 'name: %s'
+echo 'prefix: %s'
+echo 'spec: %s'
+            """ % (spec.name, prefix, spec))
+        
+        os.chmod(script, 0555)
diff --git a/var/spack/repos/builtin.mock/packages/test-b/test-b-0.0.tar.gz b/var/spack/repos/builtin.mock/packages/test-b/test-b-0.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..3588e05765cd799dfe19e1f77e057bf7508ec47e
Binary files /dev/null and b/var/spack/repos/builtin.mock/packages/test-b/test-b-0.0.tar.gz differ
diff --git a/var/spack/repos/builtin.mock/packages/test-c/package.py b/var/spack/repos/builtin.mock/packages/test-c/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..0b030374669d565e1cfb07194c2c984c6b3942f2
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/test-c/package.py
@@ -0,0 +1,31 @@
+from spack import *
+
+import os
+
+mydir = os.path.dirname(__file__)
+source = os.path.join(mydir,'test-c-0.0.tar.gz')
+
+class TestC(Package):
+    """The test-c package"""
+
+    url = 'file://'+source
+
+    version('0.0', '4e823d0af4154fcf52b75dad41b7fd63')
+
+    variant('nom', default=True, description='Nominal variant')
+    variant('var', default=False, description='Variant variant')
+  
+    depends_on('test-a+var',when='+var')
+
+    def install(self, spec, prefix):
+        bindir = os.path.join(prefix,'bin')
+        os.makedirs(bindir)
+        script = os.path.join(bindir, 'test-c')
+        with open(script,'w') as fp:
+            fp.write("""#!/bin/bash
+echo 'name: %s'
+echo 'prefix: %s'
+echo 'spec: %s'
+            """ % (spec.name, prefix, spec))
+        
+        os.chmod(script, 0555)
diff --git a/var/spack/repos/builtin.mock/packages/test-c/test-c-0.0.tar.gz b/var/spack/repos/builtin.mock/packages/test-c/test-c-0.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..3588e05765cd799dfe19e1f77e057bf7508ec47e
Binary files /dev/null and b/var/spack/repos/builtin.mock/packages/test-c/test-c-0.0.tar.gz differ
diff --git a/var/spack/repos/builtin.mock/packages/test-d/package.py b/var/spack/repos/builtin.mock/packages/test-d/package.py
new file mode 100644
index 0000000000000000000000000000000000000000..5cb7dcb2cb25e2c39cd0e578fcc5d6364d5ad75b
--- /dev/null
+++ b/var/spack/repos/builtin.mock/packages/test-d/package.py
@@ -0,0 +1,32 @@
+from spack import *
+
+import os
+
+mydir = os.path.dirname(__file__)
+source = os.path.join(mydir,'test-d-0.0.tar.gz')
+
+class TestD(Package):
+    """The test-d package"""
+
+    url = 'file://'+source
+
+    version('0.0', '4e823d0af4154fcf52b75dad41b7fd63')
+
+    variant('nom', default=True, description='Nominal variant')
+    variant('var', default=False, description='Variant variant')
+  
+    depends_on('test-b')
+    depends_on('test-c')
+
+    def install(self, spec, prefix):
+        bindir = os.path.join(prefix,'bin')
+        os.makedirs(bindir)
+        script = os.path.join(bindir, 'test-d')
+        with open(script,'w') as fp:
+            fp.write("""#!/bin/bash
+echo 'name: %s'
+echo 'prefix: %s'
+echo 'spec: %s'
+            """ % (spec.name, prefix, spec))
+        
+        os.chmod(script, 0555)
diff --git a/var/spack/repos/builtin.mock/packages/test-d/test-d-0.0.tar.gz b/var/spack/repos/builtin.mock/packages/test-d/test-d-0.0.tar.gz
new file mode 100644
index 0000000000000000000000000000000000000000..3588e05765cd799dfe19e1f77e057bf7508ec47e
Binary files /dev/null and b/var/spack/repos/builtin.mock/packages/test-d/test-d-0.0.tar.gz differ