JuliaIO / HDF5.jl

Save and load data in the HDF5 file format from Julia
https://juliaio.github.io/HDF5.jl
MIT License
383 stars 139 forks source link

Windows test failures for SZIP compression #1106

Closed simonbyrne closed 11 months ago

simonbyrne commented 11 months ago
filter: Test Failed at D:\a\HDF5.jl\HDF5.jl\test\filter.jl:248
  Expression: HDF5.API.h5z_filter_avail(HDF5.API.H5Z_FILTER_SZIP)

Stacktrace:
 [1] macro expansion
   @ C:\hostedtoolcache\windows\julia\1.9.3\x64\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] macro expansion
   @ D:\a\HDF5.jl\HDF5.jl\test\filter.jl:248 [inlined]
 [3] macro expansion
   @ C:\hostedtoolcache\windows\julia\1.9.3\x64\share\julia\stdlib\v1.9\Test\src\Test.jl:1498 [inlined]
 [4] top-level scope
   @ D:\a\HDF5.jl\HDF5.jl\test\filter.jl:15

MSYS2 uses cmake to build HDF5.

https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-hdf5/PKGBUILD

HDF Group changed cmake to deprecate SZIP in favor of libaec.

However, HDF Group does this weird thing where they use their own cmake build for libaec, which is different than the way everyone else builds libaec.

https://github.com/HDFGroup/hdf5/blob/develop/config/cmake/LIBAEC/CMakeLists.txt

I'm trying to figure out how to point HDF5 to the libsz that Yggdrasil builds.

Originally posted by @mkitti in https://github.com/JuliaIO/HDF5.jl/issues/1105#issuecomment-1707449259

mkitti commented 11 months ago

I solved this in conda-forge a few weeks ago by upgrading to HDF5 1.14.2. https://github.com/conda-forge/hdf5-feedstock/issues/207

The big difference there is that they use autoconf to build HDF5 rather than cmake: https://github.com/conda-forge/hdf5-feedstock/blob/main/recipe/build.sh

mkitti commented 11 months ago

Potential fix: https://github.com/msys2/MINGW-packages/pull/18328