From Fedora Project Wiki

Revision as of 03:26, 13 September 2011 by Toshio (talk | contribs) (Add reasons not to use subpackages)

On EL5, the "system" python binary, /usr/bin/python is Python 2.4, and all add-on python packages are for the 2.4 syntax, and byte-compiled for 2.4.

EPEL5 provides a parallel-installable Python 2.6 stack. The core runtime is in the "python26" package, and there are a number of "python26-*" extension modules already in EPEL5.


Available Packages for EPEL5

  • python26
  • python26-devel
  • python26-babel
  • python26-dirq
  • python26-distribute - fork of python-setuptools and provides the same functionality.
  • python26-dns
  • python26-gdata
  • python26-greenlet
  • python26-greenlet-devel
  • python26-httplib2
  • python26-imaging
  • python26-imaging-devel
  • python26-imaging-sane
  • python26-imaging-tk
  • python26-inotify
  • python26-libs
  • python26-markupsafe
  • python26-mod_python
  • python26-mod_wsgi
  • python26-nose
  • python26-pbs
  • python26-PyXML
  • python26-simplejson
  • python26-sqlalchemy
  • python26-test
  • python26-tools
  • python26-ZSI


Not Yet Available Packages for EPEL5

If you have interest towards some package, regardless are you pacakger or not, add it here if someone wants to package it.

  • python26-cheetah - Template engine and code-generator (User:tuju, take src.rpm and maintain if you want.)
  • python26-psycopg2 - A PostgreSQL database adapter for Python (bug 574586)
  • python26-psycopg2-2.4 - A PostgreSQL database adapter for Python (User:tuju, take srpm / spec and maintain if you want.)
  • python26-svgplotlib - Lightweight python package for creating SVG graphs and charts. (User:tuju,evaluation ongoing)
  • python26-MySQL - MySQL Python bindings (User:tuju, take srpm / spec and maintain if you want.)
  • python26-pytz

Packaging Guidelines for EPEL5

Warning.png
This page is a draft only
It is still under construction and content may change. Do not rely on the information on this page.

--Dmalcolm 20:48, 2 March 2011 (UTC): some python packages are provided as part of the RHEL5 product. Others are add-ons provided as part of EPEL5.

If you want a python26 version of a package that's already in RHEL5, I suggest creating a separate src.rpm, and filing a review request for it. It may also be good to locate the equivalent "python-" package within Fedora and do the following:

  • Set up watchcommit on the Fedora package (and perhaps watch bugs)
  • Add the maintainer to the CC on the package review

to help both of you maintain your respective packages.

If you want a python26 version of a package that's in EPEL5, you should also make a separate src.rpm. There are several reasons that the separate src.rpm is preferable in EPEL vs using the same src.rpm and separate subpackages.

  • The first and largest issue is that we haven't yet figured out how to properly byte compile the python subpackages so that the main package is byte compiled with python-2.4 (the main python in RHEL5) and the subpackage is compiled with python2.6. Until this is worked out we really do not want to be using subpackages.
  • In EPEL, we're bound to keep backwards compat. However, people who want to deploy a python2.6 package are likely to want the latest and greatest versions of supporting python modules as well. Separate SRPMs gives us the flexibility, both at initial review, and if we decide we need to make an exception to upgrade something to an incompatible version in the future to do this for only the python2.6 package.
  • Deploying as a subpackage is more limiting. If bugs exist on only one version of the python interpreter, we still have to update the module for both python-2.4 and python-2.6 which could be more churn for users or introduce unintentional new bugs on the other interpreter version.

TODO:

  • byte-compiling
  • should %{__python26} be defined somewhere? in /etc/rpm/macros.python26 ?

Python26 Bugs in Bugzilla

References