Package: boost1.35
Version: 1.35.0-5
Severity: wishlist

Hi,

it would be great if you could add support for the boost-mpi libraries
which are part of boost since version 1.35. I'd suggest linking against
OpenMPI, which is very actively maintained, both upstream and in Debian.

I have made a not very successful attempt to hack the debian package to
enable boost-mpi packages; my try is attached as a patch. The problem I
had is that boost-mpi consists of a libboost_mpi library, as well as a
libboost_mpi_python library, which in conjunction with a boost.mpi
python module provides a python interface to boost-mpi. Now, the two
different libboost_python versions with different suffixes complicate
things... I don't know if it wouldn't be easier in the long run to just
support the current python version in boost.

Unfortunately (well, not really ;) I am on vacation the next three
weeks, so I can't continue my trials, nor test anything you might come
up with before August.

Cheers, Til
=== debian/Notes
==================================================================
--- debian/Notes        (revision 7)
+++ debian/Notes        (local)
@@ -76,6 +76,7 @@
 filesystem     depends on system
 graph          depends on serialization test
 iostreams      depends on regex
+mpi            depends on serialization
 regex          depends on thread
 thread                 depends on date_time
 wave           depends on filesystem serialization
=== debian/control
==================================================================
--- debian/control      (revision 7)
+++ debian/control      (local)
@@ -4,7 +4,7 @@
 Priority: optional
 Maintainer: Debian Boost Team <[EMAIL PROTECTED]>
 Uploaders: Steve M. Robbins <[EMAIL PROTECTED]>, Domenico Andreoli <[EMAIL 
PROTECTED]>, Christophe Prud'homme <[EMAIL PROTECTED]>
-Build-Depends: debhelper (>= 6.0.7), quilt, bison, flex, docbook-to-man, 
xsltproc, doxygen, zlib1g-dev, libbz2-dev, libicu-dev, python-all-dev, 
python-support (>= 0.6)
+Build-Depends: debhelper (>= 6.0.7), quilt, bison, flex, docbook-to-man, 
xsltproc, doxygen, zlib1g-dev, libbz2-dev, libicu-dev, python-all-dev, 
python-support (>= 0.6), libopenmpi-dev
 XS-Python-Version: 2.4, 2.5
 Standards-Version: 3.7.3
 
@@ -164,6 +164,33 @@
  which turn models of these concepts into C++ standard library streams
  and stream buffers.
 
+Package: libboost-mpi1.35.0
+Homepage: http://www.boost.org/doc/libs/1_35_0/doc/html/mpi.html
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: MPI library for C++
+ Part of the Boost C++ Libraries collection.
+ .
+ Library for message passing in high-performance parallel applications.
+ A Boost.MPI program is one or more processes that can communicate either
+ via sending and receiving individual messages (point-to-point communication)
+ or by coordinating as a group (collective communication).
+
+Package: libboost-mpi1.35-dev
+Homepage: http://www.boost.org/doc/libs/1_35_0/doc/html/mpi.html
+Architecture: any
+Section: libdevel
+Depends: libboost1.35-dev (= ${binary:Version}), libboost-mpi1.35.0 (= 
${binary:Version}), libboost-serialization1.35.0 (= ${binary:Version})
+Recommends: libboost-python1.35.0 (= ${binary:Version})
+Description: MPI library for C++
+ Part of the Boost C++ Libraries collection.
+ .
+ Library for message passing in high-performance parallel applications.
+ A Boost.MPI program is one or more processes that can communicate either
+ via sending and receiving individual messages (point-to-point communication)
+ or by coordinating as a group (collective communication).
+
 Package: libboost-program-options1.35.0
 Homepage: http://www.boost.org/libs/program_options/
 Architecture: any
=== debian/rules
==================================================================
--- debian/rules        (revision 7)
+++ debian/rules        (local)
@@ -1,14 +1,14 @@
 #! /usr/bin/make -f
 
 # Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
+export DH_VERBOSE=1
 
 export DH_OPTIONS
 
 include /usr/share/quilt/quilt.make
 
 # set the number of build jobs
-#JOBS = -j2
+JOBS = -j4
 
 DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
@@ -21,13 +21,15 @@
 gcc_version = gcc42
 
 # Boost libraries for which we want separate packages
-boost_libs := date-time filesystem graph iostreams program-options python 
regex serialization signals system test thread wave
+boost_libs := date-time filesystem graph iostreams mpi program-options python 
regex serialization signals system test thread wave
 
 # these are special cases, where shared library has not the same name of the 
Boost library
+boost_lib_mpi := mpi mpi_python
 boost_lib_serialization := serialization wserialization
 boost_lib_test := prg_exec_monitor unit_test_framework
 
 # these are special cases for variants. normal cases have <empty>, -d, -mt, 
-mt-d variants
+boost_variants_mpi := -mt -mt-d
 boost_variants_thread := -mt -mt-d
 
 # These are special cases for suffixes.  Generally come from --buildid, so 
begin with a dash.
@@ -138,6 +140,7 @@
 endif
 PYTHON_CONFIG1 = "using python : 2.4 : /usr ;"
 PYTHON_CONFIG2 = "using python : 2.5 : /usr ;"
+MPI_CONFIG = "using mpi ;"
 
 exampledir = 
debian/libboost$(PKGVERSION)-doc/usr/share/doc/libboost$(PKGVERSION)-doc/examples
 htmldir = 
debian/libboost$(PKGVERSION)-doc/usr/share/doc/libboost$(PKGVERSION)-doc/HTML
@@ -157,8 +160,9 @@
        echo $(TOOLSET_CONFIG) > user-config.jam
        echo $(PYTHON_CONFIG1) >> user-config.jam
        echo $(PYTHON_CONFIG2) >> user-config.jam
+       echo $(MPI_CONFIG) >> user-config.jam
 
-       $(JAM) --without-python                        $(jam_variants)
+       $(JAM) --with-python --with-mpi                $(jam_variants)
        $(JAM) --with-python --buildid=py24 python=2.4 $(jam_variants)
        $(JAM) --with-python --buildid=py25 python=2.5 $(jam_variants)
 
@@ -216,7 +220,7 @@
        install --mode=755 -D debian/rtupdate 
debian/tmp/usr/share/python/runtime.d/libboost$(PKGVERSION)-dbg.rtupdate
 
        # Remove undecorated Boost.Python libraries and install decorated ones
-       rm debian/tmp/usr/lib/lib*python*
+       rm debian/tmp/usr/lib/libboost_python*
        find bin.v2/libs/python -name libboost_python*-py2* | xargs install -t 
debian/tmp/usr/lib
 
        find debian/tmp/usr/include -type f | xargs chmod 644
@@ -231,6 +235,10 @@
        dh_install -plibboost$(PKGVERSION)-dbg --autodest \
           
debian/tmp/usr/share/python/runtime.d/libboost$(PKGVERSION)-dbg.rtupdate
        dh_link -plibboost$(PKGVERSION)-dbg \
+          usr/lib/libboost_mpi-mt-d.a usr/lib/libboost_mpi-d.a \
+          usr/lib/libboost_mpi-mt-d.so usr/lib/libboost_mpi-d.so \
+          usr/lib/libboost_mpi_python-mt-d.a usr/lib/libboost_mpi_python-d.a \
+          usr/lib/libboost_mpi_python-mt-d.so usr/lib/libboost_mpi_python-d.so 
\
           usr/lib/libboost_thread-mt-d.a usr/lib/libboost_thread-d.a \
           usr/lib/libboost_thread-mt-d.so usr/lib/libboost_thread-d.so
 
@@ -292,6 +300,19 @@
        dh_install -plibboost-iostreams$(PKGVERSION)-dev
        dh_link -plibboost-iostreams$(PKGVERSION)-dev
 
+       # package libboost-mpi$(SOVERSION)
+       dh_install -plibboost-mpi$(SOVERSION)
+       dh_install -plibboost-mpi$(SOVERSION) \
+          libs/mpi/build/__init__.py debian/tmp/usr/lib/mpi.so 
usr/lib/python2.4/site-packages/mpi
+       dh_install -plibboost-mpi$(SOVERSION) \
+          libs/mpi/build/__init__.py debian/tmp/usr/lib/mpi.so 
usr/lib/python2.5/site-packages/mpi
+       # package libboost-mpi$(PKGVERSION)-dev
+       dh_installdirs -plibboost-mpi$(PKGVERSION)-dev usr/include/boost
+       mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/mpi* \
+          debian/libboost-mpi$(PKGVERSION)-dev/usr/include/boost
+       dh_install -plibboost-mpi$(PKGVERSION)-dev
+       dh_link -plibboost-mpi$(PKGVERSION)-dev
+
        # package libboost-program-options$(SOVERSION)
        dh_install -plibboost-program-options$(SOVERSION)
        # package libboost-program-options$(PKGVERSION)-dev

Reply via email to