
Steve M. Robbins wrote:
is useful for a linux distribution (Debian) to keep multiple versions of Boost available simultaneously; e.g. 1.34.1 and 1.35. Currently Debian provides only the latest version of Boost.
Hi Steve, I think Debian (and other distributions) must keep multiple versions available. I have written a couple of GPL programs that currently require 1.34; a Debian user who has compiled these from source will be unhappy if they fail to work when they upgrade their Boost libraries. I could fix my code to work with 1.35, but that will be broken for all those other users who don't have 1.35 available in their distribution. So I'll probably wait until there are Debian and Fedora releases including 1.35 before changing the stable version of my code to use it. An alternative is for me to #if between the different versions. But my life's too short to do that. (And if I did want to do it, how could I install multiple versions on my Debian development machine?) Things are less serious for programs that depend only on header-only libraries, since they will only stop compiling rather than stop running when you upgrade the libraries under their feet. You then have to determine how to name the different Boost versions' header directories and library files. And then how to tell the applications' build systems what names you have chosen. I like pkg-config for this, and did mention it on this list once but without any apparent interest. [Anyterm has been shipping with a version of Boost.Interprocess - at that time called Boost.Shmem - included in its source tree since December 2005 (doubling its size). The next Debian stable release might happen before the end of this year. So that means that it will have taken 3 years for that Boost code to "trickle down" to Linux end-users. Ironically, I plan to deprecate the feature that needed shared memory soon. It's worth noting that Debian, and presumably other distributions, discourage including special versions of libraries within the applications that use them. This is both to reduce the size of the distribution and to avoid the scenario where a library security bug has to be fixed in "hidden" copies of libraries. This problem with a non-Boost library is one of the reasons why Anyterm has never been Debianised.] Cheers, Phil.