#67273 closed defect (fixed)

hdf5: either make +fortran a default or make it a standalone port?

Reported by: barracuda156 Owned by: eborisch (Eric A. Borisch)
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc: Dave-Allured (Dave Allured)
Port: hdf5

Description

I wanna make a port for h5fortran, and it requires HDF5 to be installed with Fortran support. It is not optional.

--->  Extracting h5fortran-22273ef9886e35af5b7bf1c59fca92b791da5989.tar.gz
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_fortran_h5fortran/h5fortran/work" && /usr/bin/gzip -dc '/opt/local/var/macports/distfiles/h5fortran/h5fortran-22273ef9886e35af5b7bf1c59fca92b791da5989.tar.gz' | /usr/bin/gnutar --no-same-owner -xf - 
--->  Configuring h5fortran
Error: Failed to configure h5fortran: hdf5 must be installed with +fortran+szip.
Error: See /opt/local/var/macports/logs/_opt_PPCSnowLeopardPorts_fortran_h5fortran/h5fortran/main.log for details.

Using active_variants solves the problem on a user level, but will not let CI pass: it will just fail, since the needed variant is not default. Could we solve this problem somehow?

Change History (5)

comment:1 Changed 13 months ago by Dave-Allured (Dave Allured)

Cc: Dave-Allured added

comment:2 Changed 10 months ago by Dave-Allured (Dave Allured)

It would be logical to have separate ports for separate major components of HDF5, such as the core C API, and the fortran API. This would improve dependency management. I filed a request upstream for this capability in the build system.
https://github.com/HDFGroup/hdf5/issues/3221

comment:3 Changed 10 months ago by Dave-Allured (Dave Allured)

The current HDF5 build system supports building the core C API without components. However, it does not support building any of the wrapper API's as stand-alone. I can think of several ways to do this for MacPorts.

  1. Wait for upstream to add component capability to their build system. It looks like this might take a while.
  1. Patch the current HDF5 build system to enable building, for example, the fortran API on top of a previous core C API build. The configuration dependency issues may be complicated.
  1. Following a previous HDF5 core C API build, make another build for core plus fortran, for example. Then install only the fortran libs and include files; in effect throwing away the files from the second HDF5 core build. This may be easier to implement than (2).
Last edited 10 months ago by Dave-Allured (Dave Allured) (previous) (diff)

comment:4 in reply to:  2 Changed 10 months ago by barracuda156

Replying to Dave-Allured:

It would be logical to have separate ports for separate major components of HDF5, such as the core C API, and the fortran API. This would improve dependency management. I filed a request upstream for this capability in the build system.
https://github.com/HDFGroup/hdf5/issues/3221

Thank you very much for following on this.

As for preferred option, anything will do as long as we get an ability to depend on HDF5 with fortran (and szip) enabled.

comment:5 Changed 10 months ago by Eric A. Borisch <eborisch@…>

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.