[pkg-boost-devel] Bug#490242: boost1.35: please build boost-mpi libraries
Tilman Koschnick
til at subnetz.org
Thu Jul 10 22:48:13 UTC 2008
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
-------------- next part --------------
=== 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 <pkg-boost-devel at lists.alioth.debian.org>
Uploaders: Steve M. Robbins <smr at debian.org>, Domenico Andreoli <cavok at debian.org>, Christophe Prud'homme <prudhomm at debian.org>
-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
More information about the pkg-boost-devel
mailing list