From 4d12c5455a18e14b77badca5e27743af47339947 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Wed, 17 Aug 2016 13:03:56 -0500 Subject: Fix NetCDF/HDF5 dependency resolution problems --- var/spack/repos/builtin/packages/netcdf/package.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py index ab40c14340..9b4d80119c 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf/package.py @@ -50,10 +50,15 @@ class Netcdf(Package): # Required for NetCDF-4 support depends_on("zlib") - depends_on('hdf5@:1.8+mpi', when='@:4.4.0+mpi') - depends_on('hdf5+mpi', when='@4.4.1:+mpi') - depends_on('hdf5@:1.8~mpi', when='@:4.4.0~mpi') - depends_on('hdf5~mpi', when='@4.4.1:~mpi') + depends_on('hdf5') + + # Variant forwarding + depends_on('hdf5+mpi', when='+mpi') + depends_on('hdf5~mpi', when='~mpi') + + # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later + # https://github.com/Unidata/netcdf-c/issues/250 + depends_on('hdf5@:1.8', when='@:4.4.0') def install(self, spec, prefix): # Environment variables -- cgit v1.2.3-60-g2f50 From 28537ae7b75f7001fc3c11a530a752093d7bcdc0 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Thu, 18 Aug 2016 14:40:21 -0500 Subject: Workaround until variant forwarding works properly --- var/spack/repos/builtin/packages/hdf5/package.py | 2 +- var/spack/repos/builtin/packages/netcdf/package.py | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index aedaf18218..70cd168cc0 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -52,7 +52,7 @@ class Hdf5(Package): variant('cxx', default=True, description='Enable C++ support') variant('fortran', default=True, description='Enable Fortran support') - variant('mpi', default=False, description='Enable MPI support') + variant('mpi', default=True, description='Enable MPI support') variant('szip', default=False, description='Enable szip support') variant('threadsafe', default=False, description='Enable thread-safe capabilities') diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py index 9b4d80119c..5dc686c907 100644 --- a/var/spack/repos/builtin/packages/netcdf/package.py +++ b/var/spack/repos/builtin/packages/netcdf/package.py @@ -52,15 +52,16 @@ class Netcdf(Package): depends_on("zlib") depends_on('hdf5') - # Variant forwarding - depends_on('hdf5+mpi', when='+mpi') - depends_on('hdf5~mpi', when='~mpi') - # NetCDF 4.4.0 and prior have compatibility issues with HDF5 1.10 and later # https://github.com/Unidata/netcdf-c/issues/250 depends_on('hdf5@:1.8', when='@:4.4.0') def install(self, spec, prefix): + # Workaround until variant forwarding works properly + if '+mpi' in spec and spec.satisfies('^hdf5~mpi'): + raise RuntimeError('Invalid spec. Package netcdf requires ' + 'hdf5+mpi, but spec asked for hdf5~mpi.') + # Environment variables CPPFLAGS = [] LDFLAGS = [] -- cgit v1.2.3-60-g2f50