[dolfin] 01/02: Disable HDF5 support

Drew Parsons dparsons at moszumanska.debian.org
Wed Sep 14 08:30:12 UTC 2016


This is an automated email from the git hooks/post-receive script.

dparsons pushed a commit to branch master
in repository dolfin.

commit 5ccf048ccb4fd7f98aff26fd072787cbe750afea
Author: Drew Parsons <dparsons at debian.org>
Date:   Wed Sep 14 12:22:00 2016 +0800

    Disable HDF5 support
    
    HDF5 was never actually enabled previously due to a
    discrepancy between serial and parallel HDF5. Previously
    (at libhdf5-mpi-dev 1.8.16+docs-2) dolfin would find report at
    configure time.
    
    	-- HDF5: Using hdf5 compiler wrapper to determine C configuration
    	-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
    	-- HDF5: Using hdf5 compiler wrapper to determine Fortran configuration
    	-- Found HDF5: /usr/lib/x86_64-linux-gnu/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5_fortran.so;/usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.8.16")
    	-- HDF5 has been found, but is missing parallel support. It will not be enabled.
    
    i.e. it found hdf5 serial, wanted parallel, so simply disabled hdf5
    support, so "-DHAS_HDF5" was not used to compile object files.
    
    Changes to the hdf5 packages since then now cause dolfin to fail to
    build.  dolfin detects hdf5, reporting at configure time:
    
    	-- HDF5: Using hdf5 compiler wrapper to determine C configuration
    	-- HDF5: Using hdf5 compiler wrapper to determine CXX configuration
    	CMake Warning at /usr/share/cmake-3.6/Modules/FindHDF5.cmake:606 (message):
    	  HDF5 found for language CXX is not parallel but previously found language
    	  is parallel.
    	Call Stack (most recent call first):
    	  CMakeLists.txt:556 (find_package)
    
    	-- HDF5: Using hdf5 compiler wrapper to determine Fortran configuration
    	-- Found HDF5: /usr/lib/x86_64-linux-gnu/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5_fortran.so;/usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.8.16")
    
    So HDF5 does not get disabled and the dolfin build adds the flag
    "-DHAS_HDF5". This causes the build time error:
    
    	cd /«PKGBUILDDIR»/debian/build-python2.7/dolfin && /usr/bin/c++   -DDOLFIN_LA_INDEX_SIZE=4 -DDOLFIN_SIZE_T=8 -DDOLFIN_VERSION=\"2016.1.0\" -DHAS_CHOLMOD -DHAS_HDF5 -DHAS_MPI -DHAS_OPENMP -DHAS_PETSC -DHAS_SCOTCH -DHAS_SLEPC -DHAS_UMFPACK -DHAS_VTK -DHAS_ZLIB -DNDEBUG -D_FORTIFY_SOURCE=2 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Ddolfin_EXPORTS -DvtkRenderingCore_AUTOINIT="3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL)" -I/«PKGBUILDDIR»/debian/build-python2.7 -isystem [...]
    	In file included from /«PKGBUILDDIR»/dolfin/io/HDF5Attribute.cpp:28:0:
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.h: In static member function 'static void dolfin::HDF5Interface::write_dataset(hid_t, std::__cxx11::string, const std::vector<T>&, std::pair<long int, long int>, std::vector<long int>, bool, bool)':
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.h:303:63: warning: there are no arguments to 'H5Pset_dxpl_mpio' that depend on a template parameter, so a declaration of 'H5Pset_dxpl_mpio' must be available [-fpermissive]
    	       status = H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_COLLECTIVE);
    	                                                               ^
    	In file included from /«PKGBUILDDIR»/dolfin/io/HDF5Attribute.h:30:0,
    	                 from /«PKGBUILDDIR»/dolfin/io/HDF5File.h:32,
    	                 from /«PKGBUILDDIR»/dolfin/io/HDF5Interface.cpp:26:
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.h: In static member function 'static void dolfin::HDF5Interface::write_dataset(hid_t, std::__cxx11::string, const std::vector<T>&, std::pair<long int, long int>, std::vector<long int>, bool, bool)':
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.h:303:63: warning: there are no arguments to 'H5Pset_dxpl_mpio' that depend on a template parameter, so a declaration of 'H5Pset_dxpl_mpio' must be available [-fpermissive]
    	       status = H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_COLLECTIVE);
    	                                                               ^
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.cpp: In static member function 'static hid_t dolfin::HDF5Interface::open_file(MPI_Comm, std::__cxx11::string, std::__cxx11::string, bool)':
    	/«PKGBUILDDIR»/dolfin/io/HDF5Interface.cpp:48:62: error: 'H5Pset_fapl_mpio' was not declared in this scope
    	     herr_t status = H5Pset_fapl_mpio(plist_id, mpi_comm, info);
    	                                                              ^
    	dolfin/CMakeFiles/dolfin.dir/build.make:2321: recipe for target 'dolfin/CMakeFiles/dolfin.dir/io/HDF5Interface.cpp.o' failed
    	make[4]: *** [dolfin/CMakeFiles/dolfin.dir/io/HDF5Interface.cpp.o] Error 1
    
    This indicates some configuration instability when libhdf5-mpi-dev
    (parallel) and libhdf5-dev (serial) are installed simultaneously.  We
    want to use libhdf5-mpi-dev but libhdf5-dev is pulled from
    libarmadillo-dev via libvtk6-dev.
    
    Since HDF5 had been disabled anyway in the past, the workaround is to
    disable HDF5 support explicitly, for now.
---
 debian/changelog | 9 +++++++++
 debian/control   | 2 --
 debian/rules     | 4 +---
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index f027019..5938505 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+dolfin (2016.1.0-4) UNRELEASED; urgency=medium
+
+  * Disable HDF5 support.  
+    HDF5 was never actually enabled previously due to a discrepant
+    configuration between serial and parallel HDF5, but that now
+    causes dolfin to fail to build.
+
+ -- Drew Parsons <dparsons at debian.org>  Wed, 14 Sep 2016 12:18:12 +0800
+
 dolfin (2016.1.0-3) unstable; urgency=medium
 
   * Thanks Christophe Prud'homme for your uploads of the earlier
diff --git a/debian/control b/debian/control
index 4dd87f5..f7a9587 100644
--- a/debian/control
+++ b/debian/control
@@ -21,7 +21,6 @@ Build-Depends:
  libboost-thread-dev,
  libboost-timer-dev,
  libeigen3-dev,
- libhdf5-mpi-dev,
  libsuitesparse-dev,
  libscotch-dev,
  libvtk6-dev,
@@ -59,7 +58,6 @@ Depends:
  libboost-timer-dev,
  libdolfin2016.1 (= ${binary:Version}),
  libeigen3-dev,
- libhdf5-mpi-dev,
  libsuitesparse-dev,
  libscotch-dev,
  libvtk6-dev,
diff --git a/debian/rules b/debian/rules
index aadde66..7c9425b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -41,9 +41,7 @@ CMAKE_OPTS := \
 	-D CMAKE_SKIP_RPATH:BOOL=ON \
 	-D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
 	-D DOLFIN_ENABLE_TRILINOS:BOOL=OFF \
-	-D DOLFIN_ENABLE_HDF5:BOOL=ON \
-	-D HDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5pcc \
-	-D HDF5_Fortran_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5pfc \
+	-D DOLFIN_ENABLE_HDF5:BOOL=OFF \
 	-D DOLFIN_ENABLE_VTK:BOOL=ON \
 	-D DOLFIN_ENABLE_QT:BOOL=OFF \
 	-D DOLFIN_ENABLE_PARMETIS:BOOL=OFF \

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/fenics/dolfin.git



More information about the debian-science-commits mailing list