dolfin_2016.1.0-4_source.changes ACCEPTED into unstable

Drew Parsons dparsons at debian.org
Wed Sep 14 08:54:51 UTC 2016


On Wed, 2016-09-14 at 09:56 +0200, Johannes Ring wrote:
> Hi Drew,
> Changes:
> >  dolfin (2016.1.0-4) unstable; urgency=medium
> >  .
> >    * Disable HDF5 support.
>> Can you give more details about the error? I think this might be a
> bug
> in the FindHDF5.cmake file in CMake. Did you see this problem with
> version 3.6.1 or 3.6.2 of CMake? Or both? There was a regression in
> version 3.6.1 that was fixed in 3.6.2 as can be seen here:
> 
> https://cmake.org/gitweb?p=cmake.git;a=commit;h=b61eab249f6d119e6353c
> 02c4c79ccb15a3825b9
> https://blog.kitware.com/cmake-3-6-2-available-for-download/
> 
> It would be good if we can re-enable HDF5 support again once this is
> fixed.

Hi Johannes,  I agree, it would be good to have HDF5 support. 
Note that we've never actually had it. It was enabled in the configure
line but got disabled during configure.  Historical build logs are at 
https://buildd.debian.org/status/logs.php?pkg=dolfin&arch=amd64
and
https://buildd.debian.org/status/package.php?p=dolfin

The problem seems to be come from the 2 versions of hdf5,
libhdf5-mpi-dev (parallel) and libhdf5-dev (serial).  We want dolfin to
use libhdf5-mpi-dev but libhdf5-dev is pulled in by libarmadillo-dev
via libvtk6-dev.

So both versions of hdf5 are installed simultaneously. dolfin detects
the serial version and complains that it's not consistent with the
parallel CXX that it found.  Previously dolfin just disabled HDF5 at
that point.  But now (possibly due to updates in the hdf5 packages)
it's started keeping HDF5 enabled. But then it's confused about the
parallel version. It wants to access H5Pset_dxpl_mpio which is only
defined in parallel HDF5, but it's using the serial HDF5 libraries. So
the build now fails against H5Pset_dxpl_mpio (at least, until I
disabled HDF5).

I've put some more detail into the git commit, 
https://anonscm.debian.org/git/debian-science/packages/fenics/dolfin.git/commit/?id=5ccf048ccb4fd7f98aff26fd072787cbe750afea

Another nuance is that parallel HDF5 provides parallel-aware compiler
wrappers, h5pcc (C) and h5pfc (fortran), but there is no h5pc++ or
h5pcxx for C++.

Part of the problem is that FindHDF5.cmake currently looks for h5pc++
or h5c++, which breaks discovery of parallel HDF5 since there is no
h5pc++.

Perhaps it could help if FindHDF5.cmake used the HDF5 pkgconfig files.
 The default is /usr/lib/<arch>/pkgconfig/hdf5.pc
which doesn't help since it could be either hdf5-serial.pc or
hdf5-openmpi.pc (or hdf5-mpich.pc), controlled by update-alternatives.
But FindHDF5.cmake could look for the mpi or the serial version, or
have the .pc file provided as a configure option.

hdf5-openmpi.pc gives Cflags but no CXXflags. I'm not certain if that
would be enough, but "-L/usr/lib/x86_64-linux-gnu/hdf5/openmpi -lhdf5"
would fix the build failure I think.








More information about the debian-science-maintainers mailing list