[pkg-boost-commits] r14171 - boost/trunk/debian
smr at alioth.debian.org
smr at alioth.debian.org
Sat Mar 22 16:25:34 UTC 2008
Author: smr
Date: 2008-03-22 16:25:33 +0000 (Sat, 22 Mar 2008)
New Revision: 14171
Modified:
boost/trunk/debian/Notes
boost/trunk/debian/README.Debian
boost/trunk/debian/changelog
boost/trunk/debian/libboost-python-dev.README.Debian
Log:
Add notes about Python runtime support; remove obsolete notes.
Modified: boost/trunk/debian/Notes
===================================================================
--- boost/trunk/debian/Notes 2008-03-22 16:10:20 UTC (rev 14170)
+++ boost/trunk/debian/Notes 2008-03-22 16:25:33 UTC (rev 14171)
@@ -1,22 +1,3 @@
- Built Libraries
- ---------------
-
- static shared
-date_time yes yes
-filesystem yes yes
-graph yes yes
-python yes* yes
-regex yes yes
-signals yes yes
-test yes yes (comprises 3 libraries)
-thread no yes
-
-* built but not useful, thus not distributed.
-
-Any static-only libs (none at the present time) are incorporated into
-boost-dev package.
-
-
Thread Support
--------------
@@ -25,13 +6,83 @@
on command line in debian/rules. For graph library, set in Makefile.
- STLPort and GCC 3
- -----------------
+ Boost.Python
+ ------------
-Boost built using GCC 3 passes the regression testing. This is
-the default GCC now, so stlport is no longer used.
+Versions up to 1.34.1-7 built only with python 2.4. Various people
+agitated for a python 2.5 version, and several desired both 2.4 and
+2.5 simultaneously. This sparked some mailing list talk, e.g.
+http://lists.debian.org/debian-python/2008/02/msg00033.html
+Runtime Shared Libraries
+------------------------
+Of the four options presented in the above post the easiest solution
+is to use --buildid, as that embeds the buildid into the SONAME. The
+py24 and py25 shared libraries can thus happily coexist.
+
+The next challenge is to ensure that all the existing Boost.Python
+SONAMES continue to work.
+
+libboost-python1.34.1 installs:
+
+ /usr/lib/libboost_python-gcc42-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc42-mt-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc41-mt-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc41-1_34_1.so.1.34.1
+
+while libboost-dbg installs:
+
+ /usr/lib/libboost_python-gcc42-d-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc42-mt-d-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc41-mt-d-1_34_1.so.1.34.1
+ /usr/lib/libboost_python-gcc41-d-1_34_1.so.1.34.1
+
+Which means the following 8 SONAMEs must exist:
+
+ libboost_python-gcc42-1_34_1.so.1.34.1
+ libboost_python-gcc42-mt-1_34_1.so.1.34.1
+ libboost_python-gcc42-d-1_34_1.so.1.34.1
+ libboost_python-gcc42-mt-d-1_34_1.so.1.34.1
+
+ libboost_python-gcc41-1_34_1.so.1.34.1
+ libboost_python-gcc41-mt-1_34_1.so.1.34.1
+ libboost_python-gcc41-d-1_34_1.so.1.34.1
+ libboost_python-gcc41-mt-d-1_34_1.so.1.34.1
+
+And these must be python 2.4 versions, i.e. symlinks
+such as
+
+ libboost_python-gcc42-1_34_1.so.1.34.1 -->
+ libboost_python-gcc42-1_34_1-py24.so.1.34.1
+
+Link Libraries
+--------------
+
+The link libraries are similarly generated in fully-decorated
+form, e.g.
+
+ libboost_python-gcc42-1_34_1-py24.so
+ libboost_python-gcc42-1_34_1-py25.so
+
+We generate simpler names without gcc and boost versioning:
+
+ libboost_python-py24.so -> libboost_python-gcc42-1_34_1-py24.so
+ libboost_python-py25.so -> libboost_python-gcc42-1_34_1-py25.so
+
+This lets packagers link with an explicit python version, perhaps
+building an extension for all supported python versions.
+
+For those who just want to build against the default python
+version, there is an extra set of symlinks:
+
+ libboost_python.so -> libboost_python-py24.so
+
+There is also a script (libboost-python-dev.rtupdate) that is run when
+the python runtime version is changed, which changes symlinks to the
+new python runtime.
+
+
Documentation
-------------
@@ -66,3 +117,13 @@
find * -name 'example*' -type d > debian/example-files
+
+ TODO
+ ----
+
+* Use the quilt system
+ - move all source patches to debian/patches
+
+* Patch the build system to NOT embed the compiler name in shared libraries.
+ - retain the link library symlinks with compiler name, for compatibility
+
Modified: boost/trunk/debian/README.Debian
===================================================================
--- boost/trunk/debian/README.Debian 2008-03-22 16:10:20 UTC (rev 14170)
+++ boost/trunk/debian/README.Debian 2008-03-22 16:25:33 UTC (rev 14171)
@@ -101,23 +101,4 @@
process before filing another bug report against Boost Debian packages.
-STLport
--------
-
-Debian's boost packages prior to release 1.29.0-3 were built using
-libstlport. This is no longer the case.
-
-If you have old boost-using code, you will need to change your build
-process, removing any -I/usr/include/stlport or -llstport options.
-
-* Why the change?
-
-Until January 2003, Debian's default compiler was GCC 2.95.x. The
-standard C++ library that came with GCC 2.x was sufficiently buggy to
-cause problems with boost. STLport was a better implementation of STL
-and enabled boost to function.
-
-Debian now uses GCC 3.2 (or newer). The standard C++ library has
-improved enough to use with boost, so STLport is not longer used.
-
- -- Steve M. Robbins <smr at debian.org>, Fri Mar 5 22:42:23 2004
+ -- Steve M. Robbins <smr at debian.org>, Fri, 21 Mar 2008 11:18:32 z
Modified: boost/trunk/debian/changelog
===================================================================
--- boost/trunk/debian/changelog 2008-03-22 16:10:20 UTC (rev 14170)
+++ boost/trunk/debian/changelog 2008-03-22 16:25:33 UTC (rev 14171)
@@ -38,8 +38,13 @@
* debian/libboost-python-dev.postinst: New. Call rtupdate to create symlinks.
* debian/libboost-dbg.prerm: New. Call rtupdate to remove symlinks.
* debian/libboost-python-dev.prerm: New. Call rtupdate to remove symlinks.
+
+ * debian/README.Debian:
+ * debian/libboost-python-dev.README.Debian:
+ * debian/Notes: Add notes about multiple Python runtime support, remove
+ some obsolete notes.
- -- Steve M. Robbins <smr at debian.org> Sat, 22 Mar 2008 11:09:14 -0500
+ -- Steve M. Robbins <smr at debian.org> Sat, 22 Mar 2008 11:24:49 -0500
boost (1.34.1-7) unstable; urgency=low
Modified: boost/trunk/debian/libboost-python-dev.README.Debian
===================================================================
--- boost/trunk/debian/libboost-python-dev.README.Debian 2008-03-22 16:10:20 UTC (rev 14170)
+++ boost/trunk/debian/libboost-python-dev.README.Debian 2008-03-22 16:25:33 UTC (rev 14171)
@@ -1,24 +1,37 @@
-The BOOST Python library is intended only for use in constructing
-a Python module, so only a shared library is supplied.
+ Multiple Python Runtime Support
+ -------------------------------
-David Abrahams, the upstream maintainer posted this to the BOOST
-mailing list.
+The Debian Boost.Python packages support python versions: 2.4, 2.5.
- 1. AFAIK libboost_python is only useful from a shared lib (python
- module) -- oh, I suppose you could use it for embedding python in
- another app, but I've never tried it, and libboost_python.so would
- work just as well, wouldn't it?
+As is typical of Boost (see /usr/share/doc/libboost-dev/README.Debian)
+the library names encode the boost version, gcc version, thread
+support, and the like. The upstream names do NOT encode the python
+version. However, for Debian to support multiple Python runtimes, we
+do need to encode the python version.
- 2. It was originally implemented as a static lib just because that's
- much simpler to get right across platforms. There was no
- libboost_python.so. Since a static lib on Unix is just an archive of
- .o files, those .os had to be shared-linkable.
+ Choosing the default Python
+ ---------------------------
- 3. Eventually I made libboost_python.so as a replacement, which
- saves lots of space in every extension module. I kept
- libboost_python_static.a, as I've said, to keep people who were
- attached to using the static lib happy.
+To keep backwards compatibility, the standard upstream link library
+names are generated as symlinks to the default python version.
- Message-ID: <24af01c1c244$5b845b50$0500a8c0 at boostconsulting.com>
+If you want to use the non-standard Debian-specific simplified
+library names, you may simply link with -lboost_python. This
+will always be the default python version.
+These default symlinks are automatically updated when the Python
+runtime version changes.
+
+ Choosing a specific Python Version
+ ----------------------------------
+
+The library names are suffixed by "-py24" and "-py25", allowing you to
+select the specific Python version desired. This holds true
+for both the upstream names and the simplified Debian names.
+
+So if you want to use the simplified names, link against
+-lboost_python-py24 for Python 2.4.
+
+
+ -- Steve M. Robbins <smr at debian.org>, Fri, 21 Mar 2008 13:33:53 z
More information about the pkg-boost-commits
mailing list