science/hdf5 ABI broken

Don Lewis truckman at FreeBSD.org
Thu Jun 2 17:17:28 UTC 2016


On  1 Jun, Steve Kargl wrote:
> On Mon, May 30, 2016 at 09:12:46PM +0200, Alphons van Werven wrote:
>> Steve Kargl wrote:
>> 
>> > Please supply either a science/hdf5-1.8 port, revert the 1.10.0
>> > update, or consider the above patches.
>> 
>> Sounds like a job for the port's maintainer...
>> 
>> % make -C /usr/ports/science/hdf5 maintainer
>> 
> 
> There is a patch for the Makefile, so I'm well aware of the
> maintainer line.  I'm going under the assumption that if one
> is a maintainer, then s/he will be reading this list.  I'm
> also going on the assumption that users of the hdf5 port cannot
> magically read the maintainer's email.  You can take my original
> post as public service for the users of hdf5.  I'll note that
> there are 2 bug reports about the breakage:
> 
> [Bug 209242] math/matio broken by science/hd5 upgrade to 1.10  
> [Bug 209244] math/scilab broken by science/hd5 upgrade to 1.10 
> 
> I doubt that the patches proposed in these PR apply to any 
> Fortran codes, but I'm too disinterested to investigate further. 
> 
> I suspect that the breakage is going to affect more ports, and for
> the users of these port they may not even be aware of problem (i.e.,
> they may produce corrupt data with no obvious warning or error).
> 
> The very first entry under "New Features" in the Release Notes
> for HDF5 1.10.0 is
> 
>     - API Compatibility with HDF5 1.8 Flag Was Added
> 
>       The 1.10 version of the HDF5 Library can be configured to operate
>       identically to the 1.8 library with the --with-default-api-version=v18
>       configure flag. This allows existing code to be compiled with the 1.10
>       library without requiring immediate changes to the application source
>       code. For addtional configuration options and other details, see
>       "API Compatibility Macros in HDF5" at
>       https://www.hdfgroup.org/HDF5/doc/RM/APICompatMacros.html.
> 
> This doesn't give one too much confidence that the maintainer actually
> looked at the documentation.  S/he simply assumed that a point release
> update from 1.8.16 to 1.10.0 did not change the ABI/API.

The matio and scilab ports would not build after hdf5 was upgraded.  In
addition to the configure flag that you mention, hdf5 can also be told
to use one of its older API versions by specifying specific preprocessor
defines when building software that pulls in its include files.  The
matio and scilab ports were modified to use the H5_USE_18_API
preprocessor flag to get the version 1.8 API and they now succesfully
build.

Changing the default hdf5 API version will only help until we start
getting ports that want the new API.

That said, ports that use hdf5 should have been tested with new version
and patches prepared to fix them before the new version was committed.




More information about the freebsd-ports mailing list