[Twisted-Python] Components
Phillip J. Eby
pje at telecommunity.com
Thu Feb 26 15:58:54 MST 2004
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 at 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.
More information about the Twisted-Python
mailing list