[pkg-boost-devel] Bug#494832: Creating Boost.MPI packages
Rutger ter Borg
rutger at terborg.net
Thu Jan 8 15:01:05 UTC 2009
Dear Debian Boost Team,
I've managed to create Boost.MPI packages for 1.37 in conjunction with
open-mpi, with the following restrictions
* Boost.MPI's support for Python has to be commented out/deleted from
libs/mpi/build/Jamfile.v2; Boost doesn't compile otherwise. Perhaps this is
an upstream bug.
* No specific naming is done (yet) for the openmpi variant
Please find attached my control and rules files, which creates the necessary
files. I've tested it, and it works like a charm.
Kind regards,
Rutger ter Borg
-------------- next part --------------
#! /usr/bin/make -f
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
export DH_OPTIONS
include /usr/share/quilt/quilt.make
# set the number of build jobs
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
JOBS := -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
PKGVERSION = 1.37
SOVERSION = 1.37.0
SHLIBS_VERSION = (>= 1.37.0-1)
# tags for library name decoration
boost_version = 1_37
# Boost libraries for which we want separate packages
boost_libs := date-time filesystem graph iostreams math 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_math := math_c99 math_c99f math_tr1 math_tr1f
boost_lib_math_long_double := math_c99l math_tr1l
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_thread := -mt -mt-d
# These are special cases for suffixes. Generally come from --buildid, so begin with a dash.
boost_suffixes_python := -py24 -py25
# Files that are generated by filtering a template
filtered_files = \
debian/libboost-dbg.postinst \
debian/libboost-dbg.prerm \
debian/libboost-doc.doc-base \
debian/libboost-python-dev.postinst \
debian/libboost-python-dev.prerm
# Function to map Boost component name to set of shared library names
# Input: Boost component name
# Return: shared library names for the given Boost library
boost_lib = $(if $(boost_lib_$(1)), $(boost_lib_$(1)), $(1))
# Function to map Boost component name to set of variants for the library
# Input: Boost component name
# Return: variants for the given Boost component
boost_variants = $(if $(boost_variants_$(1)), $(boost_variants_$(1)), -mt -mt-d)
# Function to map Boost component name to set of suffixes for the library
# Input: Boost component name
# Return: suffixes for the given Boost component
boost_suffixes = $(if $(boost_suffixes_$(1)), $(boost_suffixes_$(1)),"")
# Helpers to make basic and decorated library names
# Input: library, variant, suffix
# Return: base library filename for short or full name
mk_base_name = usr/lib/libboost_$(subst -,_,$(1))$(2)$(3)
# Input: component, variant
# Return: package name for shared library or development
mk_pkg_lib = libboost$(if $(findstring -d,$(2)),$(PKGVERSION)-dbg,-$(1)$(SOVERSION))
mk_pkg_dev = libboost$(if $(findstring -d,$(2)),$(PKGVERSION)-dbg,-$(1)$(PKGVERSION)-dev)
# Helpers to generate debhelper input filenames.
# Input: component, variant
# Return: prefix to debhelper filenames
mk_deb_lib = debian/$(call mk_pkg_lib,$(1),$(2))
mk_deb_dev = debian/$(call mk_pkg_dev,$(1),$(2))
# Helpers that update debhelper .install or .links files
# Input: component, library, variant, suffix
# Output: none
mk_so_files = $(shell echo debian/tmp/$(call mk_base_name,$(2),$(3),$(4)).so.$(SOVERSION) >> $(call mk_deb_lib,$(1),$(3)).install)
mk_a_files = $(shell echo debian/tmp/$(call mk_base_name,$(2),$(3),$(4)).a >> $(call mk_deb_dev,$(1),$(3)).install)
mk_ln_files = $(shell echo $(call mk_base_name,$(2),$(3),$(4)).so.$(SOVERSION) $(call mk_base_name,$(2),$(3),$(4)).so >> $(call mk_deb_dev,$(1),$(3)).links)
# Function that updates debhelper files for a given library variant
# Input: component, library, variant, suffix
# Output: none
mk_files = $(foreach fn,a so ln,$(call mk_$(fn)_files,$(1),$(2),$(3),$(4)))
# helpers to make and install lintian override files
# Input: package, override
add_override = echo $(1): $(2) >> debian/$(1).lintian-overrides;
# Input: override
add_dbg_override = $(call add_override,libboost$(PKGVERSION)-dbg,$(1))
add_dev_override = $(call add_override,libboost$(PKGVERSION)-dev,$(1))
add_doc_override = $(call add_override,libboost$(PKGVERSION)-doc,$(1))
# Input: component, variant, lintian-warning
add_lib_override = $(call add_override,$(call mk_pkg_lib,$(1),$(2)),$(3))
add_libdev_override = $(call add_override,$(call mk_pkg_dev,$(1),$(2)),$(3))
cp_debhelper = for s in doc-base examples postinst prerm README.Debian; do \
if test -f debian/$(1).$$s; then cp -f debian/$(1).$$s debian/$(2).$$s; fi; done
# Function that updates debhelper files for all library variants shipped.
mk_debhelper_files = \
$(call add_dbg_override,package-name-doesnt-match-sonames) \
$(call add_dbg_override,non-dev-pkg-with-shlib-symlink) \
$(call add_dbg_override,dbg-package-missing-depends) \
$(call add_dev_override,description-synopsis-starts-with-a-capital-letter) \
$(call add_dev_override,spelling-error-in-description) \
$(call add_doc_override,description-synopsis-starts-with-a-capital-letter) \
$(call add_doc_override,extra-license-file) \
$(call add_libdev_override,python,,description-synopsis-starts-with-a-capital-letter) \
$(foreach l, $(boost_libs), \
echo "making debhelper files for $(l)..."; \
$(call add_lib_override,$(l),,package-name-doesnt-match-sonames) \
$(foreach ll, $(call boost_lib,$(l)), \
$(foreach v, $(call boost_variants,$(l)), \
$(foreach suf, $(call boost_suffixes,$(l)), \
$(call mk_files,$(l),$(ll),$(subst -st,,$(v)),$(suf)) \
) \
) \
) \
)
TOOLSET_CONFIG="using gcc : : : <compileflags>-D_REENTRANT ;"
BUILD_LONG_DOUBLE = yes
ifeq ($(DEB_BUILD_ARCH), hppa)
TOOLSET_CONFIG="using gcc : : : <compileflags>-D_REENTRANT <compileflags>-mlong-calls <compileflags>-DBOOST_SP_USE_PTHREADS ;"
BUILD_LONG_DOUBLE = no
else ifeq ($(DEB_BUILD_ARCH), arm)
BUILD_LONG_DOUBLE = no
else ifeq ($(DEB_BUILD_ARCH), armel)
BUILD_LONG_DOUBLE = no
else ifeq ($(DEB_BUILD_ARCH), mips)
BUILD_LONG_DOUBLE = no
else ifeq ($(DEB_BUILD_ARCH), mipsel)
BUILD_LONG_DOUBLE = no
endif
ifeq ($(BUILD_LONG_DOUBLE), yes)
boost_lib_math += $(boost_lib_math_long_double)
else
JAM_OPT += --disable-long-double
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
pyste_prefix = $(CURDIR)/debian/libboost-python$(PKGVERSION)-dev/usr
bjam = $(CURDIR)/tools/jam/src/bjam
# FIXME: find a flag to disable reading /etc/site-config.jam
JAM = $(bjam) $(JOBS) -d2 $(JAM_OPT) --user-config=$(CURDIR)/user-config.jam -sHAVE_ICU=1 debug-symbols=on
jam_variants = variant=release,debug threading=multi link=shared,static
$(bjam):
cd tools/jam/src && \
CFLAGS='-Wall -Werror -fno-strict-aliasing' sh build.sh cc && \
mv bin.*/bjam .
user-config.jam:
echo $(TOOLSET_CONFIG) > $@
echo $(PYTHON_CONFIG1) >> $@
echo $(PYTHON_CONFIG2) >> $@
#echo $(MPI_CONFIG) >> $@
build: build-stamp
build-stamp: $(QUILT_STAMPFN) $(bjam) user-config.jam
dh_testdir
$(JAM) --without-python $(jam_variants)
$(JAM) --with-python --buildid=py24 python=2.4 $(jam_variants)
$(JAM) --with-python --buildid=py25 python=2.5 $(jam_variants)
cd tools/bcp && $(JAM)
cd tools/inspect/build && $(JAM)
cd tools/wave/build && $(JAM)
cd tools/regression/build && $(JAM)
cd libs/python/pyste/install && python setup.py build
touch build-stamp
$(filtered_files): % : %.in
sed -e 's/@PKGVERSION@/$(PKGVERSION)/g' < $< > $@
clean-debhelper:
rm -rf debian/*.install
rm -rf debian/*.links
rm -rf debian/*.lintian-overrides
clean: unpatch clean-debhelper
dh_testdir
dh_testroot
rm -f build-stamp
-cd tools && $(JAM) clean
-$(JAM) clean
-cd libs/python/pyste/install && python setup.py clean
rm -rf libs/python/pyste/install/build
rm -rf tools/jam/src/bootstrap
rm -rf tools/jam/src/bin.*
rm -ff tools/jam/src/bjam
rm -rf bin.v2 dist
rm -rf user-config.jam
dh_clean build-stamp
# This rule is for debugging debian/rules.
make-debhelper: clean-debhelper
@$(call mk_debhelper_files)
install: DH_OPTIONS=-X.svn
install: build clean-debhelper $(filtered_files)
dh_testdir
dh_testroot
dh_clean -k
@$(call cp_debhelper,libboost-dbg,libboost$(PKGVERSION)-dbg)
@$(call cp_debhelper,libboost-dev,libboost$(PKGVERSION)-dev)
@$(call cp_debhelper,libboost-doc,libboost$(PKGVERSION)-doc)
@$(call cp_debhelper,libboost-python-dev,libboost-python$(PKGVERSION)-dev)
$(JAM) --prefix=$(CURDIR)/debian/tmp/usr $(jam_variants) install
install --mode=755 -D debian/rtupdate debian/tmp/usr/share/python/runtime.d/libboost-python$(PKGVERSION)-dev.rtupdate
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*
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
find debian/tmp -name .cvsignore | xargs rm -f
find debian -empty -type f | xargs rm -f
# generate (some) debhelper files
@$(call mk_debhelper_files)
# package libboost-dbg
dh_install -plibboost$(PKGVERSION)-dbg
dh_install -plibboost$(PKGVERSION)-dbg --autodest \
debian/tmp/usr/share/python/runtime.d/libboost$(PKGVERSION)-dbg.rtupdate
# package libboost$(PKGVERSION)-dev
dh_install -plibboost$(PKGVERSION)-dev \
debian/tmp/usr/include/boost-$(boost_version)/boost \
usr/include
dh_install -plibboost$(PKGVERSION)-dev dist/bin/bcp usr/bin
dh_installman -plibboost$(PKGVERSION)-dev debian/bcp.1
# package libboost-doc
rm -rf $(htmldir)
mkdir -p $(htmldir)
cat debian/documentation-files | xargs cp --parents --target-directory=$(htmldir)
find doc libs -name doc | xargs -n1 cp --archive --target-directory=$(htmldir)
rm $(htmldir)/doc/html/images/callouts/Thumbs.db
rm -rf $(htmldir)/boost
dh_link -plibboost$(PKGVERSION)-doc \
usr/include/boost \
usr/share/doc/libboost$(PKGVERSION)-doc/HTML/boost
mkdir -p $(exampledir)
cat debian/example-files | xargs cp -a --parents --target-directory=$(exampledir)
find $(exampledir) -type f | xargs chmod 644
# package libboost-date-time$(SOVERSION)
dh_install -plibboost-date-time$(SOVERSION)
# package libboost-date-time$(PKGVERSION)-dev
dh_installdirs -plibboost-date-time$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/date_time* \
debian/libboost-date-time$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-date-time$(PKGVERSION)-dev
dh_link -plibboost-date-time$(PKGVERSION)-dev
# package libboost-filesystem$(SOVERSION)
dh_install -plibboost-filesystem$(SOVERSION)
# package libboost-filesystem$(PKGVERSION)-dev
dh_installdirs -plibboost-filesystem$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/filesystem* \
debian/libboost-filesystem$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-filesystem$(PKGVERSION)-dev
dh_link -plibboost-filesystem$(PKGVERSION)-dev
# package libboost-graph$(SOVERSION)
dh_install -plibboost-graph$(SOVERSION)
# package libboost-graph$(PKGVERSION)-dev
dh_installdirs -plibboost-graph$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/graph \
debian/libboost-graph$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-graph$(PKGVERSION)-dev
dh_link -plibboost-graph$(PKGVERSION)-dev
# package libboost-iostreams$(SOVERSION)
dh_install -plibboost-iostreams$(SOVERSION)
# package libboost-iostreams$(PKGVERSION)-dev
dh_installdirs -plibboost-iostreams$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/iostreams* \
debian/libboost-iostreams$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-iostreams$(PKGVERSION)-dev
dh_link -plibboost-iostreams$(PKGVERSION)-dev
# package libboost-math$(SOVERSION)
dh_install -plibboost-math$(SOVERSION)
# package libboost-math$(PKGVERSION)-dev
dh_installdirs -plibboost-math$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/math* \
debian/libboost-math$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-math$(PKGVERSION)-dev
dh_link -plibboost-math$(PKGVERSION)-dev
# package libboost-mpi$(SOVERSION)
dh_install -plibboost-mpi$(SOVERSION)
# 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
dh_installdirs -plibboost-program-options$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/program_options* \
debian/libboost-program-options$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-program-options$(PKGVERSION)-dev
dh_link -plibboost-program-options$(PKGVERSION)-dev
# package libboost-python$(SOVERSION)
dh_install -plibboost-python$(SOVERSION)
# package libboost-python$(PKGVERSION)-dev
dh_installdirs -plibboost-python$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/python* \
debian/libboost-python$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-python$(PKGVERSION)-dev --autodest \
debian/tmp/usr/share/python/runtime.d/libboost-python$(PKGVERSION)-dev.rtupdate
dh_link -plibboost-python$(PKGVERSION)-dev
cd libs/python/pyste/install && python setup.py install --no-compile --prefix=$(pyste_prefix) --install-lib=$(pyste_prefix)/share/python-support/pyste
mv $(pyste_prefix)/bin/pyste.py $(pyste_prefix)/bin/pyste
dh_installman -plibboost-python$(PKGVERSION)-dev debian/pyste.1
# package libboost-regex$(SOVERSION)
dh_install -plibboost-regex$(SOVERSION)
# package libboost-regex$(PKGVERSION)-dev
dh_installdirs -plibboost-regex$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/*regex* \
debian/libboost-regex$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-regex$(PKGVERSION)-dev
dh_link -plibboost-regex$(PKGVERSION)-dev
# package libboost-serialization$(SOVERSION)
dh_install -plibboost-serialization$(SOVERSION)
# package libboost-serialization$(PKGVERSION)-dev
dh_installdirs -plibboost-serialization$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/*serialization* \
debian/libboost-serialization$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-serialization$(PKGVERSION)-dev
dh_link -plibboost-serialization$(PKGVERSION)-dev
# package libboost-signals$(SOVERSION)
dh_install -plibboost-signals$(SOVERSION)
# package libboost-signals$(PKGVERSION)-dev
dh_installdirs -plibboost-signals$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/*signal* \
debian/libboost-signals$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-signals$(PKGVERSION)-dev
dh_link -plibboost-signals$(PKGVERSION)-dev
# package libboost-system$(SOVERSION)
dh_install -plibboost-system$(SOVERSION)
# package libboost-system$(PKGVERSION)-dev
dh_installdirs -plibboost-system$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/system \
debian/libboost-system$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-system$(PKGVERSION)-dev
dh_link -plibboost-system$(PKGVERSION)-dev
# package libboost-test$(SOVERSION)
dh_install -plibboost-test$(SOVERSION)
# package libboost-test$(PKGVERSION)-dev
dh_installdirs -plibboost-test$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/test \
debian/libboost-test$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-test$(PKGVERSION)-dev
dh_link -plibboost-test$(PKGVERSION)-dev
# package libboost-thread$(SOVERSION)
dh_install -plibboost-thread$(SOVERSION)
# package libboost-thread$(PKGVERSION)-dev
dh_installdirs -plibboost-thread$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/thread* \
debian/libboost-thread$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-thread$(PKGVERSION)-dev
# package libboost-wave$(SOVERSION)
dh_install -plibboost-wave$(SOVERSION)
# package libboost-wave$(PKGVERSION)-dev
dh_installdirs -plibboost-wave$(PKGVERSION)-dev usr/include/boost
mv debian/libboost$(PKGVERSION)-dev/usr/include/boost/wave* \
debian/libboost-wave$(PKGVERSION)-dev/usr/include/boost
dh_install -plibboost-wave$(PKGVERSION)-dev
dh_link -plibboost-wave$(PKGVERSION)-dev
# This single target is used to build all the packages, all at once, or
# one at a time. So keep in mind: any options passed to commands here will
# affect _all_ packages. Anything you want to only affect one package
# should be put in another target, such as the install target.
binary-common:
dh_testdir
dh_testroot
dh_installdocs --all debian/README.Debian
dh_installexamples
dh_installinfo
dh_installchangelogs
dh_lintian
dh_strip --dbg-package=libboost1.37-dbg -X"-d-"
dh_link
dh_compress -Xlibboost$(PKGVERSION)-doc/HTML
dh_pysupport
dh_fixperms
@if [ "$(DH_OPTIONS)" = "-a" ]; then \
echo DH_OPTIONS=-plibboost$(PKGVERSION)-dbg dh_makeshlibs -V"libboost$(PKGVERSION)-dbg $(SHLIBS_VERSION)"; \
DH_OPTIONS=-plibboost$(PKGVERSION)-dbg dh_makeshlibs -V"libboost$(PKGVERSION)-dbg $(SHLIBS_VERSION)"; \
for name in $(boost_libs); do \
lib=libboost-$${name}$(SOVERSION); \
echo DH_OPTIONS=-p$${lib} dh_makeshlibs -V"$${lib} $(SHLIBS_VERSION)"; \
DH_OPTIONS=-p$${lib} dh_makeshlibs -V"$${lib} $(SHLIBS_VERSION)"; \
done; \
fi
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture independant packages using the common target.
binary-indep: build install
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture dependant packages using the common target.
binary-arch: build install
$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
# Any other binary targets build just one binary package at a time.
binary-%: build install
$(MAKE) -f debian/rules binary-common DH_OPTIONS=-p$*
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary-common binary install
-------------- next part --------------
Source: boost1.37
Homepage: http://www.boost.org/
Section: libs
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 (>= 7), quilt, bison, flex, docbook-to-man, xsltproc, doxygen, zlib1g-dev, libbz2-dev, libicu-dev, python-all-dev, python-support (>= 0.6)
XS-Python-Version: 2.4, 2.5
Vcs-Browser: http://svn.debian.org/wsvn/pkg-boost/boost/trunk/
Vcs-Svn: svn://svn.debian.org/svn/pkg-boost/boost/trunk
Standards-Version: 3.8.0
Package: libboost1.37-dbg
Architecture: any
Section: libdevel
Priority: extra
Depends: ${shlibs:Depends}
Conflicts: libboost-dbg, libboost1.35-dbg, libboost1.36-dbg
Suggests: libboost1.37-dev (= ${binary:Version})
Description: Boost C++ Libraries with debug symbols
Part of the Boost C++ Libraries collection.
.
These libraries are built with debug symbols. They are useful to debug
programs which use Boost. These must be used also at build/link time.
Package: libboost1.37-dev
Architecture: any
Section: libdevel
Depends: ${shlibs:Depends}, libstdc++-dev, libboost-serialization1.37-dev (= ${binary:Version})
Recommends: libboost1.37-doc, libboost-date-time1.37-dev, libboost-filesystem1.37-dev, libboost-graph1.37-dev, libboost-iostreams1.37-dev, libboost-program-options1.37-dev, libboost-python1.37-dev, libboost-regex1.37-dev, libboost-signals1.37-dev, libboost-test1.37-dev, libboost-thread1.37-dev, libboost-wave1.37-dev
Conflicts: libboost-dev, bcp, libboost1.35-dev, libboost1.36-dev
Description: Boost C++ Libraries development files
The Boost web site provides free, peer-reviewed, portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. One goal is to establish "existing practice" and
provide reference implementations so that the Boost libraries are
suitable for eventual standardization. Some of the libraries have
already been proposed for inclusion in the C++ Standards Committee's
upcoming C++ Standard Library Technical Report.
.
This package provides headers and the auxiliary tool bcp.
.
For the following subprojects separate packages exist:
date-time, filesystem, graph, python, regex, signals, test, and thread.
Package: libboost1.37-doc
Homepage: http://www.boost.org/libs/
Architecture: all
Section: doc
Suggests: libboost1.37-dev (>= ${source:Version})
Conflicts: libboost-doc, libboost1.35-doc, libboost1.36-doc
Description: Boost.org libraries documentation
The Boost web site provides free, peer-reviewed, portable C++ source
libraries. The emphasis is on libraries which work well with the C++
Standard Library. One goal is to establish "existing practice" and
provide reference implementations so that the Boost libraries are
suitable for eventual standardization. Some of the libraries have
already been proposed for inclusion in the C++ Standards Committee's
upcoming C++ Standard Library Technical Report.
.
This is documentation for the libboost1.37-dev package in HTML format.
Some pages point to header files provided in libboost1.37-dev package,
so it is suggested to install the latter as well.
Package: libboost-date-time1.37.0
Homepage: http://www.boost.org/libs/date_time/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: set of date-time libraries based on generic programming concepts
Part of the Boost C++ Libraries collection.
.
These libraries are intended to make programming with dates and times
almost as simple and natural as programming with strings and integers.
Package: libboost-date-time1.37-dev
Homepage: http://www.boost.org/libs/date_time/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-date-time1.37.0 (= ${binary:Version}), libboost-serialization1.37-dev (= ${binary:Version})
Conflicts: libboost-date-time-dev, libboost-date-time1.36-dev, libboost-date-time1.37-dev
Description: set of date-time libraries based on generic programming concepts
Part of the Boost C++ Libraries collection.
.
These libraries are intended to make programming with dates and times
almost as simple and natural as programming with strings and integers.
Package: libboost-filesystem1.37.0
Homepage: http://boost.org/libs/filesystem/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: filesystem operations (portable paths, iteration over directories, etc) in C++
Part of the Boost C++ Libraries collection.
.
The Boost Filesystem Library provides portable facilities to query and
manipulate paths, files, and directories. The goal is to
facilitate portable script-like operations from within C++ programs.
Package: libboost-filesystem1.37-dev
Homepage: http://boost.org/libs/filesystem/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-filesystem1.37.0 (= ${binary:Version}), libboost-system1.37-dev (= ${binary:Version})
Conflicts: libboost-filesystem-dev, libboost-filesystem1.35-dev, libboost-filesystem1.36-dev
Description: filesystem operations (portable paths, iteration over directories, etc) in C++
Part of the Boost C++ Libraries collection.
.
The Boost Filesystem Library provides portable facilities to query and
manipulate paths, files, and directories. The goal is to
facilitate portable script-like operations from within C++ programs.
Package: libboost-graph1.37.0
Homepage: http://www.boost.org/libs/graph/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Suggests: graphviz
Description: generic graph components and algorithms in C++
Part of the Boost C++ Libraries collection.
.
Graphs are mathematical abstractions that are useful for solving
many types of problems in computer science. Consequently, these
abstractions must also be represented in computer programs. A
standardized generic interface for traversing graphs is of utmost
importance to encourage reuse of graph algorithms and data structures.
Package: libboost-graph1.37-dev
Homepage: http://www.boost.org/libs/graph/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-serialization1.37-dev (= ${binary:Version}), libboost-test1.37-dev (= ${binary:Version})
Recommends: libboost-graph1.37.0 (= ${binary:Version})
Conflicts: libboost-graph-dev, libboost-graph1.35-dev, libboost-graph1.36-dev
Description: generic graph components and algorithms in C++
Part of the Boost C++ Libraries collection.
.
Graphs are mathematical abstractions that are useful for solving
many types of problems in computer science. Consequently, these
abstractions must also be represented in computer programs. A
standardized generic interface for traversing graphs is of utmost
importance to encourage reuse of graph algorithms and data structures.
Package: libboost-iostreams1.37.0
Homepage: http://www.boost.org/libs/iostreams/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: Boost.Iostreams Library
Part of the Boost C++ Libraries collection.
.
Boost.Iostreams are a collection of concepts and set of templates
which turn models of these concepts into C++ standard library streams
and stream buffers.
Package: libboost-iostreams1.37-dev
Homepage: http://www.boost.org/libs/iostreams/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-regex1.37-dev (= ${binary:Version}), libboost-iostreams1.37.0 (= ${binary:Version})
Conflicts: libboost-iostreams-dev, libboost-iostreams1.35-dev, libboost-iostreams1.36-dev
Description: Boost.Iostreams Library development files
Part of the Boost C++ Libraries collection.
.
Boost.Iostreams are a collection of concepts and set of templates
which turn models of these concepts into C++ standard library streams
and stream buffers.
Package: libboost-math1.37.0
Homepage: http://www.boost.org/libs/math/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: Boost.Math Library
Part of the Boost C++ Libraries collection.
.
This library is divided into three interconnected parts:
* Statistical Distributions: Provides a reasonably comprehensive set of
statistical distributions, upon which higher level statistical tests
can be built.
* Mathematical Special Functions: Provides a small number of high quality
special functions, initially these were concentrated on functions used in
statistical applications along with those in the Technical Report on
C++ Library Extensions.
* Implementation Toolkit: Provides many of the tools required to implement
mathematical special functions.
Package: libboost-math1.37-dev
Homepage: http://www.boost.org/libs/math/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-math1.37.0 (= ${binary:Version})
Description: Boost.Math Library development files
Part of the Boost C++ Libraries collection.
.
This library is divided into three interconnected parts:
* Statistical Distributions: Provides a reasonably comprehensive set of
statistical distributions, upon which higher level statistical tests
can be built.
* Mathematical Special Functions: Provides a small number of high quality
special functions, initially these were concentrated on functions used in
statistical applications along with those in the Technical Report on
C++ Library Extensions.
* Implementation Toolkit: Provides many of the tools required to implement
mathematical special functions.
Package: libboost-program-options1.37.0
Homepage: http://www.boost.org/libs/program_options/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: program options library for C++
Part of the Boost C++ Libraries collection.
.
Library to let program developers obtain program options, that is
(name, value) pairs from the user, via conventional methods such as
command line and config file.
Package: libboost-program-options1.37-dev
Homepage: http://www.boost.org/libs/program_options/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-program-options1.37.0 (= ${binary:Version})
Conflicts: libboost-program-options-dev, libboost-program-options1.35-dev, libboost-program-options1.36-dev
Description: program options library for C++
Part of the Boost C++ Libraries collection.
.
Library to let program developers obtain program options, that is
(name, value) pairs from the user, via conventional methods such as
command line and config file.
Package: libboost-python1.37.0
Homepage: http://www.boost.org/libs/python/
Architecture: any
Section: python
Depends: ${shlibs:Depends}
Description: Boost.Python Library
Part of the Boost C++ Libraries collection.
.
The Boost Python Library is used to quickly and easily export a C++
library to Python such that the Python interface is very similar to
the C++ interface. It is designed to be minimally intrusive on your
C++ design. In most cases, you should not have to alter your C++
classes in any way in order to use them with Boost.Python. The
system should simply "reflect" your C++ classes and functions into
Python. The major features of Boost.Python include support for:
Subclassing extension types in Python, Overriding virtual functions
in Python, Member function Overloading, Automatic wrapping of
numeric operators among others.
Package: libboost-python1.37-dev
Homepage: http://www.boost.org/libs/python/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-python1.37.0 (= ${binary:Version}), python-dev, ${python:Depends}, python (>= 2.5) | python-celementtree | python-elementtree, gccxml
Suggests: libboost1.37-doc
Conflicts: libboost-python-dev, pyste, libboost-python1.35-dev, libboost-python1.36-dev
Description: Boost.Python Library development files
Part of the Boost C++ Libraries collection.
.
The Boost Python Library is used to quickly and easily export a C++
library to Python such that the Python interface is very similar to
the C++ interface. It is designed to be minimally intrusive on your
C++ design. In most cases, you should not have to alter your C++
classes in any way in order to use them with Boost.Python. The
system should simply "reflect" your C++ classes and functions into
Python. The major features of Boost.Python include support for:
Subclassing extension types in Python, Overriding virtual functions
in Python, Member function Overloading, Automatic wrapping of
numeric operators among others.
.
This package also contains the pyste Boost.Python code generator that
allows the user to specify classes and functions to be exported using
a simple interface file, which following the Boost.Python's
philosophy, is simple Python code.
.
This package allows development of a Python interface for all current
versions of Python in Debian. Code using this library will need also
one of the Python development packages.
Package: libboost-regex1.37.0
Homepage: http://www.boost.org/libs/regex/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: regular expression library for C++
Part of the Boost C++ Libraries collection.
.
Regular expressions are a form of pattern-matching that are often
used in text processing; many users will be familiar with the Unix
utilities grep, sed and awk, and the programming language perl, each
of which make extensive use of regular expressions. Traditionally C++
users have been limited to the POSIX C APIs for manipulating regular
expressions, and while regex does provide these APIs, they do not
represent the best way to use the library. For example regex can cope
with wide character strings, or search and replace operations (in a
manner analogous to either sed or perl), something that traditional C
libraries can not do.
Package: libboost-regex1.37-dev
Homepage: http://www.boost.org/libs/regex/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-regex1.37.0 (= ${binary:Version}), libicu-dev
Conflicts: libboost-regex-dev, libboost-regex1.35-dev, libboost-regex1.36-dev
Description: regular expression library for C++
Part of the Boost C++ Libraries collection.
.
Regular expressions are a form of pattern-matching that are often
used in text processing; many users will be familiar with the Unix
utilities grep, sed and awk, and the programming language perl, each
of which make extensive use of regular expressions. Traditionally C++
users have been limited to the POSIX C APIs for manipulating regular
expressions, and while regex does provide these APIs, they do not
represent the best way to use the library. For example regex can cope
with wide character strings, or search and replace operations (in a
manner analogous to either sed or perl), something that traditional C
libraries can not do.
Package: libboost-serialization1.37.0
Homepage: http://www.boost.org/libs/serialization/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: serialization library for C++
This is a partial list of provided functionalities:
.
* proper restoration of pointers to shared data
* serialization of STL containers and other commonly used templates
* data portability - streams of bytes created on one platform should
be readable on any other
* archive interface must be rich enough to permit the creation of an
archive that presents serialized data as XML in a useful manner
.
serialization: the reversible deconstruction of an arbitrary set of
C++ data structures to a sequence of bytes.
archive: to refer to a specific rendering of this stream of bytes.
Package: libboost-serialization1.37-dev
Homepage: http://www.boost.org/libs/serialization/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-serialization1.37.0 (= ${binary:Version})
Conflicts: libboost-serialization-dev, libboost-serialization1.35-dev, libboost-serialization1.36-dev
Description: serialization library for C++
This is a partial list of provided functionalities:
.
* proper restoration of pointers to shared data
* serialization of STL containers and other commonly used templates
* data portability - streams of bytes created on one platform should
be readable on any other
* archive interface must be rich enough to permit the creation of an
archive that presents serialized data as XML in a useful manner
.
serialization: the reversible deconstruction of an arbitrary set of
C++ data structures to a sequence of bytes.
archive: to refer to a specific rendering of this stream of bytes.
Package: libboost-signals1.37.0
Homepage: http://www.boost.org/libs/signals/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: managed signals and slots library for C++
Part of the Boost C++ Libraries collection.
.
Signals represent callbacks with multiple targets, and are also
called publishers or events in similar systems. Signals are connected
to some set of slots, which are callback receivers (also called event
targets or subscribers), which are called when the signal is
"emitted."
Package: libboost-signals1.37-dev
Homepage: http://www.boost.org/libs/signals/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-signals1.37.0 (= ${binary:Version})
Conflicts: libboost-signals-dev, libboost-signals1.35-dev, libboost-signals1.36-dev
Description: managed signals and slots library for C++
Part of the Boost C++ Libraries collection.
.
Signals represent callbacks with multiple targets, and are also
called publishers or events in similar systems. Signals are connected
to some set of slots, which are callback receivers (also called event
targets or subscribers), which are called when the signal is
"emitted."
Package: libboost-system1.37.0
Homepage: http://www.boost.org/libs/system/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: Operating system (e.g. diagnostics support) library
Part of the Boost C++ Libraries collection.
.
The Boost System library provides simple, light-weight error_code
objects that encapsulate system-specific error code values, yet also
provide access to more abstract and portable error conditions via
error_condition objects. Because error_code objects can represent
errors from sources other than the operating system, including
user-defined sources, each error_code and error_condition has an
associated error_category.
Package: libboost-system1.37-dev
Homepage: http://www.boost.org/libs/system/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-system1.37.0 (= ${binary:Version})
Description: Operating system (e.g. diagnostics support) library
Part of the Boost C++ Libraries collection.
.
The Boost System library provides simple, light-weight error_code
objects that encapsulate system-specific error code values, yet also
provide access to more abstract and portable error conditions via
error_condition objects. Because error_code objects can represent
errors from sources other than the operating system, including
user-defined sources, each error_code and error_condition has an
associated error_category.
Package: libboost-test1.37.0
Homepage: http://www.boost.org/libs/test/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: components for writing and executing test suites
Part of the Boost C++ Libraries collection. The library contains
several components.
.
* Basic execution, error detection, and reporting facility.
* Facilities to monitor program execution and produce error reports.
* Unit test framework to simplify writing test cases.
Package: libboost-test1.37-dev
Homepage: http://www.boost.org/libs/test/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-test1.37.0 (= ${binary:Version})
Conflicts: libboost-test-dev, libboost-test1.35-dev, libboost-test1.36-dev
Description: components for writing and executing test suites
Part of the Boost C++ Libraries collection. The library contains
several components.
.
* Basic execution, error detection, and reporting facility.
* Facilities to monitor program execution and produce error reports.
* Unit test framework to simplify writing test cases.
Package: libboost-thread1.37.0
Homepage: http://www.boost.org/libs/thread/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: portable C++ multi-threading
Part of the Boost C++ Libraries collection.
.
Toolkit for writing C++ programs that execute as multiple,
asynchronous, independent, threads-of-execution. Each thread has its
own machine state including program instruction counter and
registers.
Package: libboost-thread1.37-dev
Homepage: http://www.boost.org/libs/thread/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-date-time1.37-dev (= ${binary:Version}), libboost-thread1.37.0 (= ${binary:Version})
Conflicts: libboost-thread-dev, libboost-thread1.35-dev, libboost-thread1.36-dev
Description: portable C++ multi-threading
Part of the Boost C++ Libraries collection.
.
Toolkit for writing C++ programs that execute as multiple,
asynchronous, independent, threads-of-execution. Each thread has its
own machine state including program instruction counter and
registers.
Package: libboost-wave1.37.0
Homepage: http://www.boost.org/libs/wave/
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: C99/C++ preprocessor library
Part of the Boost C++ Libraries collection.
.
The Wave C++ preprocessor library is a Standards conformant
implementation of the mandated C99/C++ preprocessor functionality
packed behind a simple to use interface, which integrates well with
the well known idioms of the Standard Template Library (STL).
Package: libboost-wave1.37-dev
Homepage: http://www.boost.org/libs/wave/
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-serialization1.37-dev (= ${binary:Version}), libboost-wave1.37.0 (= ${binary:Version}), libboost-filesystem1.37-dev (= ${binary:Version})
Conflicts: libboost-wave-dev, libboost-wave1.35-dev, libboost-wave1.36-dev
Description: C99/C++ preprocessor library
Part of the Boost C++ Libraries collection.
.
The Wave C++ preprocessor library is a Standards conformant
implementation of the mandated C99/C++ preprocessor functionality
packed behind a simple to use interface, which integrates well with
the well known idioms of the Standard Template Library (STL).
Package: libboost-mpi1.37.0
Homepage: http://www.boost.org/doc/html/mpi.html
Architecture: any
Section: libs
Depends: ${shlibs:Depends}
Description: C++ interface to the Message Passing Interface (MPI) - OpenMPI version
Part of the Boost C++ Libraries collection.
.
The Boost.MPI library provides an alternative C++ interface to MPI that
supports modern C++ development styles, including complete support for
user-defined data types and C++ Standard Library types, arbitrary function
objects for collective algorithms, and the use of modern C++ library
techniques to maintain maximal efficiency.
Package: libboost-mpi1.37-dev
Homepage: http://www.boost.org/doc/html/mpi.html
Architecture: any
Section: libdevel
Depends: libboost1.37-dev (= ${binary:Version}), libboost-serialization1.37-dev (= ${binary:Version}), libboost-mpi1.37.0 (= ${binary:Version}), libopenmpi-dev
Description: C++ interface to the Message Passing Interface (MPI) - OpenMPI version
Part of the Boost C++ Libraries collection.
.
The Boost.MPI library provides an alternative C++ interface to MPI that
supports modern C++ development styles, including complete support for
user-defined data types and C++ Standard Library types, arbitrary function
objects for collective algorithms, and the use of modern C++ library
techniques to maintain maximal efficiency.
More information about the pkg-boost-devel
mailing list