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