
  Python 2.x for Debian
  ---------------------

This is Python 2.x packaged for Debian.

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



   [TODO: This document is not yet up-to-date with the packages.]






Currently, it features those two main topics:

  1. Release notes for the Debian packages:
  2. Notes for developers using the Debian Python packages:

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

Up-to-date information regarding Python on Debian systems is also
available as http://www.debian.org/~flight/python/.

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. Release notes for the Debian packages:


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

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


Noteworthy changes since the 1.4 packages:
-----------------------------------------

- Threading support enabled.
- Tkinter for Tcl/Tk 8.x.
- New package python-zlib.
- The dbmmodule was dropped. Use bsddb instead. gdbmmodule is provided
  for compatibility's sake.
- python-elisp adheres to the new emacs add-on policy; it now depends
  on emacsen. python-elisp probably won't work correctly with emacs19.
  Refer to /usr/doc/python-elisp/ for more information.
- Remember that 1.5 has dropped the `ni' interface in favor of a generic
  `packages' concept.
- Python 1.5 regression test as additional package python-regrtest. You
  don't need to install this package unless you don't trust the
  maintainer ;-).
- once again, modified upstream's compileall.py and py_compile.py.
  Now they support compilation of optimized byte-code (.pyo) for use
  with "python -O", removal of .pyc and .pyo files where the .py source
  files are missing (-d) and finally the fake of a installation directory
  when .py files have to be compiled out of place for later installation
  in a different directory (-i destdir, used in ./debian/rules).
- The Debian packages for python 1.4 do call 
  /usr/lib/python1.4/compileall.py in their postrm script. Therefore
  I had to provide a link from /usr/lib/python1.5/compileall.py, otherwise
  the old packages won't be removed completely. THIS IS A SILLY HACK!



2. Notes for developers using the Debian python packages:


Embedding python:
----------------

The files for embedding python resp. extending the python interpreter
are included in the python-dev package. With the configuration in the
Debian GNU/Linux packages of python 1.5, you will want to use something
like

    -I/usr/include/python1.5                  (e.g. for config.h)
    -L/usr/lib/python1.5/config -lpython1.5   (... -lpthread)
                           (also for Makefile.pre.in, Setup etc.)

Makefile.pre.in automatically gets that right.  Note that unlike 1.4,
python 1.5 has only one library, libpython1.5.a.

Currently, there's no shared version of libpython. Future version of
the Debian python packages will support this.


Python extension packages:
-------------------------

According to www.python.org/doc/essays/packages.html, extension packages
should only install into /usr/lib/python1.5/site-packages/ (resp.
/usr/lib/site-python/ for packages that are definitely version independent).
No extension package should install files directly into /usr/lib/python1.5/.

But according to the FSSTND, only Debian packages are allowed to use
/usr/lib/python1.5/. Therefore Debian Python additionally by default
searches a second hierarchy in /usr/local/lib/. These directories take
precedence over their equivalents in /usr/lib/.

a) Locally installed Python add-ons

    /usr/local/lib/python1.5/site-packages/
    /usr/local/lib/site-python/ (version-independent modules)

b) Python add-ons packaged for Debian

    /usr/lib/python1.5/site-packages/
    /usr/lib/site-python/ (version-independent modules)

Note that no package must install files directly into /usr/lib/python1.5/
or /usr/local/lib/python1.5/. 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/python1.5/.


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

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 README.maintainers.

 


    03/09/98
    Gregor Hoffleit <flight@debian.org>

Last change: 07/16/1999
