
At 05:32 PM 2/26/04 -0500, Bob Ippolito wrote:
On Feb 26, 2004, at 4:44 PM, Phillip J. Eby wrote:
At 03:42 PM 2/26/04 -0500, Donovan Preston wrote:
I am less excited about introducing a dependency into Nevow. It would be nice if we could distribute PyProtocols in the same tarball as Nevow and only install it if needed.
The (dual PSF/ZPL) license permits that. And, PyProtocols, is getting pretty stable, so it's not like you'd be updating it every day.
But naturally, working on dependency support for distutils seems to be an Idea Whose Time Is Coming. There was a recent Zope3-Dev thread about such issues, although it was more specific to bundling subsets of the Zope3 system, rather than bundling third-party packages.
Yeah, the dependency/package management stuff is also brought up every so often on the distutils-sig and pythonmac-sig .. the problem is that nobody wants to actually hack on the nasty distutils source to finish the work.. except maybe amk :)
The sad thing to me is, that it's not that difficult, at least in principle. For example, I frequently create "pkgsrc" (similar to BSD ports) packages wrapping distutils-built Python libraries. Generally speaking, this amounts to writing a short makefile like: #==== DISTNAME= mechanize-0.0.7a PKGNAME= ${PYPKGPREFIX}-${DISTNAME} CATEGORIES= 3rdParty MASTER_SITES= http://wwwsearch.sourceforge.net/mechanize/src/ PYMODULE_DIRS= mechanize MAINTAINER= pje@eby-sarna.com HOMEPAGE= http://wwwsearch.sourceforge.net/mechanize/ COMMENT= Stateful programmatic web browsing in Python DEPENDS+= ${PYPKGPREFIX}-pullparser>=0.0.4b:../../3rdParty/py-pullparser DEPENDS+= ${PYPKGPREFIX}-ClientCookie>=0.4.18:../../3rdParty/py-ClientCookie DEPENDS+= ${PYPKGPREFIX}-ClientForm>=0.1.14:../../3rdParty/py-ClientForm PYTHON_VERSION_REQD= 22 .include "../../3rdParty/3p-pkgutils/py-plist.mk" .include "../../lang/python/extension.mk" .include "../../mk/bsd.pkg.mk" #==== This is one of the most *complicated* such files I've written. But, using this I can run 'make' and it will download and install all the dependencies for me! In fact, if I don't have Python installed, it'll download and install Python for me, but that's a bit out of scope for the distutils, methinks. :) Maybe what's really needed is a tool that uses a file like the above to do the downloading, extracting, and running of setup.py, et al. The main drawback I see is dealing with binary installers for e.g. Windows.