diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py
index 7ed198962979dcf83454f1003264ecedbf462f1b..57b31f974c702bd1b6138a10f793fcafeb0faa81 100644
--- a/var/spack/repos/builtin/packages/aluminum/package.py
+++ b/var/spack/repos/builtin/packages/aluminum/package.py
@@ -29,8 +29,7 @@ class Aluminum(CMakePackage):
     depends_on('cuda', when='+gpu')
     depends_on('cudnn', when='+gpu')
     depends_on('cub', when='+gpu')
-    depends_on('mpi', when='~mpi_cuda')
-    depends_on('mpi +cuda', when='+mpi_cuda')
+    depends_on('mpi')
     depends_on('nccl', when='+nccl')
     depends_on('hwloc')
 
diff --git a/var/spack/repos/builtin/packages/hydrogen/package.py b/var/spack/repos/builtin/packages/hydrogen/package.py
index de067129b61085d6b7eb0d378ef8ac8f69f8df3a..94379001e14b74d1cc3c1899e7fa6d59a9cbd6f0 100644
--- a/var/spack/repos/builtin/packages/hydrogen/package.py
+++ b/var/spack/repos/builtin/packages/hydrogen/package.py
@@ -73,14 +73,12 @@ class Hydrogen(CMakePackage):
     depends_on('netlib-lapack +external-blas', when='blas=essl')
 
     depends_on('aluminum@master', when='+al ~cuda')
-    depends_on('aluminum@master +gpu +mpi-cuda', when='+al +cuda ~nccl')
-    depends_on('aluminum@master +gpu +nccl +mpi_cuda', when='+al +cuda +nccl')
+    depends_on('aluminum@master +gpu +mpi_cuda', when='+al +cuda')
 
     # Note that this forces us to use OpenBLAS until #1712 is fixed
     depends_on('lapack', when='blas=openblas ~openmp_blas')
 
-    depends_on('mpi', when='~cuda')
-    depends_on('mpi +cuda', when='+cuda')
+    depends_on('mpi')
 
     depends_on('scalapack', when='+scalapack')
     depends_on('gmp', when='+mpfr')
@@ -154,7 +152,7 @@ def cmake_args(self):
         if '+al' in spec:
             args.extend([
                 '-DHydrogen_ENABLE_ALUMINUM:BOOL=%s' % ('+al' in spec),
-                '-DHYDROGEN_Aluminum_DIR={0}'.format(
+                '-DALUMINUM_DIR={0}'.format(
                     spec['aluminum'].prefix)])
 
         return args
diff --git a/var/spack/repos/builtin/packages/lbann/package.py b/var/spack/repos/builtin/packages/lbann/package.py
index 609364dc304b9a8ba7f137e2f5a74b620765a022..7f20dbe67bb8dea701b5631495043b9cd1871f20 100644
--- a/var/spack/repos/builtin/packages/lbann/package.py
+++ b/var/spack/repos/builtin/packages/lbann/package.py
@@ -35,9 +35,10 @@ class Lbann(CMakePackage):
     variant('build_type', default='Release',
             description='The build type to build',
             values=('Debug', 'Release'))
-    variant('al', default=False, description='Builds with support for Aluminum Library')
+    variant('al', default=True, description='Builds with support for Aluminum Library')
     variant('conduit', default=False, description='Builds with support for Conduit Library')
     variant('vtune', default=False, description='Builds with support for Intel VTune')
+    variant('docs', default=False, description='Builds with support for building documentation')
 
     # It seems that there is a need for one statement per version bounds
     depends_on('hydrogen +openmp_blas +shared +int64', when='@:0.90,0.95: ~al')
@@ -64,14 +65,13 @@ class Lbann(CMakePackage):
                when='build_type=Debug @0.91:0.94')
 
     depends_on('aluminum@master', when='@:0.90,0.95: +al ~gpu')
-    depends_on('aluminum@master +gpu +mpi-cuda', when='@:0.90,0.95: +al +gpu ~nccl')
+    depends_on('aluminum@master +gpu +mpi_cuda', when='@:0.90,0.95: +al +gpu ~nccl')
     depends_on('aluminum@master +gpu +nccl +mpi_cuda', when='@:0.90,0.95: +al +gpu +nccl')
 
     depends_on('cuda', when='+gpu')
     depends_on('cudnn', when='+gpu')
     depends_on('cub', when='+gpu')
-    depends_on('mpi', when='~gpu')
-    depends_on('mpi +cuda', when='+gpu')
+    depends_on('mpi')
     depends_on('hwloc')
 
     # LBANN wraps OpenCV calls in OpenMP parallel loops, build without OpenMP
@@ -90,6 +90,11 @@ class Lbann(CMakePackage):
 
     depends_on('conduit@master +hdf5', when='+conduit')
 
+    depends_on('py-breathe', type='build', when='+docs')
+    depends_on('py-m2r', type='build', when='+docs')
+
+    depends_on('cereal')
+
     generator = 'Ninja'
     depends_on('ninja', type='build')