## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 2; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global _description %{expand: HighFive is a modern header-only C++11 friendly interface for libhdf5. HighFive supports STL vector/string, Boost::UBLAS, Boost::Multi-array and Xtensor. It handles C++ from/to HDF5 with automatic type mapping. HighFive does not require additional libraries (see dependencies). It integrates nicely with other CMake projects by defining (and exporting) a HighFive target. Design: - Simple C++-ish minimalist interface - No other dependency than libhdf5 - Zero overhead - Support C++11 Feature support: - create/read/write files, datasets, attributes, groups, dataspaces. - automatic memory management / ref counting - automatic conversion of std::vector and nested std::vector from/to any dataset with basic types - automatic conversion of std::string to/from variable length string dataset - selection() / slice support - parallel Read/Write operations from several nodes with Parallel HDF5 - Advanced types: Compound, Enum, Arrays of Fixed-length strings, References etc… (see ChangeLog) Known flaws: - HighFive is not thread-safe. At best it has the same limitations as the HDF5 library. However, HighFive objects modify their members without protecting these writes. Users have reported that HighFive is not thread-safe even when using the threadsafe HDF5 library, e.g., https://github.com/BlueBrain/HighFive/discussions/675. - Eigen support in core HighFive is broken. See https://github.com/BlueBrain/HighFive/issues/532. H5Easy is not affected. - The support of fixed length strings isn’t ideal.} %bcond tests 1 # Header only, so no debuginfo is generated %global debug_package %{nil} Name: highfive Version: 2.10.1 Release: %autorelease Summary: Header-only C++ HDF5 interface # SPDX License: BSL-1.0 URL: https://highfive-devs.github.io/highfive/ Source: https://github.com/highfive-devs/highfive/archive/v%{version}/highfive-%{version}.tar.gz # Downstream-only: Patch all cmake_minimum_required from 3.1 to 3.5 # # This fixes compatibility with CMake 4. It does not make sense to offer # this upstream because a larger CMake modernization effort was already # implemented for the upcoming 3.0.0 release. Patch: 0001-Downstream-only-Patch-all-cmake_minimum_required-fro.patch # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: catch-devel # Technically optional, enabled by default # Our choice vs. make BuildRequires: ninja-build BuildRequires: hdf5-devel # Optional but included in Fedora, so we use these. The -static versions are # required by guidelines for tracking header-only libraries BuildRequires: boost-devel BuildRequires: (cmake(eigen3) with eigen3-static) BuildRequires: (cmake(xtensor) with xtensor-static) BuildRequires: cmake(opencv) %description %_description %package devel Summary: Development files for HighFive Provides: highfive%{?_isa} = %{version}-%{release} Provides: highfive-static%{?_isa} = %{version}-%{release} # Unarched version is needed since arched BuildRequires must not be used Provides: highfive-static = %{version}-%{release} Requires: hdf5-devel # Optional, but we want -devel package users to have all features available. Requires: boost-devel Requires: (cmake(eigen3) with eigen3-static) Requires: (cmake(xtensor) with xtensor-static) Requires: cmake(opencv) %description devel The highfive-devel package contains libraries and header files for developing applications that use HighFive. %prep %autosetup -p1 %build %if %{with tests} # The unit tests intentionally test deprecated APIs; silence these warnings so # we are more likely to notice any real problems. CXXFLAGS="${CXXFLAGS} -Wno-deprecated-declarations" %endif %cmake \ -DHIGHFIVE_USE_BOOST:BOOL=TRUE \ -DHIGHFIVE_USE_XTENSOR:BOOL=TRUE \ -DHIGHFIVE_USE_EIGEN:BOOL=TRUE \ -DHIGHFIVE_USE_OPENCV:BOOL=TRUE \ -DHIGHFIVE_EXAMPLES:BOOL=TRUE \ -DHIGHFIVE_UNIT_TESTS:BOOL=%{?with_tests:TRUE}%{?!with_tests:FALSE} \ -DHIGHFIVE_BUILD_DOCS:BOOL=FALSE \ -GNinja %cmake_build %install %cmake_install # Move the CMake configurations to the correct location [ ! -d '%{buildroot}/%{_libdir}/cmake/HighFive' ] install -d '%{buildroot}/%{_libdir}/cmake' mv -v '%{buildroot}/%{_datadir}/HighFive/CMake' \ '%{buildroot}/%{_libdir}/cmake/HighFive' %check %if %{with tests} %ctest -VV %endif %files devel %license LICENSE %doc README.md AUTHORS.txt CHANGELOG.md %{_includedir}/highfive/ %{_libdir}/cmake/HighFive/ %changelog ## START: Generated by rpmautospec * Wed Apr 16 2025 Benjamin A. Beasley - 2.10.1-2 - Patch for CMake 4 * Wed Apr 16 2025 Benjamin A. Beasley - 2.10.1-1 - Update to 2.10.1 * Wed Apr 16 2025 Benjamin A. Beasley - 2.10.0-10 - Update to the new post-BlueBrain upstream * Wed Apr 16 2025 Benjamin A. Beasley - 2.10.0-8 - Run tests in parallel * Mon Feb 03 2025 Benjamin A. Beasley - 2.10.0-4 - Add dependencies to -devel package - Remove conditionals for 32-bit ARM, no longer needed * Fri Jan 17 2025 Fedora Release Engineering - 2.10.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Fri Oct 25 2024 Orion Poplawski - 2.10.0-2 - Rebuild for hdf5 1.14.5 * Mon Jul 29 2024 Packit - 2.10.0-1 - Update to 2.10.0 upstream release - Resolves: rhbz#2300406 * Thu Jul 18 2024 Fedora Release Engineering - 2.9.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Thu Mar 21 2024 Sandro - 2.9.0-3 - Add Packit config * Thu Mar 21 2024 Sandro - 2.9.0-2 - Migrate to SPDX license * Thu Mar 21 2024 Sandro - 2.9.0-1 - Update to 2.9.0 (RHBZ#2260441) * Wed Jan 24 2024 Fedora Release Engineering - 2.8.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Sat Jan 20 2024 Fedora Release Engineering - 2.8.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Tue Dec 05 2023 Benjamin A. Beasley - 2.8.0-1 - Update to 2.8.0 (close RHBZ#2247726) - Disable -doc subpackage due to a Doxygen/LaTeX error * Mon Dec 04 2023 Benjamin A. Beasley - 2.7.1-7 - Build docs as PDF instead of HTML * Mon Dec 04 2023 Benjamin A. Beasley - 2.7.1-6 - Update description from upstream * Tue Sep 19 2023 Sandro - 2.7.1-2 - Stop building for i686 * Thu Sep 14 2023 Sandro - 2.7.1-1 - Update to 2.7.1 (RHBZ#2072222) - Remove redundant patches - Add BR: catch-devel (That's catch2 3.x) - Fix %%doc files - Run tests sequentially * Thu Jul 20 2023 Fedora Release Engineering - 2.3.1-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Wed Mar 15 2023 Mamoru TASAKA - 2.3.1-8 - Remove -Werror to fix FTBFS, warnings are generated outside this package * Thu Jan 19 2023 Fedora Release Engineering - 2.3.1-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Thu Jul 21 2022 Fedora Release Engineering - 2.3.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Fri Mar 18 2022 Ankur Sinha (Ankur Sinha Gmail) - 2.3.1-5 - fix: include upstream patch * Thu Jan 20 2022 Fedora Release Engineering - 2.3.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Mon Nov 22 2021 Orion Poplawski - 2.3.1-2 - Rebuild for hdf5 1.12.1 * Fri Aug 27 2021 Benjamin A. Beasley - 2.3.1-1 - Update to 2.3.1 - Drop patches, which were all upstreamed - Switch BR’s to cmake(…) where appropriate - Add -static BR’s for header-only library dependencies - Add unarched -static virtual Provides since arched BR’s must not be used - Use ninja cmake backend (which was already BR’d) - Enable OpenCV (except on armv7hl, for now) - Fix ExcludeArch * Thu Jul 22 2021 Fedora Release Engineering - 2.2.2-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Thu Apr 22 2021 Ankur Sinha - 2.2.2-2 - Make note of excludearch bug * Mon Apr 19 2021 Ankur Sinha - 2.2.2-2 - Carry patch to fix failing test: https://github.com/BlueBrain/HighFive/issues/444 * Sun Apr 18 2021 Ankur Sinha - 2.2.2-1 - Enable doc build - include complete doc package in conditional ## END: Generated by rpmautospec