FS#49212 - [hdf5] 1.10.0 not compatible with certain tools

Attached to Project: Arch Linux
Opened by Ejner Fergo (numasan) - Wednesday, 04 May 2016, 17:27 GMT
Last edited by Doug Newgard (Scimmia) - Sunday, 20 November 2016, 19:43 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Ronald van Haren (pressh)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Since HDF5 1.10.0 made changes to the API, some tools (eg. https://github.com/alembic) breaks and can't compile.

Please configure package with: --with-default-api-version=v18
or continue to provide the old 1.8.x package.

Also, configure option --enable-linux-lfs is unrecognized and --with-pthread=DIR is ignored since --enable-threadsafe is off by default.

Thanks.
This task depends upon

Closed by  Doug Newgard (Scimmia)
Sunday, 20 November 2016, 19:43 GMT
Reason for closing:  Implemented
Additional comments about closing:  hdf5_18 is in Extra (for now).
Comment by Doug Newgard (Scimmia) - Wednesday, 04 May 2016, 17:31 GMT
Sounds to me more like those tools just need to be updated. We don't generally hang on to old versions in order to support software that isn't in the repos.
Comment by Ejner Fergo (numasan) - Wednesday, 04 May 2016, 17:42 GMT
It's more a matter of the HDF5 file format has changed in 1.10, and compatibility with tools using 1.8 is not guaranteed. Since Alembic is used in a studio environment, compatibility is key. Alembic support is currently being worked on for Blender, so eventually this lib will end up in Arch repos.

I'm not an expert in HDF5, so don't know what it will affect, but there must be a reason they put the --with-default-api-version=v18 configure option in version 1.10.0
Comment by Ejner Fergo (numasan) - Wednesday, 04 May 2016, 21:42 GMT
Ok, I've been reading https://www.hdfgroup.org/HDF5/doc/RM/APICompatMacros.html and see now it should be possible to build apps written for 1.8.x using the default 1.10 API version, since it already includes support for older versions. So no need for "--with-default-api-version=v18" - I'm sorry for the noise...

Regarding the other configure options, I still think they should be looked at (enabling threadsafe), so I won't request a closure just yet.
Comment by Ronald van Haren (pressh) - Thursday, 05 May 2016, 06:50 GMT
--enable-linux-lfs should be replaced by --enable-largefile in 1.10.0.

About threadsafe, it is now incompatible with the high level library which I don't think we would want to disable (I think it may even be needed for netcdf, but could be wrong here). What I might do is rename the hdf5-cpp-fortran package to hdf5 (which should be possible now that we don't have threadsafe anymore), and introduce a hdf5-threadsafe package. Would that work for you?
Comment by Ejner Fergo (numasan) - Thursday, 05 May 2016, 14:46 GMT
Hi Ronald,

As is evident from my previous comments, I'm not qualified to provide an opinion, as I don't know what does and doesn't need thread safety or high level libraries, and why it is mutually exclusive. I trust your judgement.
Comment by Ejner Fergo (numasan) - Friday, 06 May 2016, 19:33 GMT
Alright, I promise I'll shut up after this comment (not even sure it will be read).

It turns out thread safety *is* important for Alembic, and the developers will look into if the high-level option is necessary for that library. So your suggestion on introducing a hdf5-threadsafe package sounds like the best solution.

It could potentially use the --enable-unsupported option to allow both threadsafe and hl to be used, effectively making it work like 1.8.15, but I understand if this is not something you want.
Comment by Sean Enck (enckse) - Tuesday, 10 May 2016, 18:27 GMT
As of today (with current updates) be warned that using HDF (via pandas - https://github.com/pydata/pandas/issues/13127) indicates that (again, as of today) that pytables is a tool that currently is not compatible as well (https://github.com/PyTables/PyTables/issues/545)

I had to downgrade hdf and pytables per the first github issue link I've posted
Comment by Ronald van Haren (pressh) - Tuesday, 24 May 2016, 11:55 GMT
I've added a barebones hdf5_18 package so it can be used to build against until upstream catches up. Pytables is fixed as well.
Comment by Ejner Fergo (numasan) - Thursday, 26 May 2016, 12:08 GMT
Hi Ronald,

I can report that Alembic devs have removed dependence on hdf5_hl and the lib is also compatible with hdf5-1.10.0 now. Will you build hdf5 with same options as hdf5_18 (--disable-hl --enable-threadsafe) or is netcdf still depended on hl? I hope not, since it is now a dependency of ffmpeg. If it is, would you consider building hdf5 with the --enable-unsupported option?

Loading...