#5 Update to 2.8.0 and other minor enhancements
Merged 4 months ago by music. Opened 4 months ago by music.
rpms/ music/highfive v2.8.0  into  rawhide

file modified
+1
@@ -1,3 +1,4 @@ 

  /highfive-2.2.2.tar.gz

  /highfive-2.3.1.tar.gz

  /highfive-2.7.1.tar.gz

+ /highfive-2.8.0.tar.gz

file modified
+50 -20
@@ -3,10 +3,9 @@ 

  %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, Eigen

- and Xtensor. It handles C++ from/to HDF5 with automatic type mapping. HighFive

- does not require additional libraries (see dependencies) and supports both HDF5

- thread safety and Parallel HDF5 (contrary to the official hdf5 cpp)

+ 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.
@@ -26,30 +25,49 @@ 

  - 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)

- }

- 

- %bcond_without tests

:thumbsup: I've been switching away from those as well. That notation does my head in. Always has and still does.

- %bcond_without docs

+   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

+ # Doxygen HTML help is not suitable for packaging due to a minified JavaScript

+ # bundle inserted by Doxygen itself. See discussion at

+ # https://bugzilla.redhat.com/show_bug.cgi?id=2006555.

+ #

+ # We could enable the Doxygen PDF documentation as a substitute, but beginning

+ # with 2.8.0 we encounter:

+ #

+ #   ! LaTeX Error: File `topics.tex' not found.

+ #

+ # This seems like a Doxygen bug, but it’s not clear exactly what kind of bug,

+ # or what can be done about it.

+ %bcond docs 0

  

  # Header only, so no debuginfo is generated

  %global debug_package %{nil}

  

  Name:           highfive

- Version:        2.7.1

+ Version:        2.8.0

  Release:        %autorelease

  Summary:        Header-only C++ HDF5 interface

  

  License:        Boost

  URL:            https://bluebrain.github.io/HighFive/

- Source0:        https://github.com/BlueBrain/HighFive/archive/v%{version}/%{name}-%{version}.tar.gz

+ Source:         https://github.com/BlueBrain/HighFive/archive/v%{version}/%{name}-%{version}.tar.gz

  

  # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval

  ExcludeArch:    %{ix86}

  

  BuildRequires:  cmake

  BuildRequires:  gcc-c++

- BuildRequires:  git-core

  BuildRequires:  hdf5-devel

  BuildRequires:  catch-devel

  # Technically optional, enabled by default
@@ -70,6 +88,8 @@ 

  

  %if %{with docs}

  BuildRequires:  doxygen

+ BuildRequires:  doxygen-latex

+ BuildRequires:  make

  %endif

  

  %description %_description
@@ -98,16 +118,23 @@ 

  

  

  %prep

- %autosetup -n %{pretty_name}-%{version} -S git -p1

+ %autosetup -n %{pretty_name}-%{version}

  

+ %if %{with docs}

+ # We enable the Doxygen PDF documentation as a substitute. We must enable

+ # GENERATE_LATEX and LATEX_BATCHMODE; the rest are precautionary and should

+ # already be set as we like them. We also disable GENERATE_HTML, since we will

+ # not use it.

+ sed -r -i \

+     -e "s/^([[:blank:]]*(GENERATE_LATEX|LATEX_BATCHMODE|USE_PDFLATEX|\

+ PDF_HYPERLINKS)[[:blank:]]*=[[:blank:]]*)NO[[:blank:]]*/\1YES/" \

+     -e "s/^([[:blank:]]*(LATEX_TIMESTAMP|GENERATE_HTML)\

+ [[:blank:]]*=[[:blank:]]*)YES[[:blank:]]*/\1NO/" \

+     doc/Doxyfile

+ %endif

  

- %build

- # With g++13, warnings are generated from xtl side, e.g.

- # /usr/include/xtl/xsequence.hpp:132:24: error: 'ret' may be used uninitialized

- # [-Werror=maybe-uninitialized]

- # Disabling -Werror

- sed -i CMake/config/CompilerFlagsHelpers.cmake -e 's|-Werror ||'

  

+ %build

  %if %{with tests}

  %set_build_flags

  # The unit tests intentionally test deprecated APIs; silence these warnings so
@@ -128,6 +155,9 @@ 

  %cmake_build

  %if %{with docs}

  %cmake_build --target doc

+ %make_build -C %{_vpath_builddir}/doc/latex

+ mv %{_vpath_builddir}/doc/latex/refman.pdf \

+     %{_vpath_builddir}/doc/latex/%{pretty_name}.pdf

  %endif

  

  
@@ -157,7 +187,7 @@ 

  %if %{with docs}

  %files doc

  %license LICENSE

- %doc %{_vpath_builddir}/doc/html

+ %doc %{_vpath_builddir}/doc/latex/%{pretty_name}.pdf

  %endif

  

  

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (highfive-2.7.1.tar.gz) = 4fbbd3898791a67e44329a5d0e20e16454b9393510236563b12fe4346cd4f2785d43d915ea05239ac1568d00651e41d85d93590f01454ffc1b82e7bba28e780a

+ SHA512 (highfive-2.8.0.tar.gz) = cabcf8f1507b4466b7438249a813ea36de5e5d220c5caf7656312e24dbe09042bf9573388ca7c3caa22f71bd3b8106923710f9459127f87c341e2b0ab953eede

https://github.com/BlueBrain/HighFive/releases/tag/v2.8.0

https://github.com/BlueBrain/HighFive/compare/v2.7.1...v2.8.0

Update to 2.8.0 and other minor enhancements.

Documentation build is switched from HTML to PDF, then disabled for 2.8.0 because of a LaTeX error that wasn’t trivial to debug.

Currently verifying compatibility with dependent packages IQmol, cantera, libsonata, and morphio in local mock builds.

I’m not sure if the fix to Eigen::Matrix index ordering should be considered an “incompatible” change or not; if not, then this will probably be ok for F38, F39, and F40, assuming all the mock builds work.

All dependent packages are OK in F40/Rawhide.

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/c0b67fe9e65d4ae98e841827632bd377

All dependent packages are OK in F40/Rawhide.

F39 and F38 are fine, too.

:thumbsup: I've been switching away from those as well. That notation does my head in. Always has and still does.

Pull-Request has been merged by music

4 months ago

Unless a reason to do otherwise arises, I’m going to treat https://github.com/BlueBrain/HighFive/pull/731 as breaking and only build this in Rawhide. I’ll merge everything but the commit updating to 2.8.0 back to the stable branches.