[pkg-boost-devel] Bug#426871: new proposal: boost-config
Steve M. Robbins
steve at sumost.ca
Mon Aug 6 21:06:10 UTC 2007
On Sat, Aug 04, 2007 at 01:59:23AM +0200, Domenico Andreoli wrote:
> Hi,
>
> Suppose two systems, a Fedora based on gcc 4.1 and a Debian based
> on gcc 4.2, both sporting Boost 1.35.0 built with --layout=system,
> for simplicity.
>
> Now Joe User writes his app on the Fedora system and links Boost.DateTime
> using the familiar -lboost_date_time switch. He builds the app and
> tries it on both his Fedora system and the friend's Debian one. What is
> going to happen?
[I like answering rhetorical questions]
If you mean he copies the BINARY from Fedora to Debian, I expect all
hell to break loose. I expect that regardless of whether he uses
boost or not: there's likely to be version skew in dozens of other
libraries, e.g. libc.
If you mean he copies the source and rebuilds, I expect things to work
fine. Why wouldn't it?
> BTW, the user is a free software developer and his app is going to be
> ported also to other Microsoft, UNIX and popular embedded operating
> systems, where Boost has been built mixing --layout=system and
> --layout=versioned. Now he faces the problem of linking to the Boost
> library of interest. How he is supposed to solve the problem?
I don't really know. I vaguely thought that using JAM and Boost.Build
would carry the day. Wouldn't it?
> This is a new summary of the binary and source portability problems
> that current build system is inflicting on the Boost libraries.
>
> My proposal is:
>
> 1) dump the --layout= thing, versioned/decorated sonames are always used
>
> 2) provide symlinks like the following, when appropriate:
>
> /usr/lib/libboost_date_time-gcc42-1_34_1.so -> libboost_date_time-gcc42-1_34_1.so.1.34.1
> /usr/lib/libboost_date_time-gcc42-d-1_34_1.so -> libboost_date_time-gcc42-d-1_34_1.so.1.34.1
> /usr/lib/libboost_date_time-gcc42-mt-1_34_1.so -> libboost_date_time-gcc42-mt-1_34_1.so.1.34.1
> /usr/lib/libboost_date_time-gcc42-mt-d-1_34_1.so -> libboost_date_time-gcc42-mt-d-1_34_1.so.1.34.1
>
> 3) provide also these symlinks, if desired:
> /usr/lib/libboost_date_time.so -> libboost_date_time-gcc42-1_34_1.so
> /usr/lib/libboost_date_time-d.so -> libboost_date_time-gcc42-d-1_34_1.so
> /usr/lib/libboost_date_time-mt.so -> libboost_date_time-gcc42-mt-1_34_1.so
> /usr/lib/libboost_date_time-mt-d.so -> libboost_date_time-gcc42-mt-d-1_34_1.so
I'm with you so far. I believe this is what you implemented in the experimental
1.34.1 upload, right?
I would go further and argue that --layout=system should do exactly
what you propose and also use the full boost version in the SONAME of
the libraries (which Debian has been doing all along but
--layout=system does not do currently).
Thoughts?
-Steve
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://lists.alioth.debian.org/pipermail/pkg-boost-devel/attachments/20070806/9337af21/attachment-0005.pgp
More information about the pkg-boost-devel
mailing list