Opened 5 years ago

Closed 5 years ago

#57626 closed defect (fixed)

vips links with hdf5

Reported by: ryandesign (Ryan Carsten Schmidt) Owned by: bgilbert (Benjamin Gilbert)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: jcupitt (John Cupitt)
Port: vips

Description

vips links with hdf5 but does not declare a dependency on it.

$ port installed vips
The following ports are currently installed:
  vips @8.7.0_1+python27+universal (active)
$ otool -L /opt/local/bin/vips
/opt/local/bin/vips:
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1454.90.0)
	/opt/local/lib/libvips.42.dylib (compatibility version 52.0.0, current version 52.0.0)
	/opt/local/lib/libMagickCore-6.Q16.5.dylib (compatibility version 6.0.0, current version 6.0.0)
	/opt/local/lib/libpng16.16.dylib (compatibility version 52.0.0, current version 52.0.0)
	/opt/local/lib/libtiff.5.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libjpeg.9.dylib (compatibility version 13.0.0, current version 13.0.0)
	/opt/local/lib/libgmodule-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.1.0)
	/opt/local/lib/libexpat.1.dylib (compatibility version 8.0.0, current version 8.8.0)
	/opt/local/lib/libpangoft2-1.0.0.dylib (compatibility version 4201.0.0, current version 4201.4.0)
	/opt/local/lib/libpango-1.0.0.dylib (compatibility version 4201.0.0, current version 4201.4.0)
	/opt/local/lib/libfontconfig.1.dylib (compatibility version 14.0.0, current version 14.0.0)
	/opt/local/lib/libfreetype.6.dylib (compatibility version 23.0.0, current version 23.1.0)
	/opt/local/lib/libgsf-1.114.dylib (compatibility version 115.0.0, current version 115.44.0)
	/opt/local/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.7.0)
	/opt/local/lib/libfftw3.3.dylib (compatibility version 9.0.0, current version 9.8.0)
	/opt/local/lib/liborc-0.4.0.dylib (compatibility version 29.0.0, current version 29.0.0)
	/opt/local/lib/liblcms2.2.dylib (compatibility version 3.0.0, current version 3.8.0)
	/opt/local/lib/libgif.4.dylib (compatibility version 6.0.0, current version 6.7.0)
	/opt/local/lib/librsvg-2.2.dylib (compatibility version 45.0.0, current version 45.2.0)
	/opt/local/lib/libgio-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.1.0)
	/opt/local/lib/libgdk_pixbuf-2.0.0.dylib (compatibility version 3613.0.0, current version 3613.0.0)
	/opt/local/lib/libniftiio.2.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/local/lib/libznz.2.dylib (compatibility version 2.0.0, current version 2.0.0)
	/opt/local/lib/libpoppler-glib.8.dylib (compatibility version 8.0.0, current version 8.9.0)
	/opt/local/lib/libgobject-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.1.0)
	/opt/local/lib/libglib-2.0.0.dylib (compatibility version 5801.0.0, current version 5801.1.0)
	/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
	/opt/local/lib/libcairo.2.dylib (compatibility version 11603.0.0, current version 11603.0.0)
	/opt/local/lib/libIlmImf-2_3.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libImath-2_3.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libHalf.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libIex-2_3.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libIexMath-2_3.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libIlmThread-2_3.24.dylib (compatibility version 25.0.0, current version 25.0.0)
	/opt/local/lib/libopenslide.0.dylib (compatibility version 5.0.0, current version 5.1.0)
	/opt/local/lib/libcfitsio.dylib (compatibility version 7.0.0, current version 7.3.45)
	/opt/local/lib/libcurl.4.dylib (compatibility version 10.0.0, current version 10.0.0)
	/opt/local/lib/libwebpmux.3.dylib (compatibility version 4.0.0, current version 4.2.0)
	/opt/local/lib/libwebp.7.dylib (compatibility version 8.0.0, current version 8.2.0)
	/opt/local/lib/libmatio.4.dylib (compatibility version 9.0.0, current version 9.2.0)
	/opt/local/lib/libhdf5.101.dylib (compatibility version 103.0.0, current version 103.0.0)
	/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11)
	/opt/local/lib/libexif.12.dylib (compatibility version 16.0.0, current version 16.3.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.50.4)

Hence the port is broken for me at present, because it links with /opt/local/lib/libhdf5.101.dylib while hdf5 has been updated and no longer provides that version of the library.

Either vips needs a dependency on hdf5, or it needs to be told not to use hdf5 even if it is installed.

Change History (3)

comment:1 Changed 5 years ago by dbevans (David B. Evans)

hdf5 is a dependency of matio. See https://github.com/macports/macports-ports/pull/3034

comment:2 Changed 5 years ago by eborisch (Eric A. Borisch)

Note that, as a scientific data format, hdf5 has a very aggressive library matching approach because they are obsessively interested in data integrity (not fouling up your huge dataset you spent years acquiring.) As such, we need to rev-bump everything that uses HDF5 to avoid users getting nastygrams every time they run.

Please explicitly list hdf5 as a dependency so we can find this port easily when updating HDF5 in the future. It sounds like it is pulled in by its dependency chain, but it is easier/quicker to identify ports for scripted bumping if they have 'port:hdf5' in their Portfile, and it won't change the actual install process at all.

comment:3 Changed 5 years ago by bgilbert (Benjamin Gilbert)

Resolution: fixed
Status: assignedclosed

In 6af66e1762b7601a73ff10018c715bd55ba6080b/macports-ports (master):

vips: Update to 8.7.1

Add explicit dependency on hdf5. It's actually a transitive dependency
via matio, but this helps identify revbumps needed after hdf5 soname
changes.

See: https://github.com/macports/macports-ports/pull/3034
Closes https://github.com/macports/macports-ports/pull/3034
Closes: #57626

Note: See TracTickets for help on using tickets.