From: Jeff Garland (jeff_at_[hidden])
Date: 2007-01-26 09:57:37


Stefan Seefeld wrote:
> Pedro Lamarão wrote:
>> Stefan Seefeld escreveu:
>>> Benjamin Kosnik wrote:
>>>>> Has any thought been put into releasing multiple split boost packages
>>>>> containing orthogonal functionality (boost.python, boost.wave, boost.serialization,
>>>>> etc.) ?
>>>> Some. There are some intra-dependencies, and the split would add more
>>>> complications to an already too-complicated build process IMHO.
>>> Ah well. Unfortunately not everybody agrees that boost is not modular enough.
>> I've seen this discussion before, and never saw any proof of concept for
>> this modular release approach.
>
> I'm not sure what you mean by 'proof of concept'. Use cases I have in mind
> include:
>
> * The ability to install individual components.
> * The ability to build a dependent component such that prerequisite components
> may be preinstalled or part of the same tree (say, on my FC6 laptop, I have
> 'boost.core' and 'boost.graph' rpms installed, and want to compile 'boost.python'
> from mainline).
> * The ability to run test suites for components, with all prerequisite components
> already installed.
>
>
> I believe that having support for the above would make life for (almost)
> everyone much easier, since components could be developed, built, tested, and
> released (oh, and used ! :-) ) more independently.

There's all sorts of things that have already, and can be done. Everyone that
wants a smaller boost can use bcp: http://www.boost.org/tools/bcp/bcp.html.
bjam can already run tests for individual libs as desired.

For the TR1 inclined, John Maddock has created an alpha of a TR1 only distro:

http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=189383

On other Linux systems boost is already 'split up'. On my ubuntu system Boost
  has components for each 'built library', tools, docs, etc. Here's the
relevant output of 'apt-get search boost'

libboost-dev - Boost C++ Libraries development files
libboost-python-dev - Boost.Python Library development files
libboost-python1.33.1 - Boost.Python Library
bcp - tool for extracting subsets of Boost C++ Libraries
bjam - Software build tool
boost-build - Build system
libboost-date-time-dev - set of date-time libraries based on generic
programming concepts
libboost-date-time1.33.1 - set of date-time libraries based on generic
programming concepts
libboost-dbg - Boost C++ Libraries with debug symbols
libboost-doc - Boost.org libraries documentation
libboost-filesystem-dev - filesystem operations (portable paths, iteration
over directories, etc) in C++
libboost-filesystem1.33.1 - filesystem operations (portable paths, iteration
over directories, etc) in C++
libboost-graph-dev - generic graph components and algorithms in C++
libboost-graph1.33.1 - generic graph components and algorithms in C++
libboost-iostreams-dev - Boost.Iostreams Library development files
libboost-iostreams1.33.1 - Boost.Iostreams Library
libboost-program-options-dev - program options library for C++
libboost-program-options1.33.1 - program options library for C++
libboost-regex-dev - regular expression library for C++
libboost-regex1.33.1 - regular expression library for C++
libboost-serialization-dev - serialization library for C++
libboost-signals-dev - managed signals and slots library for C++
libboost-signals1.33.1 - managed signals and slots library for C++
libboost-test-dev - components for writing and executing test suites
libboost-test1.33.1 - components for writing and executing test suites
libboost-thread-dev - portable C++ multi-threading
libboost-thread1.33.1 - portable C++ multi-threading
libboost-wave-dev - C99/C++ preprocessor library

I'd suggest that the RPM based distros might want to follow the lead of ubuntu
if that want smaller granularity boost packages.

Jeff