On Mon, 2007-12-31 at 21:26 -0500, Adam C Powell IV wrote:
> On Wed, 2007-12-19 at 11:04 -0500, Adam C Powell IV wrote:
> > As OpenMPI is the successor to LAM (the LAM developers now work on
> > OpenMPI), please add an OpenMPI build of hdf5.
> 
> Will you accept a patch if I provide one?

Okay, so I got impatient and went ahead and did it.  Here's the patch.

Note that it includes a small patch to H5public.h for only the OpenMPI
case which is necessary for C++ programs to compile with
extern "C" { #include <hdf5.h> }
[this does not seem to be necessary for LAM or MPICH].

Cheers,
-Adam
-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
diff -urN hdf5-1.6.5-5/debian/changelog hdf5-1.6.5-6/debian/changelog
--- hdf5-1.6.5-5/debian/changelog	2008-01-01 21:22:32.000000000 -0500
+++ hdf5-1.6.5-6/debian/changelog	2008-01-01 21:24:04.000000000 -0500
@@ -1,3 +1,11 @@
+hdf5 (1.6.5-6) unstable; urgency=low
+
+  * Added OpenMPI version (closes: #457080)
+  * Patch to H5public.h for OpenMPI is for C++ programs which include
+    hdf5.h in an extern "C" block.
+
+ -- 
+
 hdf5 (1.6.5-5) unstable; urgency=low
 
   * Changed maintainer and added uploards for true in control.in
diff -urN hdf5-1.6.5-5/debian/control hdf5-1.6.5-6/debian/control
--- hdf5-1.6.5-5/debian/control	2008-01-01 21:22:32.000000000 -0500
+++ hdf5-1.6.5-6/debian/control	2008-01-01 21:22:50.000000000 -0500
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian GIS Project <pkg-grass-devel@lists.alioth.debian.org>
 Uploaders: Francesco Paolo Lovergine <[EMAIL PROTECTED]>
-Build-Depends: libmpich1.0-dev (>= 1.2.7-1), zlib1g-dev, lam4-dev (>= 7.1.1-3.2), libjpeg62-dev, debhelper (>> 5)
+Build-Depends: libmpich1.0-dev (>= 1.2.7-1), zlib1g-dev, lam4-dev (>= 7.1.1-3.2), libopenmpi-dev, libjpeg62-dev, debhelper (>> 5)
 Standards-Version: 3.7.2
 
 Package: libhdf5-serial-1.6.5-0
@@ -74,6 +74,41 @@
  .
   Home page: http://hdf.ncsa.uiuc.edu/HDF5/
 
+Package: libhdf5-openmpi-1.6.5-0
+Section: libs
+Priority: extra
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: libhdf5-1.6.5-0
+Provides: libhdf5-1.6.5-0
+Description: Hierarchical Data Format 5 (HDF5) - runtime files - OpenMPI version
+ HDF5 is a file format and library for storing scientific data. 
+ HDF5 was designed and implemented to address the deficiencies of
+ HDF4.x. It has a more powerful and flexible data model, supports
+ files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains runtime files for use with OpenMPI.
+ .
+  Home page: http://hdf.ncsa.uiuc.edu/HDF5/
+
+Package: libhdf5-openmpi-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: libhdf5-openmpi-1.6.5-0 (= ${Source-Version}), libc6-dev, zlib1g-dev, libjpeg62-dev, libopenmpi-dev
+Conflicts: libhdf5-dev
+Provides: libhdf5-dev
+Suggests: libhdf5-doc
+Description: Hierarchical Data Format 5 (HDF5) - development files - OpenMPI version
+ HDF5 is a file format and library for storing scientific data. 
+ HDF5 was designed and implemented to address the deficiencies of
+ HDF4.x. It has a more powerful and flexible data model, supports
+ files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains development files for use with OpenMPI.
+ .
+  Home page: http://hdf.ncsa.uiuc.edu/HDF5/
+
 Package: libhdf5-mpich-1.6.5-0
 Section: libs
 Priority: extra
diff -urN hdf5-1.6.5-5/debian/control.in hdf5-1.6.5-6/debian/control.in
--- hdf5-1.6.5-5/debian/control.in	2008-01-01 21:22:32.000000000 -0500
+++ hdf5-1.6.5-6/debian/control.in	2008-01-01 21:22:50.000000000 -0500
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Debian GIS Project <pkg-grass-devel@lists.alioth.debian.org>
 Uploaders: Francesco Paolo Lovergine <[EMAIL PROTECTED]>
-Build-Depends: libmpich1.0-dev (>= 1.2.7-1), zlib1g-dev, lam4-dev (>= 7.1.1-3.2), libjpeg62-dev, debhelper (>> 5)
+Build-Depends: libmpich1.0-dev (>= 1.2.7-1), zlib1g-dev, lam4-dev (>= 7.1.1-3.2), libopenmpi-dev, libjpeg62-dev, debhelper (>> 5)
 Standards-Version: 3.7.2
 
 Package: [EMAIL PROTECTED]@-0
@@ -74,6 +74,41 @@
  .
   Home page: http://hdf.ncsa.uiuc.edu/HDF5/
 
+Package: [EMAIL PROTECTED]@-0
+Section: libs
+Priority: extra
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: [EMAIL PROTECTED]@-0
+Provides: [EMAIL PROTECTED]@-0
+Description: Hierarchical Data Format 5 (HDF5) - runtime files - OpenMPI version
+ HDF5 is a file format and library for storing scientific data. 
+ HDF5 was designed and implemented to address the deficiencies of
+ HDF4.x. It has a more powerful and flexible data model, supports
+ files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains runtime files for use with OpenMPI.
+ .
+  Home page: http://hdf.ncsa.uiuc.edu/HDF5/
+
+Package: libhdf5-openmpi-dev
+Section: libdevel
+Priority: extra
+Architecture: any
+Depends: [EMAIL PROTECTED]@-0 (= ${Source-Version}), libc6-dev, zlib1g-dev, libjpeg62-dev, libopenmpi-dev
+Conflicts: libhdf5-dev
+Provides: libhdf5-dev
+Suggests: libhdf5-doc
+Description: Hierarchical Data Format 5 (HDF5) - development files - OpenMPI version
+ HDF5 is a file format and library for storing scientific data. 
+ HDF5 was designed and implemented to address the deficiencies of
+ HDF4.x. It has a more powerful and flexible data model, supports
+ files larger than 2 GB, and supports parallel I/O.
+ .
+ This package contains development files for use with OpenMPI.
+ .
+  Home page: http://hdf.ncsa.uiuc.edu/HDF5/
+
 Package: [EMAIL PROTECTED]@-0
 Section: libs
 Priority: extra
diff -urN hdf5-1.6.5-5/debian/hdf5-H5public-openmpi.patch hdf5-1.6.5-6/debian/hdf5-H5public-openmpi.patch
--- hdf5-1.6.5-5/debian/hdf5-H5public-openmpi.patch	1969-12-31 19:00:00.000000000 -0500
+++ hdf5-1.6.5-6/debian/hdf5-H5public-openmpi.patch	2008-01-01 21:22:50.000000000 -0500
@@ -0,0 +1,10 @@
+--- usr/include/H5public.h.old	2008-01-01 16:55:04.000000000 -0500
++++ usr/include/H5public.h	2008-01-01 16:53:37.000000000 -0500
+@@ -50,6 +50,7 @@
+ #   include <stddef.h>
+ #endif
+ #ifdef H5_HAVE_PARALLEL
++#   define OMPI_SKIP_MPICXX
+ #   include <mpi.h>
+ #ifndef MPI_FILE_NULL		/*MPIO may be defined in mpi.h already       */
+ #   include <mpio.h>
diff -urN hdf5-1.6.5-5/debian/rules hdf5-1.6.5-6/debian/rules
--- hdf5-1.6.5-5/debian/rules	2008-01-01 21:22:32.000000000 -0500
+++ hdf5-1.6.5-6/debian/rules	2008-01-01 21:22:50.000000000 -0500
@@ -12,6 +12,7 @@
 version ?= $(shell echo $(pkgversion) | sed 's/-[^-]*$$//')
 serpack = $(package)-serial-$(version)-0
 lampack = $(package)-lam-$(version)-0
+openmpipack = $(package)-openmpi-$(version)-0
 mpichpack = $(package)-mpich-$(version)-0
 virtpack = $(package)-$(version)-0
 
@@ -48,17 +49,19 @@
 		  --enable-shared --enable-production=$(USE_PROD)
 
 
-configure: configure-stamp-debian configure-stamp-serial configure-stamp-lam configure-stamp-mpich
+configure: configure-stamp-debian configure-stamp-serial configure-stamp-lam configure-stamp-openmpi configure-stamp-mpich
 
 configure-stamp-debian: debian/control.in
 	cd debian && for i in *_devlib; do j=`basename $$i _devlib`; \
 		ln -sf $$i $(package)-serial-dev.$$j ; \
 		ln -sf $$i $(package)-lam-dev.$$j ; \
+		ln -sf $$i $(package)-openmpi-dev.$$j ; \
 		ln -sf $$i $(package)-mpich-dev.$$j ; \
 		done
 	cd debian && for i in *_shlib; do j=`basename $$i _shlib`; \
 		ln -sf $$i $(serpack).$$j ; \
 		ln -sf $$i $(lampack).$$j ; \
+		ln -sf $$i $(openmpipack).$$j ; \
 		ln -sf $$i $(mpichpack).$$j ; \
 		done
 	sed "s/@VERSION@/$(version)/g" debian/shlibs.in > debian/$(serpack).shlibs
@@ -83,6 +86,16 @@
 		--enable-parallel=yes
 	touch configure-stamp-lam
 
+configure-stamp-openmpi: configure-stamp-debian
+	dh_testdir
+	-mkdir debian/build-openmpi
+# configure version with lam
+	cd debian/build-openmpi && CPPFLAGS=-I/usr/lib/openmpi/include \
+		CC=mpicc.openmpi CXX=mpic++.openmpi RUNPARALLEL=/usr/bin/mpirun.openmpi \
+		../../configure $(CONFIGURE_FLAGS) \
+		--enable-parallel=yes
+	touch configure-stamp-openmpi
+
 configure-stamp-mpich: configure-stamp-debian
 	dh_testdir
 	-mkdir debian/build-mpich
@@ -94,7 +107,7 @@
 		--enable-parallel=yes
 	touch configure-stamp-mpich
 
-build: build-stamp-serial build-stamp-lam build-stamp-mpich
+build: build-stamp-serial build-stamp-lam build-stamp-openmpi build-stamp-mpich
 
 build-stamp-serial: configure-stamp-serial
 	dh_testdir
@@ -106,6 +119,11 @@
 	$(MAKE) -C debian/build-lam/
 	touch build-stamp-lam
 
+build-stamp-openmpi: configure-stamp-openmpi 
+	dh_testdir
+	$(MAKE) -C debian/build-openmpi/
+	touch build-stamp-openmpi
+
 build-stamp-mpich: configure-stamp-mpich 
 	dh_testdir
 	$(MAKE) -C debian/build-mpich/
@@ -116,12 +134,13 @@
 	dh_testroot
 	-rm -rf debian/build-serial
 	-rm -rf debian/build-lam
+	-rm -rf debian/build-openmpi
 	-rm -rf debian/build-mpich
 	-find debian -type l | xargs rm -f
 	grep -v ^\% debian/control.in | sed "s/@VERSION@/$(version)/g" > debian/control
 	dh_clean configure-stamp* build-stamp* install-stamp* debian/*.shlibs
 
-install: install-serial install-lam install-mpich install-doc
+install: install-serial install-lam install-openmpi install-mpich install-doc
 
 install-serial: build-stamp-serial
 	dh_testdir
@@ -139,6 +158,15 @@
 	dh_install -p$(lampack) -p$(package)-lam-dev \
 		--sourcedir=debian/build-lam/tmpinst
 
+install-openmpi: build-stamp-openmpi
+	dh_testdir
+	dh_testroot
+	-mkdir debian/build-openmpi/tmpinst
+	$(MAKE) -C debian/build-openmpi/ install prefix=$(CURDIR)/debian/build-openmpi/tmpinst/usr
+	(cd debian/build-openmpi/tmpinst/usr && patch -p1 < ../../../hdf5-H5public-openmpi.patch)
+	dh_install -p$(openmpipack) -p$(package)-openmpi-dev \
+		--sourcedir=debian/build-openmpi/tmpinst
+
 install-mpich: build-stamp-mpich
 	dh_testdir
 	dh_testroot
@@ -164,7 +192,7 @@
 	dh_md5sums -i
 	dh_builddeb -i
 
-binary-arch: build install-serial install-lam install-mpich
+binary-arch: build install-serial install-lam install-openmpi install-mpich
 	dh_testdir
 	dh_testroot 
 	dh_installdocs -a
@@ -176,11 +204,13 @@
 	dh_fixperms -a
 #	dh_makeshlibs -p$(serpack) -V "$(serpack) | $(virtpack)"
 	dh_makeshlibs -p$(lampack) -V $(lampack)
+	dh_makeshlibs -p$(openmpipack) -V $(openmpipack)
 	dh_makeshlibs -p$(mpichpack) -V $(mpichpack)
 	dh_installdeb -a
 	dh_shlibdeps -phdf5-tools -L$(serpack) -ldebian/$(serpack)/usr/lib
 	dh_shlibdeps -p$(serpack) -L$(serpack) -ldebian/$(serpack)/usr/lib
 	dh_shlibdeps -p$(lampack) -L$(lampack) -ldebian/$(lampack)/usr/lib
+	dh_shlibdeps -p$(openmpipack) -L$(openmpipack) -ldebian/$(openmpipack)/usr/lib
 	dh_shlibdeps -p$(mpichpack) -L$(mpichpack) -ldebian/$(mpichpack)/usr/lib
 	dh_gencontrol -a
 	dh_md5sums -a
@@ -188,4 +218,4 @@
 
 binary: binary-indep binary-arch
 
-.PHONY: build clean binary-indep binary-arch binary install configure install-serial install-doc install-lam install-mpich
+.PHONY: build clean binary-indep binary-arch binary install configure install-serial install-doc install-lam install-openmpi install-mpich
_______________________________________________
Pkg-grass-devel mailing list
Pkg-grass-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-grass-devel

Reply via email to