diff --git a/CVE-2018-13867.patch b/CVE-2018-13867.patch deleted file mode 100644 index 26fe5a29a905d42f811488886a9150f72b092d14..0000000000000000000000000000000000000000 --- a/CVE-2018-13867.patch +++ /dev/null @@ -1,96 +0,0 @@ -From: Egbert Eich -Date: Mon Oct 10 08:43:44 2022 +0200 -Subject: Validate location (offset) of the accumulated metadata when comparing -Patch-mainline: Not yet -Git-repo: ssh://eich@192.168.122.1:/home/eich/sources/HPC/hdf5 -Git-commit: 2cf9918ae66f023a2b6d44eb591ee2ac479a6e53 -References: - -Initially, the accumulated metadata location is initialized to HADDR_UNDEF -- the highest available address. Bogus input files may provide a location -or size matching this value. Comparing this address against such bogus -values may provide false positives. This make sure, the value has been -initilized or fail the comparison early and let other parts of the -code deal with the bogus address/size. -Note: To avoid unnecessary checks, we have assumed that if the 'dirty' -member in the same structure is true the location is valid. - -This fixes CVE-2018-13867. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - src/H5Faccum.c | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) -diff --git a/src/H5Faccum.c b/src/H5Faccum.c -index aed5812e63..73bd4b811e 100644 ---- a/src/H5Faccum.c -+++ b/src/H5Faccum.c -@@ -48,6 +48,7 @@ - #define H5F_ACCUM_THROTTLE 8 - #define H5F_ACCUM_THRESHOLD 2048 - #define H5F_ACCUM_MAX_SIZE (1024 * 1024) /* Max. accum. buf size (max. I/Os will be 1/2 this size) */ -+#define H5F_LOC_VALID(x) (x != HADDR_UNDEF) - - /******************/ - /* Local Typedefs */ -@@ -126,8 +127,9 @@ H5F__accum_read(H5F_shared_t *f_sh, H5FD_mem_t map_type, haddr_t addr, size_t si - HDassert(!accum->buf || (accum->alloc_size >= accum->size)); - - /* Current read adjoins or overlaps with metadata accumulator */ -- if (H5F_addr_overlap(addr, size, accum->loc, accum->size) || ((addr + size) == accum->loc) || -- (accum->loc + accum->size) == addr) { -+ if (H5F_LOC_VALID(accum->loc) && -+ (H5F_addr_overlap(addr, size, accum->loc, accum->size) || ((addr + size) == accum->loc) || -+ (accum->loc + accum->size) == addr)) { - size_t amount_before; /* Amount to read before current accumulator */ - haddr_t new_addr; /* New address of the accumulator buffer */ - size_t new_size; /* New size of the accumulator buffer */ -@@ -439,7 +441,8 @@ H5F__accum_write(H5F_shared_t *f_sh, H5FD_mem_t map_type, haddr_t addr, size_t s - /* Check if there is already metadata in the accumulator */ - if (accum->size > 0) { - /* Check if the new metadata adjoins the beginning of the current accumulator */ -- if ((addr + size) == accum->loc) { -+ if (H5F_LOC_VALID(accum->loc) -+ && (addr + size) == accum->loc) { - /* Check if we need to adjust accumulator size */ - if (H5F__accum_adjust(accum, file, H5F_ACCUM_PREPEND, size) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTRESIZE, FAIL, "can't adjust metadata accumulator") -@@ -464,7 +467,8 @@ H5F__accum_write(H5F_shared_t *f_sh, H5FD_mem_t map_type, haddr_t addr, size_t s - accum->dirty_off = 0; - } /* end if */ - /* Check if the new metadata adjoins the end of the current accumulator */ -- else if (addr == (accum->loc + accum->size)) { -+ else if (H5F_LOC_VALID(accum->loc) && -+ addr == (accum->loc + accum->size)) { - /* Check if we need to adjust accumulator size */ - if (H5F__accum_adjust(accum, file, H5F_ACCUM_APPEND, size) < 0) - HGOTO_ERROR(H5E_IO, H5E_CANTRESIZE, FAIL, "can't adjust metadata accumulator") -@@ -485,7 +489,8 @@ H5F__accum_write(H5F_shared_t *f_sh, H5FD_mem_t map_type, haddr_t addr, size_t s - accum->size += size; - } /* end if */ - /* Check if the piece of metadata being written overlaps the metadata accumulator */ -- else if (H5F_addr_overlap(addr, size, accum->loc, accum->size)) { -+ else if (H5F_LOC_VALID(accum->loc) && -+ H5F_addr_overlap(addr, size, accum->loc, accum->size)) { - size_t add_size; /* New size of the accumulator buffer */ - - /* Check if the new metadata is entirely within the current accumulator */ -@@ -745,7 +750,8 @@ H5F__accum_write(H5F_shared_t *f_sh, H5FD_mem_t map_type, haddr_t addr, size_t s - /* (Note that this could be improved by updating the accumulator - * with [some of] the information just read in. -QAK) - */ -- if (H5F_addr_overlap(addr, size, accum->loc, accum->size)) { -+ if (H5F_LOC_VALID(accum->loc) && -+ H5F_addr_overlap(addr, size, accum->loc, accum->size)) { - /* Check for write starting before beginning of accumulator */ - if (H5F_addr_le(addr, accum->loc)) { - /* Check for write ending within accumulator */ -@@ -868,6 +874,7 @@ H5F__accum_free(H5F_shared_t *f_sh, H5FD_mem_t H5_ATTR_UNUSED type, haddr_t addr - - /* Adjust the metadata accumulator to remove the freed block, if it overlaps */ - if ((f_sh->feature_flags & H5FD_FEAT_ACCUMULATE_METADATA) && -+ H5F_LOC_VALID(accum->loc) && - H5F_addr_overlap(addr, size, accum->loc, accum->size)) { - size_t overlap_size; /* Size of overlap with accumulator */ - diff --git a/CVE-2018-14031.patch b/CVE-2018-14031.patch deleted file mode 100644 index be2803832c7cbee27628c2163d0bd5bb06b33440..0000000000000000000000000000000000000000 --- a/CVE-2018-14031.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Egbert Eich -Date: Wed Sep 28 14:54:58 2022 +0200 -Subject: H5O_dtype_decode_helper: Parent of enum needs to have same size as enum itself -Patch-mainline: Not yet -Git-repo: ssh://eich@192.168.122.1:/home/eich/sources/HPC/hdf5 -Git-commit: d39a27113ef75058f236b0606a74b4af5767c4e7 -References: - -The size of the enumeration values is determined by the size of the parent. -Functions accessing the enumeration values use the size of the enumartion -to determine the size of each element and how much data to copy. Thus the -size of the enumeration and its parent need to match. -Check here to avoid unpleasant surprises later. - -This fixes CVE-2018-14031. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - src/H5Odtype.c | 3 +++ - 1 file changed, 3 insertions(+) -diff --git a/src/H5Odtype.c b/src/H5Odtype.c -index 9af79f4e9a..dc2b904362 100644 ---- a/src/H5Odtype.c -+++ b/src/H5Odtype.c -@@ -472,6 +472,9 @@ H5O__dtype_decode_helper(unsigned *ioflags /*in,out*/, const uint8_t **pp, H5T_t - if (H5O__dtype_decode_helper(ioflags, pp, dt->shared->parent) < 0) - HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "unable to decode parent datatype") - -+ if (dt->shared->parent->shared->size != dt->shared->size) -+ HGOTO_ERROR(H5E_DATATYPE, H5E_CANTDECODE, FAIL, "ENUM size does not match parent") -+ - /* Check if the parent of this enum has a version greater than the - * enum itself. */ - H5O_DTYPE_CHECK_VERSION(dt, version, dt->shared->parent->shared->version, ioflags, "enum", FAIL) diff --git a/CVE-2018-16438.patch b/CVE-2018-16438.patch deleted file mode 100644 index 85504b6854fb0f1633f01e3431f4d2dcb8688e51..0000000000000000000000000000000000000000 --- a/CVE-2018-16438.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Egbert Eich -Date: Sun Oct 9 08:07:23 2022 +0200 -Subject: Make sure info block for external links has at least 3 bytes -Patch-mainline: Not yet -Git-repo: ssh://eich@192.168.122.1:/home/eich/sources/HPC/hdf5 -Git-commit: 082bfe392b04b1137da9eabd1ecac76c212ab385 -References: - -According to the specification, the information block for external links -contains 1 byte of version/flag information and two 0 terminated strings -for the object linked to and the full path. -Although not very useful, the minimum string length for each would be one -byte. - -This fixes CVE-2018-16438. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - src/H5Olink.c | 2 ++ - 1 file changed, 2 insertions(+) -diff --git a/src/H5Olink.c b/src/H5Olink.c -index 51c44a36b0..074744b022 100644 ---- a/src/H5Olink.c -+++ b/src/H5Olink.c -@@ -241,6 +241,8 @@ H5O__link_decode(H5F_t *f, H5O_t H5_ATTR_UNUSED *open_oh, unsigned H5_ATTR_UNUSE - /* A UD link. Get the user-supplied data */ - UINT16DECODE(p, len) - lnk->u.ud.size = len; -+ if (lnk->type == H5L_TYPE_EXTERNAL && len < 3) -+ HGOTO_ERROR(H5E_OHDR, H5E_OVERFLOW, NULL, "external link information lenght < 3") - if (len > 0) { - /* Make sure that length doesn't exceed buffer size, which could - occur when the file is corrupted */ diff --git a/CVE-2019-8396.patch b/CVE-2019-8396.patch deleted file mode 100644 index 8cba0d6cf07ac2d9372ba3e556a98f610351529f..0000000000000000000000000000000000000000 --- a/CVE-2019-8396.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 8e5d36c7465699671b89023f752a378f5ee8b7cb Mon Sep 17 00:00:00 2001 -From: starlet-dx <15929766099@163.com> -Date: Tue, 28 Mar 2023 17:31:29 +0800 -Subject: [PATCH 1/1] H5O__pline_decode() Make more resilient to out-of-bounds read (#2210) - -Malformed hdf5 files may have trunkated content which does not match the expected size. When this function attempts to decode these it may read past the end of the allocated space leading to heap overflows as bounds checking is incomplete. -Make sure each element is within bounds before reading. - -This fixes CVE-2019-8396 / HDFFV-10712 / github bug #2209. - -Signed-off-by: Egbert Eich - -Signed-off-by: Egbert Eich ---- - src/H5Opline.c | 17 +++++++++++++++-- - src/H5private.h | 3 +++ - 2 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/src/H5Opline.c b/src/H5Opline.c -index 4b76da9..eacf81a 100644 ---- a/src/H5Opline.c -+++ b/src/H5Opline.c -@@ -110,6 +110,7 @@ H5FL_DEFINE(H5O_pline_t); - * - *------------------------------------------------------------------------- - */ -+ - static void * - H5O__pline_decode(H5F_t H5_ATTR_UNUSED *f, H5O_t H5_ATTR_UNUSED *open_oh, unsigned H5_ATTR_UNUSED mesg_flags, - unsigned H5_ATTR_UNUSED *ioflags, size_t p_size, const uint8_t *p) -@@ -131,6 +132,9 @@ H5O__pline_decode(H5F_t H5_ATTR_UNUSED *f, H5O_t H5_ATTR_UNUSED *open_oh, unsign - HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") - - /* Version */ -+ if (p + 4 - 1 > p_end) /* 4 byte is minimum for all versions */ -+ HGOTO_ERROR(H5E_OHDR, H5E_NOSPACE, NULL, "ran off the end of the buffer: current p = %p, p_end = %p", -+ p + 4, p_end) - pline->version = *p++; - if (pline->version < H5O_PLINE_VERSION_1 || pline->version > H5O_PLINE_VERSION_LATEST) - HGOTO_ERROR(H5E_PLINE, H5E_CANTLOAD, NULL, "bad version number for filter pipeline message") -@@ -159,6 +163,9 @@ H5O__pline_decode(H5F_t H5_ATTR_UNUSED *f, H5O_t H5_ATTR_UNUSED *open_oh, unsign - /* Decode filters */ - for (i = 0, filter = &pline->filter[0]; i < pline->nused; i++, filter++) { - /* Filter ID */ -+ if (p + 6 - 1 > p_end) /* 6 bytes minimum */ -+ HGOTO_ERROR(H5E_OHDR, H5E_NOSPACE, NULL, -+ "ran off the end of the buffer: current p = %p, p_end = %p", p + 6, p_end) - UINT16DECODE(p, filter->id); - - /* Length of filter name */ -@@ -168,6 +175,9 @@ H5O__pline_decode(H5F_t H5_ATTR_UNUSED *f, H5O_t H5_ATTR_UNUSED *open_oh, unsign - UINT16DECODE(p, name_length); - if (pline->version == H5O_PLINE_VERSION_1 && name_length % 8) - HGOTO_ERROR(H5E_PLINE, H5E_CANTLOAD, NULL, "filter name length is not a multiple of eight") -+ if (p + 4 - 1 > p_end) /* with name_length 4 bytes to go */ -+ HGOTO_ERROR(H5E_OHDR, H5E_NOSPACE, NULL, -+ "ran off the end of the buffer: current p = %p, p_end = %p", p + 4, p_end) - } /* end if */ - - /* Filter flags */ -@@ -179,9 +189,12 @@ H5O__pline_decode(H5F_t H5_ATTR_UNUSED *f, H5O_t H5_ATTR_UNUSED *open_oh, unsign - /* Filter name, if there is one */ - if (name_length) { - size_t actual_name_length; /* Actual length of name */ -- -+ size_t len = (size_t)(p_end - p + 1); - /* Determine actual name length (without padding, but with null terminator) */ -- actual_name_length = HDstrlen((const char *)p) + 1; -+ actual_name_length = HDstrnlen((const char *)p, len); -+ if (actual_name_length == len) -+ HGOTO_ERROR(H5E_OHDR, H5E_NOSPACE, NULL, "filter name not null terminated") -+ actual_name_length += 1; /* include \0 byte */ - HDassert(actual_name_length <= name_length); - - /* Allocate space for the filter name, or use the internal buffer */ -diff --git a/src/H5private.h b/src/H5private.h -index 56ded14..58ccfef 100644 ---- a/src/H5private.h -+++ b/src/H5private.h -@@ -1444,6 +1444,9 @@ H5_DLL void HDsrand(unsigned int seed); - #ifndef HDstrlen - #define HDstrlen(S) strlen(S) - #endif /* HDstrlen */ -+#ifndef HDstrnlen -+#define HDstrnlen(S, L) strnlen(S, L) -+#endif - #ifndef HDstrncat - #define HDstrncat(X, Y, Z) strncat(X, Y, Z) - #endif /* HDstrncat */ --- -2.30.0 - diff --git a/CVE-2020-10812.patch b/CVE-2020-10812.patch deleted file mode 100644 index f3ad1fe94c79c8b51ceb81e10dab5603890d66c2..0000000000000000000000000000000000000000 --- a/CVE-2020-10812.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Egbert Eich -Date: Wed Oct 5 09:44:02 2022 +0200 -Subject: Hot fix for CVE-2020-10812 -Patch-mainline: Not yet -Git-repo: ssh://eich@192.168.122.1:/home/eich/sources/HPC/hdf5 -Git-commit: 2465fc41d208d57eb0d7d025286a81664148fbaf -References: - -CVE-2020-10812 unveils a more fundamental design flaw in H5F__dest(): -this function returns FAIL if one of multiple operations fail (in this -case H5AC_prep_for_file_close()) while it still proceeds to prepare the -close operation, free the 'shared' member in struct H5F_t and ulimately -deallocate the structure itself. -When H5F__dest() signals back FAIL to the caller, the caller itself -(H5F_try_close() in this case) will fail. This failure is signalled -up the stack, thus the file will not be considered closed and another -attempt will be made to close it - latest in the exit handler. -The next attempt to close will however need the already deallocated -H5F_t structure and the H5T_shared_t structure in its 'shared' member, -however. -This fix papers over the failure of H5AC_prep_for_file_close() by not -changing the return status of H5F__dest() to fail. There are numerous -other opportunities where this will happen. -This may call for a more fundamental solution. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - src/H5Fint.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/src/H5Fint.c b/src/H5Fint.c -index 9b5613972f..01faf33495 100644 ---- a/src/H5Fint.c -+++ b/src/H5Fint.c -@@ -1413,7 +1413,7 @@ H5F__dest(H5F_t *f, hbool_t flush) - */ - if (H5AC_prep_for_file_close(f) < 0) - /* Push error, but keep going */ -- HDONE_ERROR(H5E_FILE, H5E_CANTFLUSH, FAIL, "metadata cache prep for close failed") -+ HDONE_ERROR(H5E_FILE, H5E_CANTFLUSH, ret_value, "metadata cache prep for close failed") - - /* Flush at this point since the file will be closed (phase 2). - * Only try to flush the file if it was opened with write access, and if diff --git a/CVE-2021-37501.patch b/CVE-2021-37501.patch deleted file mode 100644 index 11ac938a14b46bc765d8d9c1701cabee861eccf6..0000000000000000000000000000000000000000 --- a/CVE-2021-37501.patch +++ /dev/null @@ -1,66 +0,0 @@ -From: Egbert Eich -Date: Sat Feb 11 13:54:17 2023 +0100 -Subject: Check for overflow when calculating on-disk attribute data size (#2459) -Patch-mainline: Not yet -Git-repo: https://github.com/HDFGroup/hdf5 -Git-commit: 0d026daa13a81be72495872f651c036fdc84ae5e -References: - -A bogus hdf5 file may contain dataspace messages with sizes -which lead to the on-disk data sizes to exceed what is addressable. -When calculating the size, make sure, the multiplication does not -overflow. -The test case was crafted in a way that the overflow caused the -size to be 0. - -This fixes CVE-2021-37501 / Bug #2458. - -Signed-off-by: Egbert Eich -Signed-off-by: Egbert Eich ---- - src/H5Oattr.c | 3 +++ - src/H5private.h | 18 ++++++++++++++++++ - 2 files changed, 21 insertions(+) -diff --git a/src/H5Oattr.c b/src/H5Oattr.c -index 4dee7aa187..3ef0b99aa4 100644 ---- a/src/H5Oattr.c -+++ b/src/H5Oattr.c -@@ -235,6 +235,9 @@ H5O_attr_decode(H5F_t *f, H5O_t *open_oh, unsigned H5_ATTR_UNUSED mesg_flags, un - - /* Compute the size of the data */ - H5_CHECKED_ASSIGN(attr->shared->data_size, size_t, ds_size * (hsize_t)dt_size, hsize_t); -+ H5_CHECK_MUL_OVERFLOW(attr->shared->data_size, ds_size, dt_size, -+ HGOTO_ERROR(H5E_RESOURCE, H5E_OVERFLOW, NULL, -+ "data size exceeds addressable range")) - - /* Go get the data */ - if (attr->shared->data_size) { -diff --git a/src/H5private.h b/src/H5private.h -index 931d7b9046..a115aee1a4 100644 ---- a/src/H5private.h -+++ b/src/H5private.h -@@ -1605,6 +1605,24 @@ H5_DLL int HDvasprintf(char **bufp, const char *fmt, va_list _ap); - #define H5_CHECK_OVERFLOW(var, vartype, casttype) - #endif /* NDEBUG */ - -+/* -+ * A macro for checking whether a multiplication has overflown -+ * r is assumed to be the result of a prior multiplication of a and b -+ */ -+#define H5_CHECK_MUL_OVERFLOW(r, a, b, err) \ -+ { \ -+ bool mul_overflow = false; \ -+ if (r != 0) { \ -+ if (r / a != b) \ -+ mul_overflow = true; \ -+ } else { \ -+ if (a != 0 && b != 0) \ -+ mul_overflow = true; \ -+ } \ -+ if (mul_overflow) \ -+ err \ -+ } -+ - /* - * A macro for detecting over/under-flow when assigning between types - */ diff --git a/add-option-to-build-HL-tools.patch b/add-option-to-build-HL-tools.patch deleted file mode 100644 index 77c800ecce920e66e83685151d747dcb67787e33..0000000000000000000000000000000000000000 --- a/add-option-to-build-HL-tools.patch +++ /dev/null @@ -1,149 +0,0 @@ -From c9c85080e9c9ba2f98cd7bf0ca69775529e280e4 Mon Sep 17 00:00:00 2001 -From: Allen Byrne <50328838+byrnHDF@users.noreply.github.com> -Date: Fri, 17 Sep 2021 11:01:26 -0500 -Subject: [PATCH] Merge HDFFV-11266 - add option to build HL tools #1018 - (#1020) - -Origin: https://github.com/HDFGroup/hdf5/commit/c9c85080e9c9ba2f98cd7bf0ca69775529e280e4 - ---- - config/cmake/hdf5-config.cmake.in | 1 + - config/cmake/libhdf5.settings.cmake.in | 1 + - configure.ac | 20 ++++++++++++++++++++ - hl/CMakeLists.txt | 12 ++++++++++-- - hl/Makefile.am | 4 ++++ - release_docs/INSTALL_CMake.txt | 1 + - release_docs/RELEASE.txt | 8 ++++++++ - 7 files changed, 45 insertions(+), 2 deletions(-) - -diff --git a/config/cmake/hdf5-config.cmake.in b/config/cmake/hdf5-config.cmake.in -index 4d02c9c5ff2..8faa2fe2ba2 100644 ---- a/config/cmake/hdf5-config.cmake.in -+++ b/config/cmake/hdf5-config.cmake.in -@@ -38,6 +38,7 @@ set (${HDF5_PACKAGE_NAME}_BUILD_CPP_LIB @HDF5_BUILD_CPP_LIB@) - set (${HDF5_PACKAGE_NAME}_BUILD_JAVA @HDF5_BUILD_JAVA@) - set (${HDF5_PACKAGE_NAME}_BUILD_TOOLS @HDF5_BUILD_TOOLS@) - set (${HDF5_PACKAGE_NAME}_BUILD_HL_LIB @HDF5_BUILD_HL_LIB@) -+set (${HDF5_PACKAGE_NAME}_BUILD_HL_TOOLS @HDF5_BUILD_HL_TOOLS@) - set (${HDF5_PACKAGE_NAME}_ENABLE_THREADSAFE @HDF5_ENABLE_THREADSAFE@) - set (${HDF5_PACKAGE_NAME}_ENABLE_PLUGIN_SUPPORT @HDF5_ENABLE_PLUGIN_SUPPORT@) - set (${HDF5_PACKAGE_NAME}_ENABLE_Z_LIB_SUPPORT @HDF5_ENABLE_Z_LIB_SUPPORT@) -diff --git a/config/cmake/libhdf5.settings.cmake.in b/config/cmake/libhdf5.settings.cmake.in -index dd345b4cd5c..e5b150409c5 100644 ---- a/config/cmake/libhdf5.settings.cmake.in -+++ b/config/cmake/libhdf5.settings.cmake.in -@@ -70,6 +70,7 @@ Parallel Filtered Dataset Writes: @PARALLEL_FILTERED_WRITES@ - High-level library: @HDF5_BUILD_HL_LIB@ - Build HDF5 Tests: @BUILD_TESTING@ - Build HDF5 Tools: @HDF5_BUILD_TOOLS@ -+ Build High-level HDF5 Tools: @HDF5_BUILD_HL_TOOLS@ - Threadsafety: @HDF5_ENABLE_THREADSAFE@ (recursive RW locks: @HDF5_USE_RECURSIVE_RW_LOCKS@) - Default API mapping: @DEFAULT_API_VERSION@ - With deprecated public symbols: @HDF5_ENABLE_DEPRECATED_SYMBOLS@ -diff --git a/configure.ac b/configure.ac -index df0cec59fe5..7b4c3f56647 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -806,6 +806,7 @@ AC_LANG_POP(C++) - ## This needs to be exposed for the library info file even if the HL - ## library is disabled. - AC_SUBST([HDF5_HL]) -+AC_SUBST([HDF5_HL_TOOLS]) - - ## The high-level library is enabled unless the build mode is clean. - if test "X-$BUILD_MODE" = "X-clean" ; then -@@ -822,6 +823,9 @@ HL="" - ## Fortran high-level library - AC_SUBST(HL_FOR) - HL_FOR="" -+## Tools high-level library -+AC_SUBST(HL_TOOLS) -+HL_TOOLS="" - - AC_MSG_CHECKING([if the high-level library is enabled]) - AC_ARG_ENABLE([hl], -@@ -840,6 +844,21 @@ else - AC_MSG_RESULT([no]) - fi - -+AC_MSG_CHECKING([if the high-level tools are enabled]) -+AC_ARG_ENABLE([hltools], -+ [AS_HELP_STRING([--enable-hltools], -+ [Enable the high-level tools. -+ [default=yes)] -+ ])], -+ [HDF5_HL_TOOLS=$enableval]) -+ -+if test "X${HDF5_HL}" = "Xyes" -a "X-$HDF5_HL_TOOLS" = "X-yes"; then -+ AC_MSG_RESULT([yes]) -+ HL_TOOLS="tools" -+else -+ AC_MSG_RESULT([no]) -+fi -+ - - ## ---------------------------------------------------------------------- - ## Check which archiving tool to use. This needs to be done before -@@ -3992,6 +4011,7 @@ AM_CONDITIONAL([BUILD_HDF5_HL_CONDITIONAL], [test "X$HDF5_HL" = "Xyes"]) - AM_CONDITIONAL([BUILD_TESTS_CONDITIONAL], [test "X$HDF5_TESTS" = "Xyes"]) - AM_CONDITIONAL([BUILD_TESTS_PARALLEL_CONDITIONAL], [test -n "$TESTPARALLEL"]) - AM_CONDITIONAL([BUILD_TOOLS_CONDITIONAL], [test "X$HDF5_TOOLS" = "Xyes"]) -+AM_CONDITIONAL([BUILD_TOOLS_HL_CONDITIONAL], [test "X$HDF5_HL_TOOLS" = "Xyes"]) - AM_CONDITIONAL([BUILD_DOXYGEN_CONDITIONAL], [test "X$HDF5_DOXYGEN" = "Xyes"]) - - ## ---------------------------------------------------------------------- -diff --git a/hl/CMakeLists.txt b/hl/CMakeLists.txt -index 083c60eb39e..5061c6c5a47 100644 ---- a/hl/CMakeLists.txt -+++ b/hl/CMakeLists.txt -@@ -7,9 +7,17 @@ project (HDF5_HL C) - - add_subdirectory (src) - --#-- Build the High level Tools -+# Build HDF5 Tools - if (HDF5_BUILD_TOOLS) -- add_subdirectory (tools) -+ #----------------------------------------------------------------------------- -+ #-- Option to build the High level Tools -+ #----------------------------------------------------------------------------- -+ if (EXISTS "${HDF5_HL_SOURCE_DIR}/tools" AND IS_DIRECTORY "${HDF5_HL_SOURCE_DIR}/tools") -+ option (HDF5_BUILD_HL_TOOLS "Build HDF5 HL Tools" ON) -+ if (HDF5_BUILD_HL_TOOLS) -+ add_subdirectory (tools) -+ endif () -+ endif () - endif () - - #-- Add High Level Examples -diff --git a/hl/Makefile.am b/hl/Makefile.am -index 80ef66a2a2c..ad035fe5073 100644 ---- a/hl/Makefile.am -+++ b/hl/Makefile.am -@@ -37,10 +37,14 @@ else - TEST_DIR = - endif - if BUILD_TOOLS_CONDITIONAL -+if BUILD_TOOLS_HL_CONDITIONAL - TOOLS_DIR = tools - else - TOOLS_DIR = - endif -+else -+ TOOLS_DIR = -+endif - - ## Don't recurse into any subdirectories if HDF5 is not configured to - ## use the HL library -diff --git a/release_docs/INSTALL_CMake.txt b/release_docs/INSTALL_CMake.txt -index 84044c7ee7e..adceb702aea 100644 ---- a/release_docs/INSTALL_CMake.txt -+++ b/release_docs/INSTALL_CMake.txt -@@ -740,6 +740,7 @@ HDF5_BUILD_FORTRAN "Build FORTRAN support" OFF - HDF5_BUILD_JAVA "Build JAVA support" OFF - HDF5_BUILD_HL_LIB "Build HIGH Level HDF5 Library" ON - HDF5_BUILD_TOOLS "Build HDF5 Tools" ON -+HDF5_BUILD_HL_TOOLS "Build HIGH Level HDF5 Tools" ON - - ---------------- HDF5 Advanced Options --------------------- - ONLY_SHARED_LIBS "Only Build Shared Libraries" OFF diff --git a/hdf5-1.12.1.tar.bz2 b/hdf5-1.12.1.tar.bz2 deleted file mode 100644 index 2c3ea6d95ea967ba90b8ee2a9979b67b8bcdf1e9..0000000000000000000000000000000000000000 Binary files a/hdf5-1.12.1.tar.bz2 and /dev/null differ diff --git a/hdf5-1.14.5.tar.gz b/hdf5-1.14.5.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a7939a72e670c0e192e1c3e3ce39f16defe5f43 Binary files /dev/null and b/hdf5-1.14.5.tar.gz differ diff --git a/hdf5-LD_LIBRARY_PATH.patch b/hdf5-LD_LIBRARY_PATH.patch deleted file mode 100644 index f1852e7cb17a6f2a885f31faa21aea31fb8d8fb5..0000000000000000000000000000000000000000 --- a/hdf5-LD_LIBRARY_PATH.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- hdf5-1.12.0/src/Makefile.am~ 2020-02-29 00:29:58.000000000 +0100 -+++ hdf5-1.12.0/src/Makefile.am 2021-02-26 16:10:03.612252484 +0100 -@@ -156,8 +156,6 @@ - # Remove the generated .c file if errors occur unless HDF5_Make_Ignore - # is set to ignore the error. - H5Tinit.c: H5detect$(EXEEXT) -- LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ -- sed -e 's/-L/:/g' -e 's/ //g'`" \ - $(RUNSERIAL) ./H5detect$(EXEEXT) $@ || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - ($(RM) $@ ; exit 1) -@@ -168,8 +166,6 @@ - # Remove the generated .c file if errors occur unless HDF5_Make_Ignore - # is set to ignore the error. - H5lib_settings.c: H5make_libsettings$(EXEEXT) libhdf5.settings -- LD_LIBRARY_PATH="$$LD_LIBRARY_PATH`echo $(LDFLAGS) | \ -- sed -e 's/-L/:/g' -e 's/ //g'`" \ - $(RUNSERIAL) ./H5make_libsettings$(EXEEXT) $@ || \ - (test $$HDF5_Make_Ignore && echo "*** Error ignored") || \ - ($(RM) $@ ; exit 1) diff --git a/hdf5-build.patch b/hdf5-build.patch deleted file mode 100644 index cc08c02cd00b9d722d4af47ac08f459654d49fc0..0000000000000000000000000000000000000000 --- a/hdf5-build.patch +++ /dev/null @@ -1,145 +0,0 @@ -diff --git a/java/examples/datasets/JavaDatasetExample.sh.in b/java/examples/datasets/JavaDatasetExample.sh.in -index f29739a..fc9cddb 100644 ---- a/java/examples/datasets/JavaDatasetExample.sh.in -+++ b/java/examples/datasets/JavaDatasetExample.sh.in -@@ -39,7 +39,7 @@ HDFLIB_HOME="$top_srcdir/java/lib" - BLDDIR="." - BLDLIBDIR="$BLDDIR/testlibs" - HDFTEST_HOME="$top_srcdir/java/examples/datasets" --JARFILE=jar@PACKAGE_TARNAME@-@PACKAGE_VERSION@.jar -+JARFILE=@PACKAGE_TARNAME@.jar - TESTJARFILE=jar@PACKAGE_TARNAME@datasets.jar - test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR - -diff --git a/java/examples/datasets/Makefile.am b/java/examples/datasets/Makefile.am -index 41a914b..195201a 100644 ---- a/java/examples/datasets/Makefile.am -+++ b/java/examples/datasets/Makefile.am -@@ -26,7 +26,7 @@ classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - - pkgpath = examples/datasets --hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -+hdfjarfile = $(PACKAGE_TARNAME).jar - CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH - - jarfile = jar$(PACKAGE_TARNAME)datasets.jar -diff --git a/java/examples/datatypes/JavaDatatypeExample.sh.in b/java/examples/datatypes/JavaDatatypeExample.sh.in -index e26d8c0..f6a9d87 100644 ---- a/java/examples/datatypes/JavaDatatypeExample.sh.in -+++ b/java/examples/datatypes/JavaDatatypeExample.sh.in -@@ -36,7 +36,7 @@ HDFLIB_HOME="$top_srcdir/java/lib" - BLDDIR="." - BLDLIBDIR="$BLDDIR/testlibs" - HDFTEST_HOME="$top_srcdir/java/examples/datatypes" --JARFILE=jar@PACKAGE_TARNAME@-@PACKAGE_VERSION@.jar -+JARFILE=@PACKAGE_TARNAME@.jar - TESTJARFILE=jar@PACKAGE_TARNAME@datatypes.jar - test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR - -diff --git a/java/examples/datatypes/Makefile.am b/java/examples/datatypes/Makefile.am -index 90790f7..450edef 100644 ---- a/java/examples/datatypes/Makefile.am -+++ b/java/examples/datatypes/Makefile.am -@@ -26,7 +26,7 @@ classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - - pkgpath = examples/datatypes --hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -+hdfjarfile = $(PACKAGE_TARNAME).jar - CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH - - jarfile = jar$(PACKAGE_TARNAME)datatypes.jar -diff --git a/java/examples/groups/JavaGroupExample.sh.in b/java/examples/groups/JavaGroupExample.sh.in -index 3b0e9d1..416c69f 100644 ---- a/java/examples/groups/JavaGroupExample.sh.in -+++ b/java/examples/groups/JavaGroupExample.sh.in -@@ -37,7 +37,7 @@ BLDDIR="." - BLDLIBDIR="$BLDDIR/testlibs" - BLDITERDIR="./groups" - HDFTEST_HOME="$top_srcdir/java/examples/groups" --JARFILE=jar@PACKAGE_TARNAME@-@PACKAGE_VERSION@.jar -+JARFILE=@PACKAGE_TARNAME@.jar - TESTJARFILE=jar@PACKAGE_TARNAME@groups.jar - test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR - test -d $BLDITERDIR || mkdir -p $BLDITERDIR -diff --git a/java/examples/groups/Makefile.am b/java/examples/groups/Makefile.am -index bfde9ae..f48a5b9 100644 ---- a/java/examples/groups/Makefile.am -+++ b/java/examples/groups/Makefile.am -@@ -26,7 +26,7 @@ classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - - pkgpath = examples/groups --hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -+hdfjarfile = $(PACKAGE_TARNAME).jar - CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH - - jarfile = jar$(PACKAGE_TARNAME)groups.jar -diff --git a/java/examples/intro/JavaIntroExample.sh.in b/java/examples/intro/JavaIntroExample.sh.in -index db741e5..d0ba65d 100644 ---- a/java/examples/intro/JavaIntroExample.sh.in -+++ b/java/examples/intro/JavaIntroExample.sh.in -@@ -36,7 +36,7 @@ HDFLIB_HOME="$top_srcdir/java/lib" - BLDDIR="." - BLDLIBDIR="$BLDDIR/testlibs" - HDFTEST_HOME="$top_srcdir/java/examples/intro" --JARFILE=jar@PACKAGE_TARNAME@-@PACKAGE_VERSION@.jar -+JARFILE=@PACKAGE_TARNAME@.jar - TESTJARFILE=jar@PACKAGE_TARNAME@intro.jar - test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR - -diff --git a/java/examples/intro/Makefile.am b/java/examples/intro/Makefile.am -index 7d1aeab..01a10c9 100644 ---- a/java/examples/intro/Makefile.am -+++ b/java/examples/intro/Makefile.am -@@ -26,7 +26,7 @@ classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - - pkgpath = examples/intro --hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -+hdfjarfile = $(PACKAGE_TARNAME).jar - CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH - - jarfile = jar$(PACKAGE_TARNAME)intro.jar -diff --git a/java/src/Makefile.am b/java/src/Makefile.am -index 98630e6..fd8d057 100644 ---- a/java/src/Makefile.am -+++ b/java/src/Makefile.am -@@ -32,8 +32,8 @@ JAVAROOT = .classes - classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - --jarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar --hdf5_javadir = $(libdir) -+jarfile = $(PACKAGE_TARNAME).jar -+hdf5_javadir = $(prefix)/lib/java - - pkgpath = hdf/hdf5lib - CLASSPATH_ENV=CLASSPATH=.:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$$CLASSPATH -diff --git a/java/test/Makefile.am b/java/test/Makefile.am -index 08e79e3..b336c2f 100644 ---- a/java/test/Makefile.am -+++ b/java/test/Makefile.am -@@ -26,7 +26,7 @@ classes: - test -d $(@D)/$(JAVAROOT) || $(MKDIR_P) $(@D)/$(JAVAROOT) - - pkgpath = test --hdfjarfile = jar$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).jar -+hdfjarfile = $(PACKAGE_TARNAME).jar - CLASSPATH_ENV=CLASSPATH=.:$(JAVAROOT):$(top_builddir)/java/src/$(hdfjarfile):$(top_srcdir)/java/lib/junit.jar:$(top_srcdir)/java/lib/hamcrest-core.jar:$(top_srcdir)/java/lib/slf4j-api-1.7.25.jar:$(top_srcdir)/java/lib/ext/slf4j-simple-1.7.25.jar:$$CLASSPATH - - jarfile = jar$(PACKAGE_TARNAME)test.jar -diff --git a/java/test/junit.sh.in b/java/test/junit.sh.in -index 39db296..83d6c7c 100644 ---- a/java/test/junit.sh.in -+++ b/java/test/junit.sh.in -@@ -47,7 +47,7 @@ BLDLIBDIR="$BLDDIR/testlibs" - HDFTEST_HOME="$top_srcdir/java/test" - TOOLS_TESTFILES="$top_srcdir/tools/testfiles" - --JARFILE=jar@PACKAGE_TARNAME@-@PACKAGE_VERSION@.jar -+JARFILE=@PACKAGE_TARNAME@.jar - TESTJARFILE=jar@PACKAGE_TARNAME@test.jar - test -d $BLDLIBDIR || mkdir -p $BLDLIBDIR - diff --git a/hdf5-gfortran12.patch b/hdf5-gfortran12.patch deleted file mode 100644 index 97fc27610814fcc41d8e9f3470e04128dd7d7f71..0000000000000000000000000000000000000000 --- a/hdf5-gfortran12.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 3ea6f8c17228d2629e419563138a6180bc4a5a6a -Author: Orion Poplawski -Date: Sun Jan 30 15:21:08 2022 -0700 - - Mark minusone as a PARAMETER in tH5A_1_8.F90. - -diff --git a/fortran/test/tH5A_1_8.F90 b/fortran/test/tH5A_1_8.F90 -index 4e02c58a39..c2f8e9984a 100644 ---- a/fortran/test/tH5A_1_8.F90 -+++ b/fortran/test/tH5A_1_8.F90 -@@ -776,7 +776,7 @@ SUBROUTINE test_attr_info_by_idx(new_format, fcpl, fapl, total_error) - - INTEGER :: Input1 - INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T -- INTEGER :: minusone = -1 -+ INTEGER, PARAMETER :: minusone = -1 - INTEGER(HSIZE_T) :: htmp - - data_dims = 0 -@@ -1427,7 +1427,7 @@ SUBROUTINE test_attr_delete_by_idx(new_format, fcpl, fapl, total_error) - INTEGER :: u ! Local index variable - INTEGER :: Input1 - INTEGER(HSIZE_T) :: hzero = 0_HSIZE_T -- INTEGER :: minusone = -1 -+ INTEGER, PARAMETER :: minusone = -1 - - data_dims = 0 - -@@ -2268,7 +2268,7 @@ SUBROUTINE test_attr_corder_create_basic( fcpl, fapl, total_error ) - INTEGER :: error - - INTEGER :: crt_order_flags -- INTEGER :: minusone = -1 -+ INTEGER, PARAMETER :: minusone = -1 - - ! Output message about test being performed - ! WRITE(*,*) " - Testing Basic Code for Attributes with Creation Order Info" diff --git a/hdf5-wrappers.patch b/hdf5-wrappers.patch index ff721bb34a62801c74686d14d406f37930570245..a7aa35899ddeaed677ddf2abc187754cf79ff3a5 100644 --- a/hdf5-wrappers.patch +++ b/hdf5-wrappers.patch @@ -1,7 +1,8 @@ -diff -up hdf5-1.10.7/bin/h5cc.in.wrappers hdf5-1.10.7/bin/h5cc.in ---- hdf5-1.10.7/bin/h5cc.in.wrappers 2020-10-07 20:24:29.127283333 -0600 -+++ hdf5-1.10.7/bin/h5cc.in 2020-10-07 20:27:05.289536904 -0600 -@@ -89,10 +89,10 @@ CLINKERBASE="@CC@" +diff --git a/bin/h5cc.in b/bin/h5cc.in +index 9938c31..194818a 100644 +--- a/bin/h5cc.in ++++ b/bin/h5cc.in +@@ -87,10 +87,10 @@ CLINKERBASE="@CC@" # paths and libraries from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in # from the hdf5 build. The order of the flags is intended to give precedence # to the user's flags. @@ -15,17 +16,16 @@ diff -up hdf5-1.10.7/bin/h5cc.in.wrappers hdf5-1.10.7/bin/h5cc.in CC="${HDF5_CC:-$CCBASE}" CLINKER="${HDF5_CLINKER:-$CLINKERBASE}" -@@ -105,7 +105,8 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" +@@ -103,7 +103,7 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" # available library is shared, it will be used by default. The user can # override either default, although choosing an unavailable library will result # in link errors. -STATIC_AVAILABLE="@enable_static@" -+# Fedora prefers shared libraries +STATIC_AVAILABLE=no if test "${STATIC_AVAILABLE}" = "yes"; then USE_SHARED_LIB="${HDF5_USE_SHLIB:-no}" else -@@ -385,7 +386,7 @@ if test "x$do_link" = "xyes"; then +@@ -380,7 +380,7 @@ if test "x$do_link" = "xyes"; then # paths and libraries from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in # from the hdf5 build. The order of the flags is intended to give precedence # to the user's flags. @@ -34,10 +34,11 @@ diff -up hdf5-1.10.7/bin/h5cc.in.wrappers hdf5-1.10.7/bin/h5cc.in status=$? fi -diff -up hdf5-1.10.7/c++/src/h5c++.in.wrappers hdf5-1.10.7/c++/src/h5c++.in ---- hdf5-1.10.7/c++/src/h5c++.in.wrappers 2020-08-27 21:38:23.000000000 -0600 -+++ hdf5-1.10.7/c++/src/h5c++.in 2020-10-07 20:24:29.126283325 -0600 -@@ -87,10 +87,10 @@ CXXLINKERBASE="@CXX@" +diff --git a/c++/src/h5c++.in b/c++/src/h5c++.in +index 8830f3c..994a77f 100644 +--- a/c++/src/h5c++.in ++++ b/c++/src/h5c++.in +@@ -85,10 +85,10 @@ CXXLINKERBASE="@CXX@" # paths and libraries from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in # from the hdf5 build. The order of the flags is intended to give precedence # to the user's flags. @@ -50,18 +51,17 @@ diff -up hdf5-1.10.7/c++/src/h5c++.in.wrappers hdf5-1.10.7/c++/src/h5c++.in +H5BLD_LIBS= CXX="${HDF5_CXX:-$CXXBASE}" - CXXLINKER="${HDF5_CLINKER:-$CXXLINKERBASE}" -@@ -103,7 +103,8 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" + CXXLINKER="${HDF5_CXXLINKER:-$CXXLINKERBASE}" +@@ -101,7 +101,7 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" # available library is shared, it will be used by default. The user can # override either default, although choosing an unavailable library will result # in link errors. -STATIC_AVAILABLE="@enable_static@" -+# Fedora prefers shared libraries +STATIC_AVAILABLE=no if test "${STATIC_AVAILABLE}" = "yes"; then USE_SHARED_LIB="${HDF5_USE_SHLIB:-no}" else -@@ -385,7 +386,7 @@ if test "x$do_link" = "xyes"; then +@@ -372,7 +372,7 @@ if test "x$do_link" = "xyes"; then # from the hdf5 build. The order of the flags is intended to give precedence # to the user's flags. @@ -70,10 +70,11 @@ diff -up hdf5-1.10.7/c++/src/h5c++.in.wrappers hdf5-1.10.7/c++/src/h5c++.in status=$? fi -diff -up hdf5-1.10.7/fortran/src/h5fc.in.wrappers hdf5-1.10.7/fortran/src/h5fc.in ---- hdf5-1.10.7/fortran/src/h5fc.in.wrappers 2020-08-27 21:38:23.000000000 -0600 -+++ hdf5-1.10.7/fortran/src/h5fc.in 2020-10-07 20:25:53.793962985 -0600 -@@ -83,11 +83,11 @@ FLINKERBASE="@FC@" +diff --git a/fortran/src/h5fc.in b/fortran/src/h5fc.in +index 3c04425..450b71d 100644 +--- a/fortran/src/h5fc.in ++++ b/fortran/src/h5fc.in +@@ -82,11 +82,11 @@ FLINKERBASE="@FC@" # libraries in $link_args, followed by any external library paths and libraries # from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in from the hdf5 build. # The order of the flags is intended to give precedence to the user's flags. @@ -88,17 +89,16 @@ diff -up hdf5-1.10.7/fortran/src/h5fc.in.wrappers hdf5-1.10.7/fortran/src/h5fc.i FC="${HDF5_FC:-$FCBASE}" FLINKER="${HDF5_FLINKER:-$FLINKERBASE}" -@@ -99,7 +99,8 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" +@@ -98,7 +98,7 @@ LIBS="${HDF5_LIBS:-$LIBSBASE}" # available library is shared, it will be used by default. The user can # override either default, although choosing an unavailable library will result # in link errors. -STATIC_AVAILABLE="@enable_static@" -+# Fedora prefers shared libraries +STATIC_AVAILABLE=no if test "${STATIC_AVAILABLE}" = "yes"; then USE_SHARED_LIB="${HDF5_USE_SHLIB:-no}" else -@@ -363,7 +364,7 @@ if test "x$do_link" = "xyes"; then +@@ -359,7 +359,7 @@ if test "x$do_link" = "xyes"; then # libraries in $link_args, followed by any external library paths and libraries # from AM_LDFLAGS, LDFLAGS, AM_LIBS or LIBS carried in from the hdf5 build. # The order of the flags is intended to give precedence to the user's flags. @@ -107,3 +107,4 @@ diff -up hdf5-1.10.7/fortran/src/h5fc.in.wrappers hdf5-1.10.7/fortran/src/h5fc.i status=$? fi + diff --git a/hdf5.spec b/hdf5.spec index 7cb565f6f223d1f40b2e5f06a05c053889a1a079..3a33f786252303926934d4e71148d9e541902683 100644 --- a/hdf5.spec +++ b/hdf5.spec @@ -7,29 +7,19 @@ %global mpi_list %{?mpi_list} openmpi %endif -%global so_version 200 +%global so_version 310 Name: hdf5 -Version: 1.12.1 -Release: 6 +Version: 1.14.5 +Release: 1 Summary: A data model, library, and file format for storing and managing data -License: GPL-2.0-or-later +License: BSD-3-Clause -URL: https://portal.hdfgroup.org/display/HDF5/HDF5 -Source0: https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.1/src/hdf5-1.12.1.tar.bz2 +URL: https://www.hdfgroup.org/solutions/hdf5/ +Source0: https://support.hdfgroup.org/releases/hdf5/v1_14/v1_14_5/downloads/hdf5-1.14.5.tar.gz Source1: h5comp -Patch0: hdf5-LD_LIBRARY_PATH.patch -Patch1: hdf5-gfortran12.patch -Patch2: hdf5-build.patch -Patch3: hdf5-wrappers.patch -Patch4: CVE-2018-13867.patch -Patch5: CVE-2018-14031.patch -Patch6: CVE-2018-16438.patch -Patch7: CVE-2019-8396.patch -Patch8: CVE-2020-10812.patch -Patch9: CVE-2021-37501.patch -Patch10: add-option-to-build-HL-tools.patch +Patch0: hdf5-wrappers.patch BuildRequires: gcc, gcc-c++ BuildRequires: krb5-devel, openssl-devel, zlib-devel, gcc-gfortran, time @@ -125,13 +115,13 @@ sed -e 's|-O -finline-functions|-O3 -finline-functions|g' -i config/gnu-flags %build %global _configure ../configure %global configure_opts \\\ - --disable-hltools \\\ --disable-silent-rules \\\ --enable-fortran \\\ - --enable-fortran2003 \\\ --enable-hl \\\ --enable-shared \\\ --with-szlib \\\ + --enable-mirror-vfd \\\ + --disable-nonstandard-feature-float16 \\\ %{nil} export CC=gcc @@ -192,8 +182,6 @@ do module purge done -find ${RPM_BUILD_ROOT}%{_datadir} \( -name '*.[ch]*' -o -name '*.f90' \) -exec chmod -x {} + - %ifarch x86_64 sed -i -e s/H5pubconf.h/H5pubconf-64.h/ ${RPM_BUILD_ROOT}%{_includedir}/H5public.h mv ${RPM_BUILD_ROOT}%{_includedir}/H5pubconf.h \ @@ -228,14 +216,16 @@ make %{?_smp_mflags} -C build check %files %license COPYING -%doc MANIFEST README.txt release_docs/RELEASE.txt +%doc release_docs/RELEASE.txt %doc release_docs/HISTORY*.txt %{_bindir}/h5clear %{_bindir}/h5copy %{_bindir}/h5debug +%{_bindir}/h5delete %{_bindir}/h5diff %{_bindir}/h5dump %{_bindir}/h5format_convert +%{_bindir}/h5fuse %{_bindir}/h5import %{_bindir}/h5jam %{_bindir}/h5ls @@ -245,6 +235,7 @@ make %{?_smp_mflags} -C build check %{_bindir}/h5repart %{_bindir}/h5stat %{_bindir}/h5unjam +%{_bindir}/h5watch %{_bindir}/mirror_server %{_bindir}/mirror_server_stop %{_libdir}/libhdf5.so.%{so_version}* @@ -260,24 +251,26 @@ make %{?_smp_mflags} -C build check %{_bindir}/h5fc* %{_bindir}/h5redeploy %{_includedir}/*.h +%{_includedir}/H5config_f.inc %{_libdir}/*.so %{_libdir}/*.settings %{_fmoddir}/*.mod -%{_datadir}/hdf5_examples/ %{_libdir}/*.a %{_rpmmacrodir}/macros.hdf5 %if %{with_mpich} %files mpich %license COPYING -%doc MANIFEST README.txt release_docs/RELEASE.txt +%doc release_docs/RELEASE.txt %doc release_docs/HISTORY*.txt %{_libdir}/mpich/bin/h5clear %{_libdir}/mpich/bin/h5copy %{_libdir}/mpich/bin/h5debug +%{_libdir}/mpich/bin/h5delete %{_libdir}/mpich/bin/h5diff %{_libdir}/mpich/bin/h5dump %{_libdir}/mpich/bin/h5format_convert +%{_libdir}/mpich/bin/h5fuse %{_libdir}/mpich/bin/h5import %{_libdir}/mpich/bin/h5jam %{_libdir}/mpich/bin/h5ls @@ -289,6 +282,7 @@ make %{?_smp_mflags} -C build check %{_libdir}/mpich/bin/h5repart %{_libdir}/mpich/bin/h5stat %{_libdir}/mpich/bin/h5unjam +%{_libdir}/mpich/bin/h5watch %{_libdir}/mpich/bin/mirror_server %{_libdir}/mpich/bin/mirror_server_stop %{_libdir}/mpich/bin/ph5diff @@ -301,7 +295,6 @@ make %{?_smp_mflags} -C build check %{_libdir}/mpich/bin/h5pfc %{_libdir}/mpich/lib/lib*.so %{_libdir}/mpich/lib/lib*.settings -%{_libdir}/mpich/share/hdf5_examples/ %files mpich-static %{_libdir}/mpich/lib/*.a @@ -310,14 +303,16 @@ make %{?_smp_mflags} -C build check %if %{with_openmpi} %files openmpi %license COPYING -%doc MANIFEST README.txt release_docs/RELEASE.txt +%doc release_docs/RELEASE.txt %doc release_docs/HISTORY*.txt %{_libdir}/openmpi/bin/h5clear %{_libdir}/openmpi/bin/h5copy %{_libdir}/openmpi/bin/h5debug +%{_libdir}/openmpi/bin/h5delete %{_libdir}/openmpi/bin/h5diff %{_libdir}/openmpi/bin/h5dump %{_libdir}/openmpi/bin/h5format_convert +%{_libdir}/openmpi/bin/h5fuse %{_libdir}/openmpi/bin/h5import %{_libdir}/openmpi/bin/h5jam %{_libdir}/openmpi/bin/h5ls @@ -329,6 +324,7 @@ make %{?_smp_mflags} -C build check %{_libdir}/openmpi/bin/h5repart %{_libdir}/openmpi/bin/h5stat %{_libdir}/openmpi/bin/h5unjam +%{_libdir}/openmpi/bin/h5watch %{_libdir}/openmpi/bin/mirror_server %{_libdir}/openmpi/bin/mirror_server_stop %{_libdir}/openmpi/bin/ph5diff @@ -341,13 +337,32 @@ make %{?_smp_mflags} -C build check %{_libdir}/openmpi/bin/h5pfc %{_libdir}/openmpi/lib/lib*.so %{_libdir}/openmpi/lib/lib*.settings -%{_libdir}/openmpi/share/hdf5_examples/ %files openmpi-static %{_libdir}/openmpi/lib/*.a %endif %changelog +* Wed Oct 30 2024 yaoxin - 1.14.5-1 +- Update to 1.14.5: + * Added signed Windows msi binary and signed Apple dmg binary files. + * Moved examples to the HDF5Examples folder in the source tree. + * Added support for using zlib-ng package as the zlib library + * Disable CMake UNITY_BUILD for hdf5 + * Removed "function/code stack" debugging configuration option + * Added configure options for enabling/disabling non-standard programming language features + * Added the CMake variable HDF5_ENABLE_ROS3_VFD to the HDF5 CMake config + file hdf5-config.cmake. This allows it to easily detect if the library + has been built with or without read-only S3 functionality. + * Fixed many CVE: + CVE-2024-29157,CVE-2024-29158,CVE-2024-29159,CVE-2024-29160,CVE-2024-29161,CVE-2024-29162 + CVE-2024-29163,CVE-2024-29164,CVE-2024-29165,CVE-2024-29166,CVE-2024-32605,CVE-2024-32606 + CVE-2024-32607,CVE-2024-32608,CVE-2024-32609,CVE-2024-32610,CVE-2024-32611,CVE-2024-32612 + CVE-2024-32613,CVE-2024-32614,CVE-2024-32615,CVE-2024-32616,CVE-2024-32617,CVE-2024-32618 + CVE-2024-32619,CVE-2024-32620,CVE-2024-32621,CVE-2024-32622,CVE-2024-32623,CVE-2024-32624 + CVE-2024-33873,CVE-2024-33874,CVE-2024-33875,CVE-2024-33876,CVE-2024-33877,CVE-2018-13871 + CVE-2018-13875,CVE-2018-14034 + * Wed Dec 20 2023 wangkai <13474090681@163.com> - 1.12.1-6 - Add disable-hltools flag to fix CVE-2018-17433, CVE-2018-17436, CVE-2020-10809