From bc2517b33d8bd5d23c2352d38b97a23d07c92833 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Fri, 7 Apr 2023 07:49:26 -0500 Subject: Update HDF5 version after 1.10.10 release. (#2681) * Update HDF5 version after 1.10.10 release. Update so numbers to match 1.10.10 release so numbers. Update HISTORY-1_10.txt. Clean RELEASE.txt entries. * Missed one version change. --- README.md | 2 +- c++/src/cpp_doc_config | 2 +- config/cmake/scripts/HDF5config.cmake | 4 +- config/lt_vers.am | 22 +- configure.ac | 2 +- java/test/TestH5.java | 2 +- release_docs/HISTORY-1_10.txt | 1141 ++++++++++++++++++++ release_docs/RELEASE.txt | 294 +---- src/H5public.h | 6 +- .../h5repack_layout.h5-plugin_version_test.ddl | 14 +- 10 files changed, 1178 insertions(+), 311 deletions(-) diff --git a/README.md b/README.md index abaa0fc..e2436af 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -HDF5 version 1.10.10-2 currently under development +HDF5 version 1.10.11-1 currently under development ![HDF5 Logo](doxygen/img/HDF5.png) diff --git a/c++/src/cpp_doc_config b/c++/src/cpp_doc_config index b167bf9..a70f11e 100644 --- a/c++/src/cpp_doc_config +++ b/c++/src/cpp_doc_config @@ -38,7 +38,7 @@ PROJECT_NAME = # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "1.10.10-2, currently under development" +PROJECT_NUMBER = "1.10.11-1, currently under development" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/config/cmake/scripts/HDF5config.cmake b/config/cmake/scripts/HDF5config.cmake index ed47247..e3f66e0 100755 --- a/config/cmake/scripts/HDF5config.cmake +++ b/config/cmake/scripts/HDF5config.cmake @@ -37,8 +37,8 @@ cmake_minimum_required (VERSION 3.12) # CTEST_SOURCE_NAME - source folder ############################################################################## -set (CTEST_SOURCE_VERSION "1.10.10") -set (CTEST_SOURCE_VERSEXT "-2") +set (CTEST_SOURCE_VERSION "1.10.11") +set (CTEST_SOURCE_VERSEXT "-1") ############################################################################## # handle input parameters to script. diff --git a/config/lt_vers.am b/config/lt_vers.am index 337a829..701f532 100644 --- a/config/lt_vers.am +++ b/config/lt_vers.am @@ -15,9 +15,9 @@ ## See libtool versioning documentation online. ## After making changes, run bin/reconfigure to update other configure related ## files like Makefile.in. -LT_VERS_INTERFACE = 106 -LT_VERS_REVISION = 2 -LT_VERS_AGE = 3 +LT_VERS_INTERFACE = 107 +LT_VERS_REVISION = 0 +LT_VERS_AGE = 4 ## If the API changes *at all*, increment LT_VERS_INTERFACE and ## reset LT_VERS_REVISION to 0. @@ -39,30 +39,30 @@ LT_VERS_AGE = 3 ## ## Version numbers for wrapper shared library files. LT_CXX_VERS_INTERFACE = 107 -LT_CXX_VERS_REVISION = 1 +LT_CXX_VERS_REVISION = 2 LT_CXX_VERS_AGE = 4 LT_F_VERS_INTERFACE = 103 -LT_F_VERS_REVISION = 2 +LT_F_VERS_REVISION = 3 LT_F_VERS_AGE = 1 LT_HL_VERS_INTERFACE = 101 -LT_HL_VERS_REVISION = 6 +LT_HL_VERS_REVISION = 7 LT_HL_VERS_AGE = 1 LT_HL_CXX_VERS_INTERFACE = 101 -LT_HL_CXX_VERS_REVISION = 7 +LT_HL_CXX_VERS_REVISION = 8 LT_HL_CXX_VERS_AGE = 1 LT_HL_F_VERS_INTERFACE = 100 -LT_HL_F_VERS_REVISION = 8 +LT_HL_F_VERS_REVISION = 9 LT_HL_F_VERS_AGE = 0 -LT_JAVA_VERS_INTERFACE = 106 +LT_JAVA_VERS_INTERFACE = 108 LT_JAVA_VERS_REVISION = 0 -LT_JAVA_VERS_AGE = 6 +LT_JAVA_VERS_AGE = 8 LT_TOOLS_VERS_INTERFACE = 102 -LT_TOOLS_VERS_REVISION = 2 +LT_TOOLS_VERS_REVISION = 3 LT_TOOLS_VERS_AGE = 0 diff --git a/configure.ac b/configure.ac index 06d0178..e1849c5 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,7 @@ AC_PREREQ([2.69]) ## NOTE: Do not forget to change the version number here when we do a ## release!!! ## -AC_INIT([HDF5], [1.10.10-2], [help@hdfgroup.org]) +AC_INIT([HDF5], [1.10.11-1], [help@hdfgroup.org]) AC_CONFIG_SRCDIR([src/H5.c]) AC_CONFIG_HEADERS([src/H5config.h]) diff --git a/java/test/TestH5.java b/java/test/TestH5.java index d0ff2e0..016c471 100644 --- a/java/test/TestH5.java +++ b/java/test/TestH5.java @@ -350,7 +350,7 @@ public class TestH5 { @Test public void testH5check_version() { - int majnum = 1, minnum = 10, relnum = 10; + int majnum = 1, minnum = 10, relnum = 11; try { H5.H5check_version(majnum, minnum, relnum); diff --git a/release_docs/HISTORY-1_10.txt b/release_docs/HISTORY-1_10.txt index 9634832..b330775 100644 --- a/release_docs/HISTORY-1_10.txt +++ b/release_docs/HISTORY-1_10.txt @@ -3,6 +3,8 @@ HDF5 History This file contains development history of the HDF5 1.10 branch +12. Release Information for hdf5-1.10.10 +11. Release Information for hdf5-1.10.9 10. Release Information for hdf5-1.10.8 09. Release Information for hdf5-1.10.7 08. Release Information for hdf5-1.10.6 @@ -16,6 +18,1145 @@ This file contains development history of the HDF5 1.10 branch [Search on the string '%%%%' for section breaks of each release.] +%%%%1.10.10%%%% + +HDF5 version 1.10.10 released on 2023-03-31 +================================================================================ + + +INTRODUCTION +============ + +This document describes the differences between this release and the previous +HDF5 release. It contains information on the platforms tested and known +problems in this release. For more details check the HISTORY*.txt files in the +HDF5 source. + +Note that documentation in the links below will be updated at the time of each +final release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + +Changes from release to release and new features in the HDF5-1.10.x release series +can be found at: + + https://portal.hdfgroup.org/display/HDF5/Release+Specific+Information + +If you have any questions or comments, please send them to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for New Platforms and Languages +- Bug Fixes since HDF5-1.10.9 +- Platforms Tested +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Removal of dmalloc support + + The ability to build with dmalloc support has been removed along with + the following configure options: + + Autotools: + --with-dmalloc= + + CMake: + HDF5_ENABLE_USING_DMALLOC + + (DER - 2023/03/17) + + - Allow parallel and threadsafe to be built + + In the past, we required --enable-unsupported (Autotools) or + ALLOW_UNSUPPORTED (CMake) in order to build the parallel library with + thread-safety support. The parallel, thread-safe library can now be + built without these options. + + (DER - 2023/03/17) + + - Added new option to build libaec and zlib inline with CMake. + + Using the CMake FetchContent module, the external filters can populate + content at configure time via any method supported by the ExternalProject + module. Whereas ExternalProject_Add() downloads at build time, the + FetchContent module makes content available immediately, allowing the + configure step to use the content in commands like add_subdirectory(), + include() or file() operations. + + The HDF options (and defaults) for using this are: + BUILD_SZIP_WITH_FETCHCONTENT:BOOL=OFF + LIBAEC_USE_LOCALCONTENT:BOOL=OFF + BUILD_ZLIB_WITH_FETCHCONTENT:BOOL=OFF + ZLIB_USE_LOCALCONTENT:BOOL=OFF + + The CMake variables to control the path and file names: + LIBAEC_TGZ_ORIGPATH:STRING + LIBAEC_TGZ_ORIGNAME:STRING + ZLIB_TGZ_ORIGPATH:STRING + ZLIB_TGZ_ORIGNAME:STRING + + See the CMakeFilters.cmake and config/cmake/cacheinit.cmake files for usage. + + (ADB - 2023/02/21) + + - Add new CMake configuration variable HDF5_USE_GNU_DIRS + + HDF5_USE_GNU_DIRS (default OFF) selects the use of GNU Coding Standard install + directory variables by including the CMake module, GNUInstallDirs(see CMake + documentation for details). The HDF_DIR_PATHS macro in the HDFMacros.cmake file + sets various PATH variables for use during the build, test and install processes. + By default, the historical settings for these variables will be used. + + (ADB - 2022/10/21, GH-2175, GH-1716) + + - Correct the usage of CMAKE_Fortran_MODULE_DIRECTORY and where to + install Fortran mod files. + + The Fortran modules files, ending in .mod are files describing a + Fortran 90 (and above) module API and ABI. These are not like C + header files describing an API, they are compiler dependent and + arch dependent, and not easily readable by a human being. They are + nevertheless searched for in the includes directories by gfortran + (in directories specified with -I). + + Autotools configure uses the -fmoddir option to specify the folder. + CMake will use "mod" folder by default unless overridden by the CMake + variable; HDF5_INSTALL_MODULE_DIR. + + (ADB - 2022/07/21) + + + Library: + -------- + - + + + Parallel Library: + ----------------- + - + + + Fortran Library: + ---------------- + - + + + C++ Library: + ------------ + - + + + Java Library: + ------------- + - HDF5GroupInfo class has been deprecated. + + This class assumes that an object can contain four values which uniquely identify an + object among those HDF5 files which are open. This is no longer valid in future + HDF5 releases. + + (ADB - 2023/03/27) + + - Added version of H5Rget_name to return the name as a Java string. + + Other functions that get_name process the get_size then get the name + within the JNI implementation. Now H5Rget_name has a H5Rget_name_string. + + (ADB - 2022/07/12) + + - Added reference support to H5A and H5D read write vlen JNI functions. + + Added the implementation to handle VL references as an Array of Lists + of byte arrays. + + The JNI wrappers translate the Array of Lists to/from the hvl_t vlen + structures. The wrappers use the specified datatype arguments for the + List type translation, it is expected that the Java type is correct. + + (ADB - 2022/07/11, HDFFV-11318) + + - H5A and H5D read write vlen JNI functions were incorrect. + + Corrected the vlen function implementations for the basic primitive types. + The VLStrings functions now correctly use the implementation that had been + the VL functions. (VLStrings functions did not have an implementation.) + The new VL functions implementation now expect an Array of Lists between + Java and the JNI wrapper. + + The JNI wrappers translate the Array of Lists to/from the hvl_t vlen + structures. The wrappers use the specified datatype arguments for the + List type translation, it is expected that the Java type is correct. + + (ADB - 2022/07/07, HDFFV-11310) + + - H5A and H5D read write JNI functions had flawed vlen datatype check. + + Adapted tools function for JNI utils file. This reduced multiple calls + to a single check and variable. The variable can then be used to call + the H5Treclaim function. Adjusted existing test and added new test. + + (ADB - 2022/06/22) + + + Tools: + ------ + - Building h5perf/h5perf_serial in "standalone mode" has been removed + + Building h5perf separately from the library was added circa 2008 + in HDF5 1.6.8. It's unclear what purpose this serves and the current + implementation is currently broken. The existing files require + H5private.h and the symbols we use to determine how the copied + platform-independence scheme should be used come from H5pubconf.h, + which may not match the compiler being used to build standalone h5perf. + + Due to the maintenance overhead and lack of a clear use case, support + for building h5perf and h5perf_serial separately from the HDF5 library + has been removed. + + (DER - 2023/03/20) + + - The perf tool has been removed + + The small `perf` tool didn't really do anything special and the name + conflicts with gnu's perf tool. + + (DER - 2023/03/20, GitHub #1787) + + + High-Level APIs: + ---------------- + - + + + C Packet Table API: + ------------------- + - + + + Internal header file: + --------------------- + - + + + Documentation: + -------------- + - + + +Support for new platforms, languages and compilers +================================================== + - + + +Bug Fixes since HDF5-1.10.9 release +=================================== + Library + ------- + - Fixed a memory corruption issue that can occur when reading + from a dataset using a hyperslab selection in the file + dataspace and a point selection in the memory dataspace + + When reading from a dataset using a hyperslab selection in + the dataset's file dataspace and a point selection in the + dataset's memory dataspace where the file dataspace's "rank" + is greater than the memory dataspace's "rank", memory corruption + could occur due to an incorrect number of selection points + being copied when projecting the point selection onto the + hyperslab selection's dataspace. + + (JTH - 2023/03/23) + + - Fix CVE-2021-37501 / GHSA-rfgw-5vq3-wrjf + + Check for overflow when calculating on-disk attribute data size. + + 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. + + (EFE - 2023/02/11 GH-2458) + + - Fixed an issue with variable length attributes + + Previously, if a variable length attribute was held open while its file + was opened through another handle, the same attribute was opened through + the second file handle, and the second file and attribute handles were + closed, attempting to write to the attribute through the first handle + would cause an error. + + (NAF - 2022/10/24) + + - Fixed an issue with hyperslab selections + + Previously, when combining hyperslab selections, it was possible for the + library to produce an incorrect combined selection. + + (NAF - 2022/09/25) + + - Fixed an issue with attribute type conversion with compound datatypes + + Previously, when performing type conversion for attribute I/O with a + compound datatype, the library would not fill the background buffer with + the contents of the destination, potentially causing data to be lost when + only writing to a subset of the compound fields. + + (NAF - 2022/08/22, GitHub #2016) + + - Modified H5Fstart_swmr_write() to preserve DAPL properties + + Internally, H5Fstart_swmr_write() closes and reopens the file in question + as part of its process for making the file SWMR-safe. Previously, when + the library reopened the file it would simply use the default access + properties. Modified the library to instead save these properties and use + them when reopening the file. + + (NAF - 2022/07/18, HDFFV-11308) + + - Converted an assertion on (possibly corrupt) file contents to a normal + error check + + Previously, the library contained an assertion check that a read superblock + doesn't contain a superblock extension message when the superblock + version < 2. When a corrupt HDF5 file is read, this assertion can be triggered + in debug builds of HDF5. In production builds, this situation could cause + either a library error or a crash, depending on the platform. + + (JTH - 2022/07/08, HDFFV-11316, HDFFV-11317) + + - Memory leak + + A memory leak was observed with variable-length fill value in + H5O_fill_convert() function in H5Ofill.c. The leak is + manifested by running valgrind on test/set_extent.c. + + Previously, fill->buf is used for datatype conversion + if it is large enough and the variable-length information + is therefore lost. A buffer is now allocated regardless + so that the element in fill->buf can later be reclaimed. + + (VC - 2022/10/10, HDFFV-10840) + + + Java Library + ------------ + - + + + Configuration + ------------- + - Correct the CMake generated pkg-config file + + The pkg-config file generated by CMake had the order and placement of the + libraries wrong. Also added support for debug library names. + + Changed the order of Libs.private libraries so that dependencies come after + dependents. Did not move the compression libraries into Requires.private + because there was not a way to determine if the compression libraries had + supported pkconfig files. Still recommend that the CMake config file method + be used for building projects with CMake. + + (ADB - 2023/02/16 GH-1546,GH-2259) + + - Remove Javadoc generation + + The use of doxygen now supersedes the requirement to build javadocs. We do not + have the resources to continue to support two documentation methods and have + chosen doxygen as our standard. + + (ADB - 2022/12/19) + + - Change the default for building the high-level tools + + The gif2hdf5 and hdf2gif high-level tools are deprecated and will be removed + in a future release. The default build setting for them have been changed from enabled + to disabled. A user can enable the build of these tools if needed. + autotools: --enable-hlgiftools + cmake: HDF5_BUILD_HL_GIF_TOOLS=ON + + (ADB - 2022/12/16) + + - Change the settings of the *pc files to use the correct format + + The pkg-config files generated by CMake uses incorrect syntax for the 'Requires' + settings. Changing the set to use 'lib-name = version' instead 'lib-name-version' + fixes the issue + + (ADB - 2022/12/06 HDFFV-11355) + + - Move MPI libraries link from PRIVATE to PUBLIC + + The install dependencies were not including the need for MPI libraries when + an application or library was built with the C library. Also updated the + CMake target link command to use the newer style MPI::MPI_C link variable. + + (ADB - 2022/20/27) + + + Tools + ----- + - Fix h5repack to only print output when verbose option is selected + + When timing option was added to h5repack, the check for verbose was + incorrectly implemented. + + (ADB - 2022/12/02, GH #2270) + + + Performance + ------------- + - + + + Fortran API + ----------- + - + + + High-Level Library + ------------------ + - + + + Fortran High-Level APIs + ----------------------- + - + + + Documentation + ------------- + - Doxygen updated with recent Fortran changes. + + (ADB - 2022/09/09) + + + F90 APIs + -------- + - + + + C++ APIs + -------- + - + + + Testing + ------- + - + + +Support for New Platforms and Languages +======================================= + - Added support for IBM Power 8 GNU/Linux 3.10.0 ppc64be with GCC 4.8.5, + xlc/xlC 13.1 and xlf 15.1 + - Added support for Ubuntu 22.04 GNU/Linux5.15.0-1026-aws with GCC 11.3.0, + clang 14.0.0 + - Added support for CentOS8 GNU/Linux 4.18.0-348.7.1.el8_5 with GCC 8.5.0, + clang 12.0.1 + - Added support for macOS Apple M1 11.6 with Apple clang 12.0.5, + GNU Fortran 11.1.0, Intel icc/icpc/ifort 2021.3.0 + - Added support for macOS Big Sur 11.3.1 with Apple clang 12.0.5, + GNU Fortran 10.2.0, Intel icc/icpc/ifort version 2021.2.0 + - Added support for Visual Studio 2022 w/ clang 15.0.1 + with MSVC-like command-line (C/C++ only - cmake), + Intel C/C++/Fortran oneAPI 2022 (cmake) + + +Platforms Tested +=================== + + Linux 5.15.0-1026-aws gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 + #30-Ubuntu SMP x86_64 GNU/Linux GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0 + Ubuntu 22.04 Ubuntu clang version 14.0.0-1ubuntu1 + (cmake and autotools) + + Linux 5.13.0-1031-aws GNU gcc (GCC) 9.4.0-1ubuntu1 + #35-Ubuntu SMP x86_64 GNU/Linux GNU Fortran (GCC) 9.4.0-1ubuntu1 + Ubuntu 20.04 clang version 10.0.0-4ubuntu1 + (cmake and autotools) + + Linux 4.18.0-348.7.1.el8_5 gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) + #1 SMP x86_64 GNU/Linux GNU Fortran (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4) + CentOS8 clang version 12.0.1 (Red Hat 12.0.1) + (cmake and autotools) + + Linux-4.14.0-115.21.2 spectrum-mpi/rolling-release + #1 SMP ppc64le GNU/Linux clang 12.0.1, 14.0.5 + (lassen) GCC 8.3.1 + XL 16.1.1.2, 2021.09.22, 2022.08.05 + (cmake) + + Linux 3.10.0-1160.36.2.el7.ppc64 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + #1 SMP ppc64 GNU/Linux g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + (echidna) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + IBM XL C/C++ V13.1 + IBM XL Fortran V15.1 + + Linux 3.10.0-327.10.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (jelly/kituo/moohan) Version 4.8.5 20150623 (Red Hat 4.8.5-39) + Versions 4.9.3, 5.3.0, 6.3.0, 7.2.0 + 8.3.0, 9.1.0, 10.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + MPICH 3.1.4 built with GCC 4.9.3, 3.3 built with GCC 7.2.0 + OpenMPI 3.1.3, 4.0.0 compiled with GCC 7.2.0 + NAG Fortran Compiler Release 7.0(Yurakuchho) Build 7011 + NVIDIA C, Fortran, C++ for 64-bit target on + x86_64 Linux -tp haswell; + Version 22.5-0 + (autotools and cmake) + + Linux-3.10.0-1160.0.0.1chaos openmpi-4.1.2 + #1 SMP x86_64 GNU/Linux clang 6.0.0, 11.0.1 + (quartz) GCC 7.3.0, 8.1.0 + Intel 19.0.4, 2022.2, oneapi.2022.2 + + Linux-3.10.0-1160.59.1.1chaos openmpi/4.1 + #1 SMP x86_64 GNU/Linux Intel/19.1, 21.3.0, 22.2.0 + (chama) (cmake) + + macOS Apple M1 11.6 Apple clang version 12.0.5 (clang-1205.0.22.11) + Darwin 20.6.0 arm64 gfortran GNU Fortran (Homebrew GCC 11.2.0) 11.1.0 + (macmini-m1) Intel icc/icpc/ifort version 2021.3.0 202106092021.3.0 20210609 + + macOS Big Sur 11.3.1 Apple clang version 12.0.5 (clang-1205.0.22.9) + Darwin 20.4.0 x86_64 gfortran GNU Fortran (Homebrew GCC 10.2.0_3) 10.2.0 + (bigsur-1) Intel icc/icpc/ifort version 2021.2.0 20210228 + + macOS High Sierra 10.13.6 Apple LLVM version 10.0.0 (clang-1000.10.44.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (bear) Intel icc/icpc/ifort version 19.0.4.233 20190416 + + macOS Sierra 10.12.6 Apple LLVM version 9.0.0 (clang-900.39.2) + 64-bit gfortran GNU Fortran (GCC) 7.4.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + + Mac OS X El Capitan 10.11.6 Apple clang version 7.3.0 from Xcode 7.3 + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011test) Intel icc/icpc/ifort version 16.0.2 + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + (platypus) Version 4.4.7 20120313 + Versions 4.9.3, 5.3.0, 6.2.0 + MPICH 3.1.4 compiled with GCC 4.9.3 + + Windows 10 x64 Visual Studio 2015 w/ Intel C/C++/Fortran 18 (cmake) + Visual Studio 2017 w/ Intel C/C++/Fortran 19 (cmake) + Visual Studio 2019 w/ clang 12.0.0 + with MSVC-like command-line (C/C++ only - cmake) + Visual Studio 2019 w/ Intel C/C++/Fortran oneAPI 2022 (cmake) + Visual Studio 2022 w/ clang 15.0.1 + with MSVC-like command-line (C/C++ only - cmake) + Visual Studio 2022 w/ Intel C/C++/Fortran oneAPI 2022 (cmake) + Visual Studio 2019 w/ MSMPI 10.1 (C only - cmake) + + +Known Problems +============== + The function prototype for H5Treclaim was mistakenly added to code for HDF5 + 1.10.9; however no implementation code was added. This prototype has been + removed, resulting in a source incompatibility for shared library versions + between HDF5 versions 1.10.10 and 1.10.9, but not binary incompatibility + since the function was not implemented. + + Setting a variable-length dataset fill value will leak the memory allocated + for the p field of the hvl_t struct. A fix is in progress for this. + HDFFV-10840 + + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + Two tests fail attempting collective writes with OpenMPI 3.0.0/GCC-7.2.0-2.29: + testphdf5 (ecdsetw, selnone, cchunk1, cchunk3, cchunk4, and actualio) + t_shapesame (sscontig2) + + CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA + issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler. + + The subsetting option in ph5diff currently will fail and should be avoided. + The subsetting option works correctly in serial h5diff. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + +The issues with the gif tool are: + HDFFV-10592 CVE-2018-17433 + HDFFV-10593 CVE-2018-17436 + HDFFV-11048 CVE-2020-10809 +These CVE issues have not yet been addressed and can be avoided by not building +the gif tool. Disable building the High-Level tools with these options: + autotools: --disable-hltools + cmake: HDF5_BUILD_HL_TOOLS=OFF + + + +%%%%1.10.9%%%% + +HDF5 version 1.10.9 released on 2022-05-25 +================================================================================ + + +INTRODUCTION +============ + +This document describes the differences between this release and the previous +HDF5 release in the same series. It contains information on the platforms tested +and known problems in this release. For more details check the HISTORY*.txt +files in the HDF5 source. + +Note that documentation in the links below will be updated at the time of each +final release. + +Links to HDF5 documentation can be found on The HDF5 web page: + + https://portal.hdfgroup.org/display/HDF5/HDF5 + +The official HDF5 releases can be obtained from: + + https://www.hdfgroup.org/downloads/hdf5/ + +Changes from Release to Release and New Features in the HDF5-1.10.x release series +can be found at: + + https://portal.hdfgroup.org/display/HDF5/Software+Changes+from+Release+to+Release+for+HDF5-1.10 + +Please send any questions or comments to the HDF Help Desk: + + help@hdfgroup.org + + +CONTENTS +======== + +- New Features +- Support for new platforms and languages +- Bug Fixes since HDF5-1.10.8 +- Platforms Tested +- Known Problems +- CMake vs. Autotools installations + + +New Features +============ + + Configuration: + ------------- + - Added new option to the h5cc scripts produced by CMake. + + Add -showconfig option to h5cc scripts to cat the + libhdf5-settings to the standard output. + + (ADB - 2022/03/11) + + - HDF5 memory allocation sanity checking is now off by default for + Autotools debug builds + + HDF5 can be configured to perform sanity checking on internal memory + allocations by adding heap canaries to these allocations. However, + enabling this option can cause issues with external filter plugins + when working with (reallocating/freeing/allocating and passing back) + buffers. + + Previously, this option was off by default for all CMake build types, + but only off by default for non-debug Autotools builds. Since debug + is the default build mode for HDF5 when built from source with + Autotools, this can result in surprising segfaults that don't occur + when an application is built against a release version of HDF5. + Therefore, this option is now off by default for all build types + across both CMake and Autotools. + + (JTH - 2022/03/01) + + - Refactored the utils folder. + + Added subfolder test and moved the 'swmr_check_compat_vfd.c file' + from test into utils/test. Deleted the duplicate swmr_check_compat_vfd.c + file in hl/tools/h5watch folder. Also fixed vfd check options. + + (ADB - 2021/10/18) + + - Changed autotools and CMake configurations to derive both + compilation warnings-as-errors and warnings-only-warn configurations + from the same files, 'config/*/*error*'. Removed redundant files + 'config/*/*noerror*'. + + (DCY - 2021/09/29) + + + Library: + -------- + - Several improvements to parallel compression feature, including: + + * Improved support for collective I/O (for both writes and reads) + + * Significant reduction of memory usage for the feature as a whole + + * Reduction of copying of application data buffers passed to H5Dwrite + + * Addition of support for incremental file space allocation for filtered + datasets created in parallel. Incremental file space allocation is the + default for these types of datasets (early file space allocation is + also still supported), while early file space allocation is still the + default (and only supported allocation time) for unfiltered datasets + created in parallel. Incremental file space allocation should help with + parallel HDF5 applications that wish to use fill values on filtered + datasets, but would typically avoid doing so since dataset creation in + parallel would often take an excessive amount of time. Since these + datasets previously used early file space allocation, HDF5 would + allocate space for and write fill values to every chunk in the dataset + at creation time, leading to noticeable overhead. Instead, with + incremental file space allocation, allocation of file space for chunks + and writing of fill values to those chunks will be delayed until each + individual chunk is initially written to. + + * Addition of support for HDF5's "don't filter partial edge chunks" flag + (https://portal.hdfgroup.org/display/HDF5/H5P_SET_CHUNK_OPTS) + + * Addition of proper support for HDF5 fill values with the feature + + * Addition of 'H5_HAVE_PARALLEL_FILTERED_WRITES' macro to H5pubconf.h + so HDF5 applications can determine at compile-time whether the feature + is available + + * Addition of simple examples (ph5_filtered_writes.c and + ph5_filtered_writes_no_sel.c) under examples directory to demonstrate + usage of the feature + + * Improved coverage of regression testing for the feature + + (JTH - 2022/2/23) + + Fortran Library: + ---------------- + - None + + + C++ Library: + ------------ + - None + + + Java Library: + ------------- + - None + + + Tools: + ------ + - h5repack added an optional verbose value for reporting R/W timing. + + In addition to adding timing capture around the read/write calls in + h5repack, added help text to indicate how to show timing for read/write; + -v N, --verbose=N Verbose mode, print object information. + N - is an integer greater than 1, 2 displays read/write timing + (ADB - 2022/04/01) + + + High-Level APIs: + ---------------- + - None + + + C Packet Table API: + ------------------- + - None + + + Internal header file: + --------------------- + - None + + + Documentation: + -------------- + - None + + +New platforms, languages and compilers tested +================================================== + - macOS Apple M1 11.6 Darwin 20.6.0 arm64 with Apple clang version 12.0.5 + + - Fedora35 Linux 5.16.14-200.fc35 with GCC 11.2.1 and clang version 13.0.0 + + +Bug Fixes since HDF5-1.10.8 release +=================================== + Library + ------- + - Fixed a metadata cache bug when resizing a pinned/protected cache entry + + When resizing a pinned/protected cache entry, the metadata + cache code previously would wait until after resizing the + entry to attempt to log the newly-dirtied entry. This would + cause H5C_resize_entry to mark the entry as dirty and make + H5AC_resize_entry think that it doesn't need to add the + newly-dirtied entry to the dirty entries skiplist. + + Thus, a subsequent H5AC__log_moved_entry would think it + needs to allocate a new entry for insertion into the dirty + entry skip list, since the entry doesn't exist on that list. + This causes an assertion failure, as the code to allocate a + new entry assumes that the entry is not dirty. + + (JRM - 2022/02/28) + + - Issue #1436 identified a problem with the H5_VERS_RELEASE check in the + H5check_version function. + + Investigating the original fix, #812, we discovered some inconsistencies + with a new block added to check H5_VERS_RELEASE for incompatibilities. + This new block was not using the new warning text dealing with the + H5_VERS_RELEASE check and would cause the warning to be duplicated. + + By removing the H5_VERS_RELEASE argument in the first check for + H5_VERS_MAJOR and H5_VERS_MINOR, the second check would only check + the H5_VERS_RELEASE for incompatible release versions. This adheres + to the statement that except for the develop branch, all release versions + in a major.minor maintenance branch should be compatible. The prerequisite + is that an application will not use any APIs not present in all release versions. + + (ADB - 2022/03/11, #1438) + + - Unified handling of collective metadata reads to correctly fix old bugs + + Due to MPI-related issues occurring in HDF5 from mismanagement of the + status of collective metadata reads, they were forced to be disabled + during chunked dataset raw data I/O in the HDF5 1.10.5 release. This + wouldn't generally have affected application performance because HDF5 + already disables collective metadata reads during chunk lookup, since + it is generally unlikely that the same chunks will be read by all MPI + ranks in the I/O operation. However, this was only a partial solution + that wasn't granular enough. + + This change now unifies the handling of the file-global flag and the + API context-level flag for collective metadata reads in order to + simplify querying of the true status of collective metadata reads. Thus, + collective metadata reads are once again enabled for chunked dataset + raw data I/O, but manually controlled at places where some processing + occurs on MPI rank 0 only and would cause issues when collective + metadata reads are enabled. + + (JTH - 2021/11/16, HDFFV-10501/HDFFV-10562) + + - Fixed several potential MPI deadlocks in library failure conditions + + In the parallel library, there were several places where MPI rank 0 + could end up skipping past collective MPI operations when some failure + occurs in rank 0-specific processing. This would lead to deadlocks + where rank 0 completes an operation while other ranks wait in the + collective operation. These places have been rewritten to have rank 0 + push an error and try to cleanup after the failure, then continue to + participate in the collective operation to the best of its ability. + + (JTH - 2021/11/09) + + - Fixed an issue with collective metadata reads being permanently disabled + after a dataset chunk lookup operation. This would usually cause a + mismatched MPI_Bcast and MPI_ERR_TRUNCATE issue in the library for + simple cases of H5Dcreate() -> H5Dwrite() -> H5Dcreate(). + + (JTH - 2021/11/08, HDFFV-11090) + + Java Library + ------------ + - None + + + Configuration + ------------- + - Reworked corrected path searched by CMake find_package command + + The install path for cmake find_package files had been changed to use + "share/cmake" + for all platforms. However setting the HDF5_ROOT variable failed to locate + the configuration files. The build variable HDF5_INSTALL_CMAKE_DIR is now + set to the /cmake folder. The location of the configuration + files can still be specified by the "HDF5_DIR" variable. + + (ADB - 2022/03/11) + + + Tools + ----- + - None + + + Fortran API + ----------- + - None + + + High-Level Library + ------------------ + - Fixed HL_test_packet, test for packet table vlen of vlen. + + Incorrect length assignment. + + (ADB - 2021/10/14) + + + Fortran High-Level APIs + ----------------------- + - None + + + Documentation + ------------- + - None + + + F90 APIs + -------- + - None + + + C++ APIs + -------- + - None + + + Testing + ------- + - None + + +Platforms Tested +=================== + + Linux 5.16.14-200.fc35 GNU gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) + #1 SMP x86_64 GNU/Linux GNU Fortran (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) + Fedora35 clang version 13.0.0 (Fedora 13.0.0-3.fc35) + (cmake and autotools) + + Linux 5.11.0-34-generic GNU gcc (GCC) 9.3.0-17ubuntu1 + #36-Ubuntu SMP x86_64 GNU/Linux GNU Fortran (GCC) 9.3.0-17ubuntu1 + Ubuntu 20.04 Ubuntu clang version 10.0.0-4 + (cmake and autotools) + + Linux-4.14.0-115.21.2 spectrum-mpi/rolling-release + #1 SMP ppc64le GNU/Linux clang 8.0.1, 11.0.1 + (lassen) GCC 7.3.1 + XL 2019.02.07 + (cmake) + + Linux-5.3.18-24.96-default cray-mpich/7.7.19 + #1 SMP x86_64 GNU/Linux GCC 8.3.0, 11.2.0 + (cori) Intel (R) Version 19.1.3.304 + (cmake) + + Linux-4.12.14-197.86-default cray-mpich/7.7.16 + # 1SMP x86_64 GNU/Linux GCC 7.3.0, 9.3.0, 10.2.0 + (mutrino) Intel (R) Version 17.0.4, 18.0.5, 19.1.3 + (cmake) + + Linux 3.10.0-1160.49.1.1chaos openmpi-intel/4.1 + #1 SMP x86_64 GNU/Linux Intel (R) Version 18.0.5, 19.1.2 + (chama) + + Linux 3.10.0-1160.36.2.el7.ppc64 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + #1 SMP ppc64be GNU/Linux g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + Power8 (echidna) GNU Fortran (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) + + Linux 3.10.0-1160.24.1.el7 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + Centos7 Version 4.8.5 20150623 (Red Hat 4.8.5-4) + (jelly/kituo/moohan) Version 4.9.3, Version 5.3.0, Version 6.3.0, + Version 7.2.0, Version 8.3.0, Version 9.1.0 + Version 10.2.0 + Intel(R) C (icc), C++ (icpc), Fortran (icc) + compilers: + Version 17.0.0.098 Build 20160721 + GNU C (gcc) and C++ (g++) 4.8.5 compilers + with NAG Fortran Compiler Release 6.1(Tozai) + Intel(R) C (icc) and C++ (icpc) 17.0.0.098 compilers + with NAG Fortran Compiler Release 6.1(Tozai) + MPICH 3.1.4 compiled with GCC 4.9.3 + MPICH 3.3 compiled with GCC 7.2.0 + OpenMPI 2.1.6 compiled with icc 18.0.1 + OpenMPI 3.1.3 and 4.0.0 compiled with GCC 7.2.0 + PGI C, Fortran, C++ for 64-bit target on + x86_64; + Version 19.10-0 + + Linux-3.10.0-1160.53.1.1chaos openmpi-4.1.2 + #1 SMP x86_64 GNU/Linux clang 6.0.0, 11.0.1 + (quartz) GCC 8.3.1, 10.2.1 + Intel 16.0.4, 18.0.2, 19.0.4 + + macOS Apple M1 11.6 Apple clang version 12.0.5 (clang-1205.0.22.11) + Darwin 20.6.0 arm64 gfortran GNU Fortran (Homebrew GCC 11.2.0) 11.1.0 + (macmini-m1) Intel icc/icpc/ifort version 2021.3.0 20210609 + + macOS Big Sur 11.3.1 Apple clang version 12.0.5 (clang-1205.0.22.9) + Darwin 20.4.0 x86_64 gfortran GNU Fortran (Homebrew GCC 10.2.0_3) 10.2.0 + (bigsur-1) Intel icc/icpc/ifort version 2021.2.0 20210228 + + macOS High Sierra 10.13.6 Apple LLVM version 10.0.0 (clang-1000.10.44.4) + 64-bit gfortran GNU Fortran (GCC) 6.3.0 + (bear) Intel icc/icpc/ifort version 19.0.4.233 20190416 + + macOS Sierra 10.12.6 Apple LLVM version 9.0.0 (clang-900.39.2) + 64-bit gfortran GNU Fortran (GCC) 7.4.0 + (kite) Intel icc/icpc/ifort version 17.0.2 + + Mac OS X El Capitan 10.11.6 Apple clang version 7.3.0 from Xcode 7.3 + 64-bit gfortran GNU Fortran (GCC) 5.2.0 + (osx1011test) Intel icc/icpc/ifort version 16.0.2 + + Linux 2.6.32-573.22.1.el6 GNU C (gcc), Fortran (gfortran), C++ (g++) + #1 SMP x86_64 GNU/Linux compilers: + Centos6 Version 4.4.7 20120313 + (platypus) Version 4.9.3, 5.3.0, 6.2.0 + MPICH 3.1.4 compiled with GCC 4.9.3 + PGI C, Fortran, C++ for 64-bit target on + x86_64; + Version 19.10-0 + + Windows 10 x64 Visual Studio 2015 w/ Intel C/C++/Fortran 18 (cmake) + Visual Studio 2017 w/ Intel C/C++/Fortran 19 (cmake) + Visual Studio 2019 w/ clang 12.0.0 + with MSVC-like command-line (C/C++ only - cmake) + Visual Studio 2019 + w/ Intel C/C++/Fortran oneAPI 2021(cmake) + Visual Studio 2019 w/ MSMPI 10.1 (C only - cmake) + + +Known Problems +============== + Setting a variable-length dataset fill value will leak the memory allocated + for the p field of the hvl_t struct. A fix is in progress for this. + HDFFV-10840 + + CMake files do not behave correctly with paths containing spaces. + Do not use spaces in paths because the required escaping for handling spaces + results in very complex and fragile build files. + ADB - 2019/05/07 + + At present, metadata cache images may not be generated by parallel + applications. Parallel applications can read files with metadata cache + images, but since this is a collective operation, a deadlock is possible + if one or more processes do not participate. + + CPP ptable test fails on both VS2017 and VS2019 with Intel compiler, JIRA + issue: HDFFV-10628. This test will pass with VS2015 with Intel compiler. + + The subsetting option in ph5diff currently will fail and should be avoided. + The subsetting option works correctly in serial h5diff. + + Known problems in previous releases can be found in the HISTORY*.txt files + in the HDF5 source. Please report any new problems found to + help@hdfgroup.org. + + +CMake vs. Autotools installations +================================= +While both build systems produce similar results, there are differences. +Each system produces the same set of folders on linux (only CMake works +on standard Windows); bin, include, lib and share. Autotools places the +COPYING and RELEASE.txt file in the root folder, CMake places them in +the share folder. + +The bin folder contains the tools and the build scripts. Additionally, CMake +creates dynamic versions of the tools with the suffix "-shared". Autotools +installs one set of tools depending on the "--enable-shared" configuration +option. + build scripts + ------------- + Autotools: h5c++, h5cc, h5fc + CMake: h5c++, h5cc, h5hlc++, h5hlcc + +The include folder holds the header files and the fortran mod files. CMake +places the fortran mod files into separate shared and static subfolders, +while Autotools places one set of mod files into the include folder. Because +CMake produces a tools library, the header files for tools will appear in +the include folder. + +The lib folder contains the library files, and CMake adds the pkgconfig +subfolder with the hdf5*.pc files used by the bin/build scripts created by +the CMake build. CMake separates the C interface code from the fortran code by +creating C-stub libraries for each Fortran library. In addition, only CMake +installs the tools library. The names of the szip libraries are different +between the build systems. + +The share folder will have the most differences because CMake builds include +a number of CMake specific files for support of CMake's find_package and support +for the HDF5 Examples CMake project. + +The issues with the gif tool are: + HDFFV-10592 CVE-2018-17433 + HDFFV-10593 CVE-2018-17436 + HDFFV-11048 CVE-2020-10809 +These CVE issues have not yet been addressed and can be avoided by not building +the gif tool. Disable building the High-Level tools with these options: + autotools: --disable-hltools + cmake: HDF5_BUILD_HL_TOOLS=OFF + + + %%%%1.10.8%%%% HDF5 version 1.10.8 released on 2021-10-22 diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 5223811..6ec3bc0 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -1,4 +1,4 @@ -HDF5 version 1.10.10-2 currently under development +HDF5 version 1.10.11-1 currently under development ================================================================================ @@ -36,7 +36,7 @@ CONTENTS - New Features - Support for new platforms and languages -- Bug Fixes since HDF5-1.10.9 +- Bug Fixes since HDF5-1.10.10 - Supported Platforms - Tested Configuration Features Summary - More Tested Platforms @@ -49,78 +49,7 @@ New Features Configuration: ------------- - - Removal of dmalloc support - - The ability to build with dmalloc support has been removed along with - the following configure options: - - Autotools: - --with-dmalloc= - - CMake: - HDF5_ENABLE_USING_DMALLOC - - (DER - 2023/03/17) - - - Allow parallel and threadsafe to be built - - In the past, we required --enable-unsupported (Autotools) or - ALLOW_UNSUPPORTED (CMake) in order to build the parallel library with - thread-safety support. The parallel, thread-safe library can now be - built without these options. - - (DER - 2023/03/17) - - - Added new option to build libaec and zlib inline with CMake. - - Using the CMake FetchContent module, the external filters can populate - content at configure time via any method supported by the ExternalProject - module. Whereas ExternalProject_Add() downloads at build time, the - FetchContent module makes content available immediately, allowing the - configure step to use the content in commands like add_subdirectory(), - include() or file() operations. - - The HDF options (and defaults) for using this are: - BUILD_SZIP_WITH_FETCHCONTENT:BOOL=OFF - LIBAEC_USE_LOCALCONTENT:BOOL=OFF - BUILD_ZLIB_WITH_FETCHCONTENT:BOOL=OFF - ZLIB_USE_LOCALCONTENT:BOOL=OFF - - The CMake variables to control the path and file names: - LIBAEC_TGZ_ORIGPATH:STRING - LIBAEC_TGZ_ORIGNAME:STRING - ZLIB_TGZ_ORIGPATH:STRING - ZLIB_TGZ_ORIGNAME:STRING - - See the CMakeFilters.cmake and config/cmake/cacheinit.cmake files for usage. - - (ADB - 2023/02/21) - - - Add new CMake configuration variable HDF5_USE_GNU_DIRS - - HDF5_USE_GNU_DIRS (default OFF) selects the use of GNU Coding Standard install - directory variables by including the CMake module, GNUInstallDirs(see CMake - documentation for details). The HDF_DIR_PATHS macro in the HDFMacros.cmake file - sets various PATH variables for use during the build, test and install processes. - By default, the historical settings for these variables will be used. - - (ADB - 2022/10/21, GH-2175, GH-1716) - - - Correct the usage of CMAKE_Fortran_MODULE_DIRECTORY and where to - install Fortran mod files. - - The Fortran modules files, ending in .mod are files describing a - Fortran 90 (and above) module API and ABI. These are not like C - header files describing an API, they are compiler dependent and - arch dependent, and not easily readable by a human being. They are - nevertheless searched for in the includes directories by gfortran - (in directories specified with -I). - - Autotools configure uses the -fmoddir option to specify the folder. - CMake will use "mod" folder by default unless overridden by the CMake - variable; HDF5_INSTALL_MODULE_DIR. - - (ADB - 2022/07/21) + - Library: @@ -145,78 +74,12 @@ New Features Java Library: ------------- - - HDF5GroupInfo class has been deprecated. - - This class assumes that an object can contain four values which uniquely identify an - object among those HDF5 files which are open. This is no longer valid in future - HDF5 releases. - - (ADB - 2023/03/27) - - - Added version of H5Rget_name to return the name as a Java string. - - Other functions that get_name process the get_size then get the name - within the JNI implementation. Now H5Rget_name has a H5Rget_name_string. - - (ADB - 2022/07/12) - - - Added reference support to H5A and H5D read write vlen JNI functions. - - Added the implementation to handle VL references as an Array of Lists - of byte arrays. - - The JNI wrappers translate the Array of Lists to/from the hvl_t vlen - structures. The wrappers use the specified datatype arguments for the - List type translation, it is expected that the Java type is correct. - - (ADB - 2022/07/11, HDFFV-11318) - - - H5A and H5D read write vlen JNI functions were incorrect. - - Corrected the vlen function implementations for the basic primitive types. - The VLStrings functions now correctly use the implementation that had been - the VL functions. (VLStrings functions did not have an implementation.) - The new VL functions implementation now expect an Array of Lists between - Java and the JNI wrapper. - - The JNI wrappers translate the Array of Lists to/from the hvl_t vlen - structures. The wrappers use the specified datatype arguments for the - List type translation, it is expected that the Java type is correct. - - (ADB - 2022/07/07, HDFFV-11310) - - - H5A and H5D read write JNI functions had flawed vlen datatype check. - - Adapted tools function for JNI utils file. This reduced multiple calls - to a single check and variable. The variable can then be used to call - the H5Treclaim function. Adjusted existing test and added new test. - - (ADB - 2022/06/22) + - Tools: ------ - - Building h5perf/h5perf_serial in "standalone mode" has been removed - - Building h5perf separately from the library was added circa 2008 - in HDF5 1.6.8. It's unclear what purpose this serves and the current - implementation is currently broken. The existing files require - H5private.h and the symbols we use to determine how the copied - platform-independence scheme should be used come from H5pubconf.h, - which may not match the compiler being used to build standalone h5perf. - - Due to the maintenance overhead and lack of a clear use case, support - for building h5perf and h5perf_serial separately from the HDF5 library - has been removed. - - (DER - 2023/03/20) - - - The perf tool has been removed - - The small `perf` tool didn't really do anything special and the name - conflicts with gnu's perf tool. - - (DER - 2023/03/20, GitHub #1787) + - High-Level APIs: @@ -244,96 +107,11 @@ Support for new platforms, languages and compilers - -Bug Fixes since HDF5-1.10.9 release +Bug Fixes since HDF5-1.10.10 release =================================== Library ------- - - Fixed a memory corruption issue that can occur when reading - from a dataset using a hyperslab selection in the file - dataspace and a point selection in the memory dataspace - - When reading from a dataset using a hyperslab selection in - the dataset's file dataspace and a point selection in the - dataset's memory dataspace where the file dataspace's "rank" - is greater than the memory dataspace's "rank", memory corruption - could occur due to an incorrect number of selection points - being copied when projecting the point selection onto the - hyperslab selection's dataspace. - - (JTH - 2023/03/23) - - - Fix CVE-2021-37501 / GHSA-rfgw-5vq3-wrjf - - Check for overflow when calculating on-disk attribute data size. - - 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. - - (EFE - 2023/02/11 GH-2458) - - - Fixed an issue with variable length attributes - - Previously, if a variable length attribute was held open while its file - was opened through another handle, the same attribute was opened through - the second file handle, and the second file and attribute handles were - closed, attempting to write to the attribute through the first handle - would cause an error. - - (NAF - 2022/10/24) - - - Fixed an issue with hyperslab selections - - Previously, when combining hyperslab selections, it was possible for the - library to produce an incorrect combined selection. - - (NAF - 2022/09/25) - - - Fixed an issue with attribute type conversion with compound datatypes - - Previously, when performing type conversion for attribute I/O with a - compound datatype, the library would not fill the background buffer with - the contents of the destination, potentially causing data to be lost when - only writing to a subset of the compound fields. - - (NAF - 2022/08/22, GitHub #2016) - - - Modified H5Fstart_swmr_write() to preserve DAPL properties - - Internally, H5Fstart_swmr_write() closes and reopens the file in question - as part of its process for making the file SWMR-safe. Previously, when - the library reopened the file it would simply use the default access - properties. Modified the library to instead save these properties and use - them when reopening the file. - - (NAF - 2022/07/18, HDFFV-11308) - - - Converted an assertion on (possibly corrupt) file contents to a normal - error check - - Previously, the library contained an assertion check that a read superblock - doesn't contain a superblock extension message when the superblock - version < 2. When a corrupt HDF5 file is read, this assertion can be triggered - in debug builds of HDF5. In production builds, this situation could cause - either a library error or a crash, depending on the platform. - - (JTH - 2022/07/08, HDFFV-11316, HDFFV-11317) - - - Memory leak - - A memory leak was observed with variable-length fill value in - H5O_fill_convert() function in H5Ofill.c. The leak is - manifested by running valgrind on test/set_extent.c. - - Previously, fill->buf is used for datatype conversion - if it is large enough and the variable-length information - is therefore lost. A buffer is now allocated regardless - so that the element in fill->buf can later be reclaimed. - - (VC - 2022/10/10, HDFFV-10840) + - Java Library @@ -343,62 +121,12 @@ Bug Fixes since HDF5-1.10.9 release Configuration ------------- - - Correct the CMake generated pkg-config file - - The pkg-config file generated by CMake had the order and placement of the - libraries wrong. Also added support for debug library names. - - Changed the order of Libs.private libraries so that dependencies come after - dependents. Did not move the compression libraries into Requires.private - because there was not a way to determine if the compression libraries had - supported pkconfig files. Still recommend that the CMake config file method - be used for building projects with CMake. - - (ADB - 2023/02/16 GH-1546,GH-2259) - - - Remove Javadoc generation - - The use of doxygen now supersedes the requirement to build javadocs. We do not - have the resources to continue to support two documentation methods and have - chosen doxygen as our standard. - - (ADB - 2022/12/19) - - - Change the default for building the high-level tools - - The gif2hdf5 and hdf2gif high-level tools are deprecated and will be removed - in a future release. The default build setting for them have been changed from enabled - to disabled. A user can enable the build of these tools if needed. - autotools: --enable-hlgiftools - cmake: HDF5_BUILD_HL_GIF_TOOLS=ON - - (ADB - 2022/12/16) - - - Change the settings of the *pc files to use the correct format - - The pkg-config files generated by CMake uses incorrect syntax for the 'Requires' - settings. Changing the set to use 'lib-name = version' instead 'lib-name-version' - fixes the issue - - (ADB - 2022/12/06 HDFFV-11355) - - - Move MPI libraries link from PRIVATE to PUBLIC - - The install dependencies were not including the need for MPI libraries when - an application or library was built with the C library. Also updated the - CMake target link command to use the newer style MPI::MPI_C link variable. - - (ADB - 2022/20/27) + - Tools ----- - - Fix h5repack to only print output when verbose option is selected - - When timing option was added to h5repack, the check for verbose was - incorrectly implemented. - - (ADB - 2022/12/02, GH #2270) + - Performance @@ -423,9 +151,7 @@ Bug Fixes since HDF5-1.10.9 release Documentation ------------- - - Doxygen updated with recent Fortran changes. - - (ADB - 2022/09/09) + - F90 APIs diff --git a/src/H5public.h b/src/H5public.h index 07747de..d2c1f2e 100644 --- a/src/H5public.h +++ b/src/H5public.h @@ -138,15 +138,15 @@ extern "C" { /** * For tweaks, bug-fixes, or development */ -#define H5_VERS_RELEASE 10 +#define H5_VERS_RELEASE 11 /** * For pre-releases like \c snap0. Empty string for official releases. */ -#define H5_VERS_SUBRELEASE "2" +#define H5_VERS_SUBRELEASE "1" /** * Full version string */ -#define H5_VERS_INFO "HDF5 library version: 1.10.10-2" +#define H5_VERS_INFO "HDF5 library version: 1.10.11-1" #define H5check() H5check_version(H5_VERS_MAJOR, H5_VERS_MINOR, H5_VERS_RELEASE) diff --git a/tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl b/tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl index 5b67a3a..1ec77e7 100644 --- a/tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl +++ b/tools/test/h5repack/testfiles/h5repack_layout.h5-plugin_version_test.ddl @@ -11,7 +11,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -33,7 +33,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -55,7 +55,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -77,7 +77,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -99,7 +99,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -121,7 +121,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { @@ -143,7 +143,7 @@ GROUP "/" { USER_DEFINED_FILTER { FILTER_ID 260 COMMENT dynlib4 - PARAMS { 9 1 10 10 } + PARAMS { 9 1 10 11 } } } FILLVALUE { -- cgit v0.12