Subject: Re: Python packages.
To: None <tech-pkg@NetBSD.ORG>
From: MLH <MLH@goathill.org>
List: tech-pkg
Date: 12/11/2002 02:00:50
On 10 Dec 2002 00:40:00 -0600, Richard Rauch wrote:
> I count 7 ...pkgsrc/lang/python* packages (one is just "python", but it's
> not immediately clear to me if I can use it to unify the other 6 and their
> dependants).
> 
> Some things seem to want the 2.1 or 2.2 version; others want 2.0, and I
> think that I even had one application load the 1.5 Python.  (1.5 is used
> by grail, I guess; 2.1 seems to be prefered by Pmw/Tk support...
> py-imagingtk has started building 2.0, I think...)
> 
> I like Python as a language, but I don't really need 6 versions of it; and
> I certainly might want to use Pmw concurrently with the imaging stuff.

The current version of grail was released in April 1999. I suspect
with the ties (license restrictions) to CNRI, it is a dead horse
as far as continued development goes. Zope25 can't use Python2.2
thus the requirement for 2.1 (2.1pth is required for ZServer). Pmw
builds fine for 2.2.

> Is it just that some stuff uses (e.g.) Python 1.5, and no one has got
> around to updating it?  Or does (e.g.) grail really *need* 1.5?  Or is

I suspect some of both, as well as how long do you support a dead
horse?

> there some way that I can tell pkgsrc, "Put everything on Python 2.2 with
> pthreads"?  If so, it seems desirable that there should be a default
> setting so that you normally *do* get one version of Python.  If it'll

 .../python/pyversion lets you specify which you wish to build to:

PYTHON_VERSION_DEFAULT?=        22pth

Plus you can set PYTHON_VERSIONS_ACCEPTED for a particular package:
PYTHON_VERSIONS_ACCEPTED= 21pth 
if you need it for Zope25 and then set :
PYTHON_VERSIONS_ACCEPTED= 22pth 
and build it for your normal python2.2 environments.

Unless they specify a particular version, py- packages appear to
me to doing pretty good at obeying it:

For Zope25:
python21-pth-2.1.3  Interpreted, interactive, object-oriented programming
py21pth-mxDateTime-2.0.4 Python extension that provides types and conversions
py21pth-mysqldb-0.9.2 MySQL interface for Python
py21pth-sybase-0.36pre1 Sybase interface for Python using FreeTDS

Otherwise:
python22-pth-2.2.2  Interpreted, interactive, object-oriented programming
py22pth-Tk-0        Tkinter -- Python interface to Tcl/Tk
py22pth-Pmw-0.8.5   python meta widgets
py22pth-Numeric-21.0 Adds multidimensional numeric arrays to Python
py22pth-glpk-3.0.7  glpk interface for Python
py22pth-mysqldb-0.9.1 MySQL interface for Python
py22pth-readline-0  line editing support for Python
py22pth-rpy-0.3     R interface for Python
py22pth-sybase-0.36pre1 Sybase interface for Python using FreeTDS
...

Yes, it's a bit of a problem to manage this, but until Zope comes
up to speed with the 2.2+, and older packages like grail and
zope-2.2.2 are pruned, I don't see too many reasonable ways to deal
with this.