Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 0 additions & 13 deletions .circleci/config.yml

This file was deleted.

5 changes: 5 additions & 0 deletions .github/workflows/build_conduit_gcc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,11 @@ jobs:
run: |
echo "**** Building Conduit"
cmake --build build -j2
- name: Run Conduit Unit Tests
run: |
echo "**** Conduit Unit Tests"
export CTEST_OUTPUT_ON_FAILURE=1
ctest --test-dir build
- name: Install Conduit
run: |
echo "**** Installing Conduit"
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ and this project aspires to adhere to [Semantic Versioning](https://semver.org/s
- Sped up `conduit::blueprint::mesh::topology::unstructured::to_polygonal()` algorithm and added support for mixed element types.
- Improved support for "mixed" element types in `conduit::blueprint::mesh::utils::ShapeType` and also removed a string member to speed up construction.

### Changed

#### Relay
- Updates to use Silo 4.12 and HDF5 2.0.0.
- Reworked HDF5 handle managment to avoid resource leaks with exceptions.

## [0.9.5] - Released 2025-09-10

### Added
Expand Down
32 changes: 32 additions & 0 deletions scripts/build_conduit/2025_12_08_h5zzfp-hdf5-cmake-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
From e3caf7354f1cfb4bd56073cd9d145bb4fff32f1b Mon Sep 17 00:00:00 2001
From: Cyrus Harrison <[email protected]>
Date: Mon, 8 Dec 2025 15:26:12 -0800
Subject: [PATCH] hdf5 cmake logic fix

---
cmake/HDFMacros.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cmake/HDFMacros.cmake b/cmake/HDFMacros.cmake
index 5aaacd3..bfe1932 100644
--- a/cmake/HDFMacros.cmake
+++ b/cmake/HDFMacros.cmake
@@ -97,7 +97,7 @@ macro (HDF5_SUPPORT)
else ()
add_definitions (-DH5_BUILT_AS_STATIC_LIB)
endif ()
- if (FORTRAN_INTERFACE AND ${HDF5_BUILD_FORTRAN})
+ if (FORTRAN_INTERFACE)
if (HDF5_shared_Fortran_FOUND)
set (HDF5_FORTRAN_INCLUDE_DIRS ${HDF5_INCLUDE_DIR_FORTRAN})
set (HDF5_FORTRAN_LIBRARIES ${HDF5_FORTRAN_SHARED_LIBRARY})
@@ -125,7 +125,7 @@ macro (HDF5_SUPPORT)
else ()
set (HDF5_FOUND 0)
endif ()
- if (FORTRAN_INTERFACE AND ${HDF5_BUILD_FORTRAN})
+ if (FORTRAN_INTERFACE)
if (HDF5_shared_Fortran_FOUND)
set (HDF5_FORTRAN_INCLUDE_DIRS ${HDF5_INCLUDE_DIR_FORTRAN})
set (HDF5_FORTRAN_LIBRARIES ${HDF5_FORTRAN_SHARED_LIBRARY})
--
34 changes: 15 additions & 19 deletions scripts/build_conduit/build_conduit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -196,10 +196,9 @@ fi # build_zlib
################
# HDF5
################
# release 1-2 GAH!
hdf5_version=1.14.1-2
hdf5_middle_version=1.14.1
hdf5_short_version=1.14
hdf5_version=2.0.0
hdf5_middle_version=2_0_0
hdf5_short_version=2_0
hdf5_src_dir=$(ospath ${source_dir}/hdf5-${hdf5_version})
hdf5_build_dir=$(ospath ${build_dir}/hdf5-${hdf5_version}/)
hdf5_install_dir=$(ospath ${install_dir}/hdf5-${hdf5_version}/)
Expand All @@ -210,13 +209,14 @@ if [ ! -d ${hdf5_install_dir} ]; then
if ${build_hdf5}; then
if [ ! -d ${hdf5_src_dir} ]; then
echo "**** Downloading ${hdf5_tarball}"
curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${hdf5_short_version}/hdf5-${hdf5_middle_version}/src/hdf5-${hdf5_version}.tar.gz -o ${hdf5_tarball}
curl -L https://support.hdfgroup.org/releases/hdf5/v${hdf5_short_version}/v${hdf5_middle_version}/downloads/hdf5-${hdf5_version}.tar.gz -o ${hdf5_tarball}
tar ${tar_extra_args} -xzf ${hdf5_tarball} -C ${source_dir}
fi


#################
#
# hdf5 1.14.x CMake recipe for using zlib
# hdf5 CMake recipe for using zlib
#
# -DHDF5_ENABLE_Z_LIB_SUPPORT=ON
# Add zlib install dir to CMAKE_PREFIX_PATH
Expand All @@ -227,7 +227,7 @@ echo "**** Configuring HDF5 ${hdf5_version}"
cmake -S ${hdf5_src_dir} -B ${hdf5_build_dir} ${cmake_compiler_settings} \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${enable_verbose} \
-DCMAKE_BUILD_TYPE=${build_config} \
-DHDF5_ENABLE_Z_LIB_SUPPORT=ON \
-DHDF5_ENABLE_ZLIB_SUPPORT:BOOL=ON \
-DCMAKE_PREFIX_PATH=${zlib_install_dir} \
-DCMAKE_INSTALL_PREFIX=${hdf5_install_dir}

Expand All @@ -245,7 +245,7 @@ fi # build_hdf5
################
# Silo
################
silo_version=4.11.1
silo_version=4.12.0
silo_src_dir=$(ospath ${source_dir}/Silo-${silo_version})
silo_build_dir=$(ospath ${build_dir}/silo-${silo_version}/)
silo_install_dir=$(ospath ${install_dir}/silo-${silo_version}/)
Expand All @@ -260,17 +260,8 @@ if [ ! -d ${silo_src_dir} ]; then
# untar and avoid symlinks (which windows despises)
tar ${tar_extra_args} -xzf ${silo_tarball} -C ${source_dir} \
--exclude="Silo-${silo_version}/config-site/*" \
--exclude="Silo-${silo_version}/README.md"
# apply silo patches
cd ${silo_src_dir}
patch -p1 < ${script_dir}/2024_07_25_silo_4_11_cmake_fix.patch

# windows specifc patch
if [[ "$build_windows" == "ON" ]]; then
patch -p1 < ${script_dir}/2024_07_29_silo-pr389-win32-bugfix.patch
fi

cd ${root_dir}
--exclude="Silo-${silo_version}/LICENSE.md" \
--exclude="Silo-${silo_version}/silo_objects.png"
fi


Expand Down Expand Up @@ -471,6 +462,11 @@ if [ ! -d ${h5zzfp_src_dir} ]; then
echo "**** Downloading ${h5zzfp_tarball}"
curl -L "https://github.com/LLNL/H5Z-ZFP/archive/refs/tags/v${h5zzfp_version}.tar.gz" -o ${h5zzfp_tarball}
tar ${tar_extra_args} -xzf ${h5zzfp_tarball} -C ${source_dir}

# apply patches
cd ${h5zzfp_src_dir}
patch -p1 < ${script_dir}/2025_12_08_h5zzfp-hdf5-cmake-fix.patch
cd ${root_dir}
fi

echo "**** Configuring H5Z-ZFP ${h5zzfp_version}"
Expand Down
12 changes: 12 additions & 0 deletions scripts/uberenv_configs/packages/hdf5/find_package_zlib.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake
index dbd68fd110..3d06b13d57 100644
--- a/CMakeFilters.cmake
+++ b/CMakeFilters.cmake
@@ -70,7 +70,6 @@ option (HDF5_ENABLE_Z_LIB_SUPPORT "Enable Zlib Filters" ON)
if (HDF5_ENABLE_Z_LIB_SUPPORT)
if (NOT H5_ZLIB_HEADER)
if (NOT ZLIB_USE_EXTERNAL)
- find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared)
if (NOT ZLIB_FOUND)
find_package (ZLIB) # Legacy find
endif ()
24 changes: 24 additions & 0 deletions scripts/uberenv_configs/packages/hdf5/fortran-kinds-2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
From 598df49b738fd99df9f2671e4e967fd9c33ae8a9 Mon Sep 17 00:00:00 2001
From: Seth R Johnson <[email protected]>
Date: Wed, 16 Feb 2022 20:38:03 -0500
Subject: [PATCH] Close file to work around GCC11.2/macOS12 bug

---
m4/aclocal_fc.f90 | 1 +
1 file changed, 1 insertion(+)

diff --git a/m4/aclocal_fc.f90 b/m4/aclocal_fc.f90
index e9a11c0ab5..bfda49aa40 100644
--- a/m4/aclocal_fc.f90
+++ b/m4/aclocal_fc.f90
@@ -151,6 +151,7 @@ PROGRAM FC_AVAIL_KINDS
WRITE(8,'(I0)') max_decimal_prec
WRITE(8,'(I0)') num_ikinds
WRITE(8,'(I0)') num_rkinds
+ CLOSE(8)
END PROGRAM FC_AVAIL_KINDS
!---- END ----- Determine the available KINDs for REALs and INTEGERs

--
2.32.0

20 changes: 20 additions & 0 deletions scripts/uberenv_configs/packages/hdf5/fortran-kinds.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
--- a/config/cmake/HDF5UseFortran.cmake
+++ a/config/cmake/HDF5UseFortran.cmake
@@ -181,6 +181,7 @@
WRITE(8,'(I0)') max_decimal_prec
WRITE(8,'(I0)') num_ikinds
WRITE(8,'(I0)') num_rkinds
+ CLOSE(8)
END PROGRAM FC_AVAIL_KINDS
"
)
--- a/m4/aclocal_fc.f90
+++ b/m4/aclocal_fc.f90
@@ -151,6 +151,7 @@
WRITE(8,'(I0)') max_decimal_prec
WRITE(8,'(I0)') num_ikinds
WRITE(8,'(I0)') num_rkinds
+ CLOSE(8)
END PROGRAM FC_AVAIL_KINDS
!---- END ----- Determine the available KINDs for REALs and INTEGERs

Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/fortran/src/H5f90global.F90 b/fortran/src/H5f90global.F90
index dd2b171..629418a 100644
--- a/fortran/src/H5f90global.F90
+++ b/fortran/src/H5f90global.F90
@@ -142,10 +142,7 @@ MODULE H5GLOBAL

INTEGER(HID_T), DIMENSION(PREDEF_TYPES_LEN) :: predef_types
EQUIVALENCE (predef_types(1), H5T_NATIVE_INTEGER_KIND(1))
- EQUIVALENCE (predef_types(2), H5T_NATIVE_INTEGER_KIND(2))
- EQUIVALENCE (predef_types(3), H5T_NATIVE_INTEGER_KIND(3))
- EQUIVALENCE (predef_types(4), H5T_NATIVE_INTEGER_KIND(4))
- EQUIVALENCE (predef_types(5), H5T_NATIVE_INTEGER_KIND(5))
+ ! EQUIVALENCE predef_types(2:5) are unnecessary and violate the standard
EQUIVALENCE (predef_types(6), H5T_NATIVE_INTEGER)
EQUIVALENCE (predef_types(7), H5T_NATIVE_REAL)
EQUIVALENCE (predef_types(8), H5T_NATIVE_DOUBLE)
11 changes: 11 additions & 0 deletions scripts/uberenv_configs/packages/hdf5/h5public-skip-mpicxx.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/src/H5public.h 2019-08-28 18:51:39.393781356 -0400
+++ b/src/H5public.h 2019-08-28 20:59:50.315181711 -0400
@@ -57,6 +57,8 @@
# include <stddef.h>
#endif
#ifdef H5_HAVE_PARALLEL
+# define MPICH_SKIP_MPICXX 1
+# define OMPI_SKIP_MPICXX 1
# include <mpi.h>
#ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */
# include <mpio.h>
12 changes: 12 additions & 0 deletions scripts/uberenv_configs/packages/hdf5/hdf5_1.8_gcc10.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
diff -Naur hdf5.orig/fortran/test/tH5T_F03.f90 hdf5/fortran/test/tH5T_F03.f90
--- hdf5.orig/fortran/test/tH5T_F03.f90 2021-01-19 13:23:11.298000000 +0100
+++ hdf5/fortran/test/tH5T_F03.f90 2021-01-19 13:19:17.637000000 +0100
@@ -1541,7 +1541,7 @@
INTEGER :: A, B, C, D
INTEGER :: Aw, Bw, Cw, Dw
INTEGER :: i, j
- INTEGER, PARAMETER :: hex = Z'00000003'
+ INTEGER, PARAMETER :: hex = INT(Z'00000003')
TYPE(C_PTR) :: f_ptr
INTEGER :: error ! Error flag
!
Original file line number Diff line number Diff line change
@@ -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)
Loading