diff --git a/hdf5-1.10.8-pr1494-fix-release-check-version.patch b/hdf5-1.10.8-pr1494-fix-release-check-version.patch new file mode 100644 index 0000000..3105693 --- /dev/null +++ b/hdf5-1.10.8-pr1494-fix-release-check-version.patch @@ -0,0 +1,127 @@ +From 5595f1be4085006f62ebc603bf3fa52020205e48 Mon Sep 17 00:00:00 2001 +From: Allen Byrne +Date: Fri, 11 Mar 2022 14:11:31 -0600 +Subject: [PATCH 1/2] Fix release check version logic #1438 + +--- + config/cmake/scripts/HDF5config.cmake | 2 +- + release_docs/RELEASE.txt | 17 +++++++++++++++++ + src/H5.c | 14 ++++++-------- + test/CMakeTests.cmake | 2 +- + 4 files changed, 25 insertions(+), 10 deletions(-) + +Index: hdf5-1.10.8/release_docs/RELEASE.txt +=================================================================== +--- hdf5-1.10.8.orig/release_docs/RELEASE.txt ++++ hdf5-1.10.8/release_docs/RELEASE.txt +@@ -274,7 +274,23 @@ New Features + (ADB - 2020/09/24) + + Library: +- -------- ++ - 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) ++ + - Change how the release part of version, in major.minor.release is checked + for compatibility + +Index: hdf5-1.10.8/src/H5.c +=================================================================== +--- hdf5-1.10.8.orig/src/H5.c ++++ hdf5-1.10.8/src/H5.c +@@ -821,6 +821,7 @@ H5check_version(unsigned majnum, unsigne + static int checked = 0; /* If we've already checked the version info */ + static unsigned int disable_version_check = 0; /* Set if the version check should be disabled */ + static const char * version_mismatch_warning = VERSION_MISMATCH_WARNING; ++ static const char * release_mismatch_warning = RELEASE_MISMATCH_WARNING; + herr_t ret_value = SUCCEED; /* Return value */ + + FUNC_ENTER_API_NOINIT_NOERR_NOFS +@@ -841,10 +842,7 @@ H5check_version(unsigned majnum, unsigne + } + + /* H5_VERS_MAJOR and H5_VERS_MINOR must match */ +- /* Cast relnum to int to avoid warning for unsigned < 0 comparison +- * in first release versions */ +- if (H5_VERS_MAJOR != majnum || H5_VERS_MINOR != minnum || H5_VERS_RELEASE > (int)relnum) { +- ++ if (H5_VERS_MAJOR != majnum || H5_VERS_MINOR != minnum) { + switch (disable_version_check) { + case 0: + HDfprintf(stderr, "%s%s", version_mismatch_warning, +@@ -879,7 +877,7 @@ H5check_version(unsigned majnum, unsigne + break; + } /* end switch */ + +- } /* end if (H5_VERS_MAJOR != majnum || H5_VERS_MINOR != minnum || H5_VERS_RELEASE > relnum) */ ++ } /* end if (H5_VERS_MAJOR != majnum || H5_VERS_MINOR != minnum) */ + + /* H5_VERS_RELEASE should be compatible, we will only add checks for exceptions */ + if (H5_VERS_RELEASE != relnum) { +@@ -889,7 +887,7 @@ H5check_version(unsigned majnum, unsigne + switch (disable_version_check) { + case 0: + HDfprintf( +- stderr, "%s%s", version_mismatch_warning, ++ stderr, "%s%s", release_mismatch_warning, + "You can, at your own risk, disable this warning by setting the environment\n" + "variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'.\n" + "Setting it to 2 or higher will suppress the warning messages totally.\n"); +@@ -908,7 +906,7 @@ H5check_version(unsigned majnum, unsigne + "%s'HDF5_DISABLE_VERSION_CHECK' " + "environment variable is set to %d, application will\n" + "continue at your own risk.\n", +- version_mismatch_warning, disable_version_check); ++ release_mismatch_warning, disable_version_check); + /* Mention the versions we are referring to */ + HDfprintf(stderr, "Headers are %u.%u.%u, library is %u.%u.%u\n", majnum, minnum, + relnum, (unsigned)H5_VERS_MAJOR, (unsigned)H5_VERS_MINOR, +@@ -986,7 +984,7 @@ done: + /*------------------------------------------------------------------------- + * Function: H5close + * +- * Purpose: Terminate the library and release all resources. ++ * Purpose: Terminate the library and release all resources. + * + * Return: Non-negative on success/Negative on failure + * +Index: hdf5-1.10.8/test/CMakeTests.cmake +=================================================================== +--- hdf5-1.10.8.orig/test/CMakeTests.cmake ++++ hdf5-1.10.8/test/CMakeTests.cmake +@@ -704,7 +704,7 @@ set_tests_properties (H5TEST-tcheck_vers + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST + WILL_FAIL "true" + ) +-# release + 1 should pass ++# release + 1 should pass on non-develop branches + add_test (NAME H5TEST-tcheck_version-release COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $ "-tr") + set_tests_properties (H5TEST-tcheck_version-release PROPERTIES + WORKING_DIRECTORY ${HDF5_TEST_BINARY_DIR}/H5TEST +Index: hdf5-1.10.8/config/cmake/scripts/HDF5config.cmake +=================================================================== +--- hdf5-1.10.8.orig/config/cmake/scripts/HDF5config.cmake ++++ hdf5-1.10.8/config/cmake/scripts/HDF5config.cmake +@@ -163,7 +163,7 @@ if (NOT DEFINED HPC) + set (SITE_COMPILER_NAME "vs2012") + set (SITE_COMPILER_VERSION "11") + else () +- message (FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2017, or VS201764, VS2015, VS201564, VS2013, VS201364") ++ message (FATAL_ERROR "Invalid BUILD_GENERATOR must be - Unix, VS2017, VS201764, VS2015, VS201564, VS2013, VS201364") + endif () + ## Set the following to unique id your computer ## + set (CTEST_SITE "WIN7${BUILD_GENERATOR}.XXXX") diff --git a/hdf5.changes b/hdf5.changes index b42508d..2a421db 100644 --- a/hdf5.changes +++ b/hdf5.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Mar 31 08:25:44 UTC 2022 - Ben Greiner + +- Add hdf5-1.10.8-pr1494-fix-release-check-version.patch + * boo#1179521, boo#1196682, gh#HDFGroup/hdf5#1494 + * Avoids package crashes due to an overeager version check. + Packages depending on the shared libraries are not being + rebuilt in Factory after a patchlevel version bump of hdf5 + without SONAME changes. + ------------------------------------------------------------------- Wed Feb 16 11:18:17 UTC 2022 - Atri Bhattacharya diff --git a/hdf5.spec b/hdf5.spec index 9e75349..f19c39e 100644 --- a/hdf5.spec +++ b/hdf5.spec @@ -1,5 +1,5 @@ # -# spec file for package hdf5 +# spec file # # Copyright (c) 2022 SUSE LLC # @@ -436,6 +436,8 @@ Patch6: hdf5-Remove-timestamps-from-binaries.patch # Could be ported but it's unknown if it's still needed Patch7: hdf5-mpi.patch Patch8: Disable-phdf5-tests.patch +# boo#1179521, boo#1196682, gh#HDFGroup/hdf5#1494 +Patch9: hdf5-1.10.8-pr1494-fix-release-check-version.patch BuildRequires: fdupes %if 0%{?use_sz2} BuildRequires: libsz2-devel @@ -675,6 +677,7 @@ library packages. %patch6 -p1 # %%patch7 -p1 %patch8 -p1 +%patch9 -p1 %if %{without hpc} # baselibs looks different for different flavors - generate it on the fly