Summary

Introduce new versions of python for the 2.x series (2.6) and python3.0.

Rationale

We'll introduce new python versions and drop older python versions for jaunty, and addressing issues with the current way of packaging of python extensions.

Design

Python 2.6

The upgrade to 2.6 as the default python version is a bit easier than the update from 2.4 to 2.5. 2.6 didn't see that many changes on the extension site as 2.5 did have. The upgrade should be done in two steps plus an optional third step:

  1. Build extension and modules for 2.6 as an additional supported python version.
  2. Make 2.6 the default python version.
  3. Optionally drop support for python 2.5 in jaunty.

Python 3.0

A python 3.0 module has different source code than for 2.x. Our current helper support doesn't support different source code for one module that well, and package and installation sizes do increase. Package modules for 3.0 in binary packages python3-foo to be used for python versions 3.x. The binary package for 3.0 can be built out of the same source package, but doesn't have to.

It looks like Python 3.0 is very short-lived. A Python 3.1 release is targeted for April 2009, which is too late for Jaunty. We will provide basic support for 3.0 (using the 3.0.1 release).

To be able to build our modules and extensions from the same source, Python 3.0 must be included into main.

Installation locations

Currently /usr/lib/pythonx.y/site-packages is used for installation of python extensions and modules, plus an additional directory /usr/local/lib/pythonx.y/site-packages, the latter conflicting with the site-packages with a python installation with --prefix=/usr/local.

Names for these directories discussed with Martin v. Löwis and Barry Warsaw; the names are not perfect, but we did want to stick to the same directory in /usr and /usr/local.

Installation of shared files

Files which can be shared between different Python versions are installed into /usr/share/pyshared. The layout inside /usr/share/pyshared is the same which can be currently found in /usr/lib/pythonx.y/site-packages. There is no package specific subdirectory in /usr/share/pyshared/.

Files shared between different python3.x versions are installed into /usr/share/py3shared.

The symlinks to the files available in sys.path should be part of the package and created during packaging (as the default, keep the old behaviour as an option).

Python 2.4

Keep the python2.4 package, but drop support building extensions for all available packages. For some applications like zope2.x and plone we still need some extensions built for 2.4.

Implementation


CategorySpec

Python2.6And3.0 (last edited 2009-02-10 10:36:43 by dslb-088-073-117-140)