From owner-freebsd-ports@freebsd.org Thu Jun 2 17:17:27 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CF9B4B65725 for ; Thu, 2 Jun 2016 17:17:27 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (unknown [IPv6:2602:304:b010:ef20::f2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 49A4D1BB3 for ; Thu, 2 Jun 2016 17:17:27 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id u52HHIv7039819; Thu, 2 Jun 2016 10:17:22 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201606021717.u52HHIv7039819@gw.catspoiler.org> Date: Thu, 2 Jun 2016 10:17:18 -0700 (PDT) From: Don Lewis Subject: Re: science/hdf5 ABI broken To: sgk@troutmask.apl.washington.edu cc: freebsd@skysmurf.nl, freebsd-ports@freebsd.org In-Reply-To: <20160602022333.GA42451@troutmask.apl.washington.edu> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Jun 2016 17:17:28 -0000 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.