Python 2.1 for Debian

  Python 2.1 for Debian
  =====================

This is Python 2.1 packaged for Debian.

This document contains information specific to the Debian packages of
Python 2.1.


Currently, it features those main topics:

  1. Package setup for the Debian packages.
  2. Release notes for the Debian packages.
  3. Notes for developers using the Debian Python packages.
  4. Patches applied for the Debian package.

Release notes and documentation from the upstream package are installed
in /usr/share/doc/python2.1/.

There's a mailing list for discussion of issues related to Python on Debian
systems: debian-python@lists.debian.org. The list is not intended for
general Python problems, but as a forum for maintainers of Python-related
packages and interested third parties.


1. Package setup for the Debian packages
========================================

Python is packaged in a way,

- that more than one version of Python can be installed on the system:
  The default version of the interpreter can be called `python', other
  versions of the interpreter have to be called `python1.5', `python2.2', ...

  The default Debian Python version is the latest stable upstream release
  that can be integrated and tested in the distribution.

  For the default version, the core package is called `python', for other
  versions `python1.5', `python2.2', ...

- that only a runtime environment depending on basic system libraries is in
  the python core package. Development files, documentation and Modules
  depending on other libraries are in their own package. These packages
  are called `python-XYZ' for the default version, for other Python versions
  `python1.5-XYZ', `python2.2-XYZ', ...

The packaging consists of the following packages:

  Default Version  | Versioned Package  | Description
  -----------------+--------------------+----------------------------------
  python           | pythonX.Y          | core package
  python-ssl       | pythonX.Y-ssl      | _socket module with SSL support
  python-dev       | pythonX.Y-dev      | development (and distutils) files
  python-doc       | pythonX.Y-doc      | documentation (generated from source)
  python-tk        | pythonX.Y-tk       | Tkinter module
  python-xmlbase   | pythonX.Y-xmlbase  | XML support found in the package
  python-gdbm      | pythonX.Y-gdbm     | gdbm module
  python-mpz       | pythonX.Y-mpz      | mpz module (Mult.-prec. arithmetic)
  python-examples  | pythonX.Y-examples | examples and tools
  python-elisp     | pythonX.Y-elisp    | elisp mode (not needed for xemacs)
  idle-python      | idle-pythonX.Y     | integrated development environment


2. Release notes for the Debian packages
========================================

Results of the regression test:
------------------------------

The package does successfully run the regression tests for all included
modules. Some packages are skipped since they are platform-dependent and
can't be used with Linux.


3. Notes for developers using the Debian python packages
========================================================

See the draft of the Debian Python policy in /usr/share/doc/python.

distutils can be found in the python2.1-dev package. Development files
like the python library or Makefiles can be found in the python2.1-dev
package in /usr/lib/python2.1/config.

a) Locally installed Python add-ons

    /usr/local/lib/python2.1/site-packages/
    /usr/local/lib/site-python/ (version-independent modules)

b) Python add-ons packaged for Debian

    /usr/lib/python2.1/site-packages/
    /usr/lib/site-python/ (version-independent modules)

Note that no package must install files directly into /usr/lib/python2.1/
or /usr/local/lib/python2.1/. Only the site-packages directory is allowed
for third-party extensions.

Use of the new `package' scheme is strongly encouraged. The `ni' interface
is obsolete in python 1.5.

Header files for extensions go into /usr/include/python2.1/.


Installing extensions for local use only:
----------------------------------------

Consider using distutils, because building packages with Python's
Makefile.pre.in is not supported in Python-2.2 anymore. You find the
distutils support in the python-dev and python2.1-dev packages.

Most extensions use Python's Makefile.pre.in. Note that Makefile.pre.in
by default will install files into /usr/lib/, not into /usr/local/lib/,
which is not allowed for local extensions. You'll have to change the
Makefile accordingly. Most times, "make prefix=/usr/local install" will
work.


Packaging python extensions for Debian:
---------------------------------------

Maintainers of Python extension packages should read

/usr/share/doc/python/python-policy.txt.gz




    2002-01-08
    Gregor Hoffleit <flight@debian.org>
    Matthias Klose <doko@debian.org>


4. Patches applied for the Debian package.
==========================================


Patches applied in this version:

deb-build:
  Debian's changes to the build procedure (Makefiles and configure.in)

hurd:
  Patch for building on the Hurd

deb-locations:
  adjust locations of directories to debian policy

compile:
  compile.py: add an -q option for more quiet operation

fixes:
  fix bug described in http://www.modpython.org/FAQ/faqw.py?req=all#2.3 

cdrom:
  CDROM.py. Updated from CVS HEAD branch (2.3).

ftplib:
  Send anonymous password when using anonftp.

fcntl:
  Backport from 2.2:
  - Added all constants needed to use the functions defined in this module
  that are not defined elsewhere (the O_* symbols are available in the
  os module).  No additonal modules are needed to use this now.
  - Add fcntl.h constants from glibc 2.2.4.

socket-options:
  Backport from 2.2.1/2.3: Add TCP socket options from glibc 2.2.4

blt+tix:
  configure _tkinter with BLT and Tix support

dlmodule:
  Always build the dl module. Failure in case of 
  sizeof(int)!=sizeof(long)!=sizeof(void*)
  is delayed until dl.open is called.

info-docs:
  Build info docs from the tex source

lib-os-execvpe:
  SF patch 590294: os._execvpe security fix 

large-file-support:
  enable large file support for Linux.