I am requesting an update to highfive in order to build cantera with hdf5 support. The current version (2.3.1) in rawhide does not meet the requirement of highfive version >= 2.5. I am unfortunately having trouble getting the updated build to run properly (unfamiliarity with CMake) and so have not submitted a pull request - I think it should otherwise be very simple since this is a header-only library. Thank you Reproducible: Always
I believe this is the relevant portion of the build log: ``` CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- The C compiler identification is GNU 13.2.1 -- The CXX compiler identification is GNU 13.2.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found HDF5: /usr/lib64/libhdf5.so (found version "1.12.1") -- Found Boost: /usr/include (found version "1.81.0") found components: system serialization -- Found Eigen 3.4.0: /usr/include/eigen3 -- Performing Test arch_native_supported -- Performing Test arch_native_supported - Success -- Found OpenCV: /usr (found version "4.8.0") CMake Warning at CMakeLists.txt:127 (find_package): By not providing "FindCatch2.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Catch2", but CMake did not find one. Could not find a package configuration file provided by "Catch2" with any of the following names: Catch2Config.cmake catch2-config.cmake Add the installation prefix of "Catch2" to CMAKE_PREFIX_PATH or set "Catch2_DIR" to a directory containing one of the above files. If "Catch2" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred! CMake Error at CMakeLists.txt:129 (message): Please provide a Catch2 installation or clone the submodule ```
On further review, catch2 up to latest v2 is available in Fedora and can be added to the BuildRequires; this is adequate to build v2.6.2 (latest 2.6.x) of HighFive as v2.7.0+ require v3 of catch2 Updated spec: https://src.fedoraproject.org/fork/fuller/rpms/highfive/raw/rawhide/f/highfive.spec (some tests fail - not sure why) Build log: https://fuller.fedorapeople.org/highfive-2.6.2-build.log
I updated catch2 to 3.4.0 and then built highfive using the updated catch2. That looks rather promising. Only two tests failed, which need looking into: 11/288 Test #11: Test default constructors .......................................***Failed 0.01 sec HDF5-DIAG: Error detected in HDF5 (1.12.1) thread 0: #000: ../../src/H5F.c line 532 in H5Fcreate(): unable to create file major: File accessibility minor: Unable to open file #001: ../../src/H5VLcallback.c line 3282 in H5VL_file_create(): file create failed major: Virtual Object Layer minor: Unable to create file #002: ../../src/H5VLcallback.c line 3248 in H5VL__file_create(): file create failed major: Virtual Object Layer minor: Unable to create file #003: ../../src/H5VLnative_file.c line 63 in H5VL__native_file_create(): unable to create file major: File accessibility minor: Unable to open file #004: ../../src/H5Fint.c line 1898 in H5F_open(): unable to lock the file major: File accessibility minor: Unable to lock file #005: ../../src/H5FD.c line 1625 in H5FD_lock(): driver lock request failed major: Virtual File Layer minor: Unable to lock file #006: ../../src/H5FDsec2.c line 1002 in H5FD__sec2_lock(): unable to lock file, errno = 11, error message = 'Resource temporarily unavailable' major: Virtual File Layer minor: Unable to lock file Filters: "Test default constructors" Randomness seeded to: 627710425 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tests_high_five_base is a Catch2 v3.4.0 host application. Run with -? for options ------------------------------------------------------------------------------- Test default constructors ------------------------------------------------------------------------------- /builddir/build/BUILD/HighFive-2.7.1/tests/unit/tests_high_five_base.cpp:320 ............................................................................... /builddir/build/BUILD/HighFive-2.7.1/tests/unit/tests_high_five_base.cpp:320: FAILED: due to unexpected exception with message: Unable to create file h5_group_test.h5 (Virtual File Layer) Unable to lock file =============================================================================== test cases: 1 | 1 failed assertions: 1 | 1 failed 266/288 Test #267: H5Easy_view .....................................................***Failed 0.01 sec HDF5-DIAG: Error detected in HDF5 (1.12.1) thread 0: #000: ../../src/H5F.c line 532 in H5Fcreate(): unable to create file major: File accessibility minor: Unable to open file #001: ../../src/H5VLcallback.c line 3282 in H5VL_file_create(): file create failed major: Virtual Object Layer minor: Unable to create file #002: ../../src/H5VLcallback.c line 3248 in H5VL__file_create(): file create failed major: Virtual Object Layer minor: Unable to create file #003: ../../src/H5VLnative_file.c line 63 in H5VL__native_file_create(): unable to create file major: File accessibility minor: Unable to open file #004: ../../src/H5Fint.c line 1898 in H5F_open(): unable to lock the file major: File accessibility minor: Unable to lock file #005: ../../src/H5FD.c line 1625 in H5FD_lock(): driver lock request failed major: Virtual File Layer minor: Unable to lock file #006: ../../src/H5FDsec2.c line 1002 in H5FD__sec2_lock(): unable to lock file, errno = 11, error message = 'Resource temporarily unavailable' major: Virtual File Layer minor: Unable to lock file Filters: "H5Easy_view" Randomness seeded to: 2623366601 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tests_high_five_easy is a Catch2 v3.4.0 host application. Run with -? for options ------------------------------------------------------------------------------- H5Easy_view ------------------------------------------------------------------------------- /builddir/build/BUILD/HighFive-2.7.1/tests/unit/tests_high_five_easy.cpp:227 ............................................................................... /builddir/build/BUILD/HighFive-2.7.1/tests/unit/tests_high_five_easy.cpp:227: FAILED: due to unexpected exception with message: Unable to create file test.h5 (Virtual File Layer) Unable to lock file =============================================================================== test cases: 1 | 1 failed assertions: 1 | 1 failed Looking at catch2, it has a lot of dependent packages: CTML Pencil2D cli11 contour-terminal cppcodec cppzmq drat2er e-antic gulrak-filesystem libosmium libsemigroups libsonata libunicode morphio mrchem mustache nuspell observable osm2pgsql osmium-tool protozero rstudio rttr semver tomlplusplus waybar So going from 2.x. to 3.x we need to check if these still build. I created a side tag (f40-build-side-73081) and build catch2 3.4.0 in it. I'll try scratch builds of the dependent packages as well to see what the fallout is.
Catch2 v3 is already packaged as https://src.fedoraproject.org/rpms/catch; https://src.fedoraproject.org/rpms/catch2 is the compat package. Yes, itβs confusing, but the confusion was created by upstream when they decided to release version 3 of Catch2, which was the successor to Catch version 1...
Thanks @music. I wasn't aware. Confusion aside, this makes things much easier and saves me some work.
Update for highfive (version 2.7.1) has landed in rawhide. F39 will follow shortly.
thanks @sandro - could you create sidetags for the new highfive that I can use to rebuild cantera against it in the same update?
Well, I haven't built highfive for f39, yet. I'd assume you want a side tag for that branch. But since you are the one updating dependent packages, it's best for you to create a side tag yourself, since, as I've recently learned, only the side tag owner can merge it later. I do have a Copr repo with the updated highfive that you could build into: https://copr.fedorainfracloud.org/coprs/gui1ty/neuro-sig/builds/ I can grant you access, but you need to request it yourself. If you'd rather use a side tag, I will be happy to build highfive in that side tag for you. But you could also do that yourself: koji build $SIDETAG git+https://src.fedoraproject.org/rpms/highfive.git#6e4ae0315ed68a55375c810a91d5e42f2d206a92