Skip to content

version constraints are somewhat not respected and break concretizer #5753

@davydden

Description

@davydden

with #5752 slepc will correctly have

depends_on('[email protected]:3.7.7', when='@3.7.1:3.7.4')

so I expected the current stable release of [email protected] to result in [email protected], yet this does not happen:

$ spack spec -I dealii
Input spec
--------------------------------
     dealii

Normalized
--------------------------------
     dealii
         ^blas
         ^bzip2
         ^cmake
         ^lapack
         ^muparser
         ^suite-sparse
         ^tbb
         ^zlib

Concretized
--------------------------------
==> Error: An unsatisfiable version constraint has been detected for spec:

    [email protected]%[email protected]+boost~complex~debug+double+hdf5+hypre~int64+metis+mpi+mumps+shared+superlu-dist~trilinos arch=darwin-highsierra-x86_64


while trying to concretize the partial spec:

    [email protected]%[email protected]+arpack arch=darwin-highsierra-x86_64
        ^[email protected]%[email protected]+pic~shared~tk~ucs4 arch=darwin-highsierra-x86_64
            ^[email protected]%[email protected]+shared arch=darwin-highsierra-x86_64
            ^[email protected]%[email protected]~symlinks arch=darwin-highsierra-x86_64
                ^[email protected]%[email protected]+internal_glib arch=darwin-highsierra-x86_64
            ^[email protected]%[email protected] arch=darwin-highsierra-x86_64
                ^[email protected]%[email protected]+pic+shared arch=darwin-highsierra-x86_64
            ^[email protected]%[email protected] arch=darwin-highsierra-x86_64
            ^[email protected]%[email protected] arch=darwin-highsierra-x86_64


slepc requires petsc version 3.7:3.7.7, but spec asked for 3.8.0

So it looks like petsc got settled with 3.8.0 before trying to concretize slepc.
Not sure if it's a bug or limitation of the current concretizer.

@tgamblin @scheibelp ping

p.s. a workaround is to add to ~/.spack/packages.yaml:

  petsc:
     version: [3.7.7]

For completeness, here are my settings:

packages:
  all:
    compiler: [clang, gcc]
    providers:
      mpi: [openmpi]
      blas: [openblas]
      lapack: [openblas]
      scalapack: [netlib-scalapack]
  cmake:
    version: [3.9.0]
  suite-sparse:
    variants: ~tbb
  boost:
    variants: +thread+system+serialization+iostreams+mpi+python
  petsc:
    variants: +mumps
  dealii:
    version: [develop]
    variants: +doc+optflags+adol-c+nanoflann+sundials+assimp
  metis:
    variants: +real64

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions