Add hdf5 versions 1.14.0, develop-1.14 and update develop version from develop-1.13 to develop-1.15 (#34734)
* Add HDF5 version 1.13.3. * Remove maintainers no longer with The HDFGroup. * Add version hdf5-vol-async@1.4 * Add HDF5 version 1.14.0, develop-1.14, develop-1.15. Add missing conflicts for api version and develop versions. * Add conflicts statement to hdf5/package.py to avoid building hdf5 with MPICH 4.0.x versions with bug that causes testphdf5 test to fail. * Add patch to call find_package(MPI) for dependent packages not finding it, not having called it themselves. * Remove language components from find_package(MPI) in hdf5_1_14_0_config_find_mpi.patch. * Add HDF5 version 1.14.0, develop-1.14, develop-1.15. Add missing conflicts for api version and develop versions. * Add conflicts statement to hdf5/package.py to avoid building hdf5 with MPICH 4.0.x versions with bug that causes testphdf5 test to fail. * Add patch to call find_package(MPI) for dependent packages not finding it, not having called it themselves. * Remove language components from find_package(MPI) in hdf5_1_14_0_config_find_mpi.patch. * Don't guard ParaView patch on HDF5 variant ParaView always needsd HDF5 and ignores the variant. * py-h5py: Newer versions of HDF5 introduce breaking API changes --------- Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> Co-authored-by: Ryan Krattiger <ryan.krattiger@kitware.com>
This commit is contained in:
		| @@ -0,0 +1,13 @@ | |||||||
|  | diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in | ||||||
|  | index 35cee4f..b336377 100644 | ||||||
|  | --- a/config/cmake/hdf5-config.cmake.in | ||||||
|  | +++ b/config/cmake/hdf5-config.cmake.in | ||||||
|  | @@ -63,6 +63,8 @@ if (${HDF5_PACKAGE_NAME}_ENABLE_PARALLEL) | ||||||
|  |      set (${HDF5_PACKAGE_NAME}_MPI_Fortran_INCLUDE_PATH "@MPI_Fortran_INCLUDE_DIRS@") | ||||||
|  |      set (${HDF5_PACKAGE_NAME}_MPI_Fortran_LIBRARIES    "@MPI_Fortran_LIBRARIES@") | ||||||
|  |    endif () | ||||||
|  | + | ||||||
|  | +    find_package(MPI QUIET REQUIRED) | ||||||
|  |  endif () | ||||||
|  |   | ||||||
|  |  if (${HDF5_PACKAGE_NAME}_BUILD_JAVA) | ||||||
| @@ -39,7 +39,8 @@ class Hdf5(CMakePackage): | |||||||
| 
 | 
 | ||||||
|     # The 'develop' version is renamed so that we could uninstall (or patch) it |     # The 'develop' version is renamed so that we could uninstall (or patch) it | ||||||
|     # without affecting other develop version. |     # without affecting other develop version. | ||||||
|     version("develop-1.13", branch="develop") |     version("develop-1.15", branch="develop") | ||||||
|  |     version("develop-1.14", branch="hdf5_1_14") | ||||||
|     version("develop-1.12", branch="hdf5_1_12") |     version("develop-1.12", branch="hdf5_1_12") | ||||||
|     version("develop-1.10", branch="hdf5_1_10") |     version("develop-1.10", branch="hdf5_1_10") | ||||||
|     version("develop-1.8", branch="hdf5_1_8") |     version("develop-1.8", branch="hdf5_1_8") | ||||||
| @@ -49,6 +50,11 @@ class Hdf5(CMakePackage): | |||||||
|     version("1.13.2", sha256="01643fa5b37dba7be7c4db6bbf3c5d07adf5c1fa17dbfaaa632a279b1b2f06da") |     version("1.13.2", sha256="01643fa5b37dba7be7c4db6bbf3c5d07adf5c1fa17dbfaaa632a279b1b2f06da") | ||||||
| 
 | 
 | ||||||
|     # Even versions are maintenance versions |     # Even versions are maintenance versions | ||||||
|  |     version( | ||||||
|  |         "1.14.0", | ||||||
|  |         sha256="a571cc83efda62e1a51a0a912dd916d01895801c5025af91669484a1575a6ef4", | ||||||
|  |         preferred=True, | ||||||
|  |     ) | ||||||
|     version( |     version( | ||||||
|         "1.12.2", |         "1.12.2", | ||||||
|         sha256="2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14", |         sha256="2a89af03d56ce7502dcae18232c241281ad1773561ec00c0f0e8ee2463910f14", | ||||||
| @@ -190,7 +196,7 @@ class Hdf5(CMakePackage): | |||||||
|         "api", |         "api", | ||||||
|         default="default", |         default="default", | ||||||
|         description="Choose api compatibility for earlier version", |         description="Choose api compatibility for earlier version", | ||||||
|         values=("default", "v114", "v112", "v110", "v18", "v16"), |         values=("default", "v116", "v114", "v112", "v110", "v18", "v16"), | ||||||
|         multi=False, |         multi=False, | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
| @@ -207,10 +213,28 @@ class Hdf5(CMakePackage): | |||||||
|     for plat in ["cray", "darwin", "linux"]: |     for plat in ["cray", "darwin", "linux"]: | ||||||
|         depends_on("pkgconfig", when="platform=%s" % plat, type="run") |         depends_on("pkgconfig", when="platform=%s" % plat, type="run") | ||||||
| 
 | 
 | ||||||
|  |     conflicts("+mpi", "^mpich@4.0:4.0.3") | ||||||
|  |     conflicts("api=v116", when="@1.6:1.14", msg="v116 is not compatible with this release") | ||||||
|  |     conflicts( | ||||||
|  |         "api=v116", | ||||||
|  |         when="@develop-1.8:develop-1.14", | ||||||
|  |         msg="v116 is not compatible with this release", | ||||||
|  |     ) | ||||||
|     conflicts("api=v114", when="@1.6:1.12", msg="v114 is not compatible with this release") |     conflicts("api=v114", when="@1.6:1.12", msg="v114 is not compatible with this release") | ||||||
|  |     conflicts( | ||||||
|  |         "api=v114", | ||||||
|  |         when="@develop-1.8:develop-1.12", | ||||||
|  |         msg="v114 is not compatible with this release", | ||||||
|  |     ) | ||||||
|     conflicts("api=v112", when="@1.6:1.10", msg="v112 is not compatible with this release") |     conflicts("api=v112", when="@1.6:1.10", msg="v112 is not compatible with this release") | ||||||
|  |     conflicts( | ||||||
|  |         "api=v112", | ||||||
|  |         when="@develop-1.8:develop-1.10", | ||||||
|  |         msg="v112 is not compatible with this release", | ||||||
|  |     ) | ||||||
|     conflicts("api=v110", when="@1.6:1.8", msg="v110 is not compatible with this release") |     conflicts("api=v110", when="@1.6:1.8", msg="v110 is not compatible with this release") | ||||||
|     conflicts("api=v18", when="@1.6.0:1.6", msg="v18 is not compatible with this release") |     conflicts("api=v110", when="@develop-1.8", msg="v110 is not compatible with this release") | ||||||
|  |     conflicts("api=v18", when="@1.6", msg="v18 is not compatible with this release") | ||||||
| 
 | 
 | ||||||
|     # The Java wrappers cannot be built without shared libs. |     # The Java wrappers cannot be built without shared libs. | ||||||
|     conflicts("+java", when="~shared") |     conflicts("+java", when="~shared") | ||||||
| @@ -287,6 +311,13 @@ class Hdf5(CMakePackage): | |||||||
|     # See https://github.com/HDFGroup/hdf5/issues/1157 |     # See https://github.com/HDFGroup/hdf5/issues/1157 | ||||||
|     patch("fortran-kinds-2.patch", when="@1.10.8,1.12.1") |     patch("fortran-kinds-2.patch", when="@1.10.8,1.12.1") | ||||||
| 
 | 
 | ||||||
|  |     # Patch needed for HDF5 1.14.0 where dependency on MPI::MPI_C was declared | ||||||
|  |     # PUBLIC.  Dependent packages using the default hdf5 package but not | ||||||
|  |     # expecting to use MPI then failed to configure because they did not call | ||||||
|  |     # find_package(MPI).  This patch does that for them.  Later HDF5 versions | ||||||
|  |     # will include the patch code changes. | ||||||
|  |     patch("hdf5_1_14_0_config_find_mpi.patch", when="@1.14.0") | ||||||
|  | 
 | ||||||
|     # The argument 'buf_size' of the C function 'h5fget_file_image_c' is |     # The argument 'buf_size' of the C function 'h5fget_file_image_c' is | ||||||
|     # declared as intent(in) though it is modified by the invocation. As a |     # declared as intent(in) though it is modified by the invocation. As a | ||||||
|     # result, aggressive compilers such as Fujitsu's may do a wrong |     # result, aggressive compilers such as Fujitsu's may do a wrong | ||||||
| @@ -576,14 +607,14 @@ def cmake_args(self): | |||||||
|         if api != "default": |         if api != "default": | ||||||
|             args.append(self.define("DEFAULT_API_VERSION", api)) |             args.append(self.define("DEFAULT_API_VERSION", api)) | ||||||
| 
 | 
 | ||||||
|         if "+mpi" in spec and "platform=windows" not in spec: |         if "+mpi" in spec: | ||||||
|             args.append(self.define("CMAKE_C_COMPILER", spec["mpi"].mpicc)) |             args.extend( | ||||||
| 
 |                 [ | ||||||
|             if "+cxx" in self.spec: |                     "-DMPI_CXX_COMPILER:PATH=%s" % spec["mpi"].mpicxx, | ||||||
|                 args.append(self.define("CMAKE_CXX_COMPILER", spec["mpi"].mpicxx)) |                     "-DMPI_C_COMPILER:PATH=%s" % spec["mpi"].mpicc, | ||||||
| 
 |                     "-DMPI_Fortran_COMPILER:PATH=%s" % spec["mpi"].mpifc, | ||||||
|             if "+fortran" in self.spec: |                 ] | ||||||
|                 args.append(self.define("CMAKE_Fortran_COMPILER", spec["mpi"].mpifc)) |             ) | ||||||
| 
 | 
 | ||||||
|         # work-around for https://github.com/HDFGroup/hdf5/issues/1320 |         # work-around for https://github.com/HDFGroup/hdf5/issues/1320 | ||||||
|         if spec.satisfies("@1.10.8,1.13.0"): |         if spec.satisfies("@1.10.8,1.13.0"): | ||||||
|   | |||||||
| @@ -270,8 +270,8 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage): | |||||||
| 
 | 
 | ||||||
|     # Patch for paraview 5.10: +hdf5 ^hdf5@1.13.2: |     # Patch for paraview 5.10: +hdf5 ^hdf5@1.13.2: | ||||||
|     # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9690 |     # https://gitlab.kitware.com/vtk/vtk/-/merge_requests/9690 | ||||||
|     patch("vtk-xdmf2-hdf51.13.1.patch", when="@5.10.0:5.10 +hdf5") |     patch("vtk-xdmf2-hdf51.13.1.patch", when="@5.10.0:5.10") | ||||||
|     patch("vtk-xdmf2-hdf51.13.2.patch", when="@5.10: +hdf5") |     patch("vtk-xdmf2-hdf51.13.2.patch", when="@5.10:") | ||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
|     def generator(self): |     def generator(self): | ||||||
|   | |||||||
| @@ -61,7 +61,7 @@ class PyH5py(PythonPackage): | |||||||
|     # Link dependencies (py-h5py v2 cannot build against HDF5 1.12 regardless |     # Link dependencies (py-h5py v2 cannot build against HDF5 1.12 regardless | ||||||
|     # of API setting) |     # of API setting) | ||||||
|     depends_on("hdf5@1.8.4:1.11 +hl", when="@:2") |     depends_on("hdf5@1.8.4:1.11 +hl", when="@:2") | ||||||
|     depends_on("hdf5@1.8.4: +hl", when="@3:") |     depends_on("hdf5@1.8.4:1.12 +hl", when="@3:") | ||||||
| 
 | 
 | ||||||
|     # MPI dependencies |     # MPI dependencies | ||||||
|     depends_on("hdf5+mpi", when="+mpi") |     depends_on("hdf5+mpi", when="+mpi") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Larry Knox
					Larry Knox