summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2020-09-03 17:31:00 -0500
committerGitHub <noreply@github.com>2020-09-03 17:31:00 -0500
commit7d9f2bf4ed89823b4f6c515b7f4e2994bf58c3a9 (patch)
treebe3a0c891adfdbf67f1bad56b35387c48e6235b1
parent7728b0737bf408758f9e70d4a128ee4e1c478994 (diff)
downloadspack-7d9f2bf4ed89823b4f6c515b7f4e2994bf58c3a9.tar.gz
spack-7d9f2bf4ed89823b4f6c515b7f4e2994bf58c3a9.tar.bz2
spack-7d9f2bf4ed89823b4f6c515b7f4e2994bf58c3a9.tar.xz
spack-7d9f2bf4ed89823b4f6c515b7f4e2994bf58c3a9.zip
depends_on cannot handle ^ sigil (#18220)
* depends_on cannot handle ^ sigil * cardioid+mfem+cuda requires hypre+cuda * Document this limitation * Move warning message to Known Issues docs * Better handling of parmetis dep
-rw-r--r--lib/spack/docs/known_issues.rst29
-rw-r--r--var/spack/repos/builtin/packages/cardioid/package.py4
-rw-r--r--var/spack/repos/builtin/packages/parmetis/package.py3
-rw-r--r--var/spack/repos/builtin/packages/phist/package.py4
-rw-r--r--var/spack/repos/builtin/packages/warpx/package.py2
5 files changed, 36 insertions, 6 deletions
diff --git a/lib/spack/docs/known_issues.rst b/lib/spack/docs/known_issues.rst
index 531b3bcc5a..accec2422b 100644
--- a/lib/spack/docs/known_issues.rst
+++ b/lib/spack/docs/known_issues.rst
@@ -14,7 +14,7 @@ problems if you encounter them.
Variants are not properly forwarded to dependencies
---------------------------------------------------
-**Status:** Expected to be fixed in the next release
+**Status:** Expected to be fixed by Spack's new concretizer
Sometimes, a variant of a package can also affect how its dependencies are
built. For example, in order to build MPI support for a package, it may
@@ -48,3 +48,30 @@ A workaround is to explicitly activate the variants of dependencies as well:
See https://github.com/spack/spack/issues/267 and
https://github.com/spack/spack/issues/2546 for further details.
+
+-----------------------------------------------
+depends_on cannot handle recursive dependencies
+-----------------------------------------------
+
+**Status:** Not yet a work in progress
+
+Although ``depends_on`` can handle any aspect of Spack's spec syntax,
+it currently cannot handle recursive dependencies. If the ``^`` sigil
+appears in a ``depends_on`` statement, the concretizer will hang.
+For example, something like:
+
+.. code-block:: python
+
+ depends_on('mfem+cuda ^hypre+cuda', when='+cuda')
+
+
+should be rewritten as:
+
+.. code-block:: python
+
+ depends_on('mfem+cuda', when='+cuda')
+ depends_on('hypre+cuda', when='+cuda')
+
+
+See https://github.com/spack/spack/issues/17660 and
+https://github.com/spack/spack/issues/11160 for more details.
diff --git a/var/spack/repos/builtin/packages/cardioid/package.py b/var/spack/repos/builtin/packages/cardioid/package.py
index 6395620d6e..b3effc28e4 100644
--- a/var/spack/repos/builtin/packages/cardioid/package.py
+++ b/var/spack/repos/builtin/packages/cardioid/package.py
@@ -25,8 +25,8 @@ class Cardioid(CMakePackage):
depends_on('lapack')
depends_on('mpi')
depends_on('cuda', when="+cuda")
- depends_on('mfem+mpi+superlu-dist+lapack', when="+mfem~cuda")
- depends_on('mfem+mpi+superlu-dist+lapack^hypre+cuda', when="+mfem+cuda")
+ depends_on('mfem+mpi+superlu-dist+lapack', when="+mfem")
+ depends_on('hypre+cuda', when="+mfem+cuda")
depends_on('cmake@3.1:', type='build')
depends_on('perl', type='build')
diff --git a/var/spack/repos/builtin/packages/parmetis/package.py b/var/spack/repos/builtin/packages/parmetis/package.py
index 076e447877..d1f9c434af 100644
--- a/var/spack/repos/builtin/packages/parmetis/package.py
+++ b/var/spack/repos/builtin/packages/parmetis/package.py
@@ -22,10 +22,13 @@ class Parmetis(CMakePackage):
variant('shared', default=True, description='Enables the build of shared libraries.')
variant('gdb', default=False, description='Enables gdb support.')
+ variant('int64', default=False, description='Sets the bit width of METIS\'s index type to 64.')
depends_on('cmake@2.8:', type='build')
depends_on('mpi')
depends_on('metis@5:')
+ depends_on('metis+int64', when='+int64')
+ depends_on('metis~int64', when='~int64')
patch('enable_external_metis.patch')
# bug fixes from PETSc developers
diff --git a/var/spack/repos/builtin/packages/phist/package.py b/var/spack/repos/builtin/packages/phist/package.py
index cdbd84ed7f..79af4d4cbe 100644
--- a/var/spack/repos/builtin/packages/phist/package.py
+++ b/var/spack/repos/builtin/packages/phist/package.py
@@ -118,8 +118,8 @@ class Phist(CMakePackage):
depends_on('ghost', when='kernel_lib=ghost')
depends_on('trilinos+anasazi+belos+teuchos', when='+trilinos')
- depends_on('parmetis ^metis+int64', when='+parmetis +int64')
- depends_on('parmetis ^metis~int64', when='+parmetis ~int64')
+ depends_on('parmetis+int64', when='+parmetis+int64')
+ depends_on('parmetis~int64', when='+parmetis~int64')
# Fortran 2003 bindings were included in version 1.7, previously they
# required a separate package
diff --git a/var/spack/repos/builtin/packages/warpx/package.py b/var/spack/repos/builtin/packages/warpx/package.py
index b29733cf56..9cabbc4d73 100644
--- a/var/spack/repos/builtin/packages/warpx/package.py
+++ b/var/spack/repos/builtin/packages/warpx/package.py
@@ -51,7 +51,7 @@ class Warpx(MakefilePackage):
depends_on('openpmd-api +mpi', when='+openpmd +mpi')
depends_on('ascent', when='+ascent')
depends_on('ascent +cuda', when='+ascent backend=cuda')
- depends_on('ascent +mpi ^conduit~hdf5', when='+ascent +mpi')
+ depends_on('ascent +mpi', when='+ascent +mpi')
resource(name='amrex',
git='https://github.com/AMReX-Codes/amrex.git',