From owner-freebsd-ports@freebsd.org Thu Jun 2 17:50:21 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 01361B6528A for ; Thu, 2 Jun 2016 17:50:21 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (troutmask.apl.washington.edu [128.95.76.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "troutmask", Issuer "troutmask" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id E14721B4E; Thu, 2 Jun 2016 17:50:20 +0000 (UTC) (envelope-from sgk@troutmask.apl.washington.edu) Received: from troutmask.apl.washington.edu (localhost [127.0.0.1]) by troutmask.apl.washington.edu (8.15.2/8.15.2) with ESMTPS id u52HoJeN054340 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 2 Jun 2016 10:50:19 -0700 (PDT) (envelope-from sgk@troutmask.apl.washington.edu) Received: (from sgk@localhost) by troutmask.apl.washington.edu (8.15.2/8.15.2/Submit) id u52HoJB4054339; Thu, 2 Jun 2016 10:50:19 -0700 (PDT) (envelope-from sgk) Date: Thu, 2 Jun 2016 10:50:19 -0700 From: Steve Kargl To: Don Lewis Cc: freebsd@skysmurf.nl, freebsd-ports@freebsd.org Subject: Re: science/hdf5 ABI broken Message-ID: <20160602175019.GA54080@troutmask.apl.washington.edu> Reply-To: kargl@uw.edu References: <20160602022333.GA42451@troutmask.apl.washington.edu> <201606021717.u52HHIv7039819@gw.catspoiler.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201606021717.u52HHIv7039819@gw.catspoiler.org> User-Agent: Mutt/1.5.24 (2015-08-30) 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:50:21 -0000 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