[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