Date: Thu, 2 Jun 2016 10:50:19 -0700 From: Steve Kargl <sgk@troutmask.apl.washington.edu> To: Don Lewis <truckman@FreeBSD.org> Cc: freebsd@skysmurf.nl, freebsd-ports@freebsd.org Subject: Re: science/hdf5 ABI broken Message-ID: <20160602175019.GA54080@troutmask.apl.washington.edu> In-Reply-To: <201606021717.u52HHIv7039819@gw.catspoiler.org> References: <20160602022333.GA42451@troutmask.apl.washington.edu> <201606021717.u52HHIv7039819@gw.catspoiler.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 02, 2016 at 10:17:18AM -0700, Don Lewis wrote: > 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. The preprocessor flag may work for C (and C++). It will not work with Fortran. The Fortran interface for HDF5 will produce modules (e.g., /usr/local/include/hdf5.mod). You can think of a Fortran module as a pre-compiled header on steriods. > 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. I agree that further testing should have been done. But, building other ports that consume HDF5 may not be sufficient. There is a difference between "does it build" and "does it produce correct results". -- Steve
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160602175019.GA54080>