[Python-Dev] PEP 365 (Adding the pkg_resources module)

zooko zooko at zooko.com
Fri Mar 21 01:48:24 CET 2008


On Mar 20, 2008, at 7:44 AM, Tres Seaver wrote:

> Paul Moore wrote:

>> 4. Hard to use with limited connectivity. At work, I *only* have
>> access to the internet via Internet Explorer (MS based proxy). There
>> are workarounds, but ultimately "download an installer, then run it"
>> is a far simpler approach for me.
>
> I don't know how to make this requirement compatible with using shared
> dependencies,

We've done something like this.

The http://allmydata.org project bundles its easy_installable  
dependencies.  If you get the current trunk from our darcs repository  
[1], or get a release tarball or a snapshot tarball from [2], then it  
comes with a directory named "misc/dependencies" which has the source  
tarballs of our easy_installable dependencies.  You can browse this  
directory on the web: [3].

Therefore, if you manually satisfy the non-easy_installable  
dependencies, you can download an allmydata.org tarball, disconnect  
from the Internet (which we call "moving to a Desert Island"), and  
install it.

This is, as you say, "compatible with using shared dependencies"  
because setuptools will detect if you already have sufficiently new  
versions of some of these dependencies installed (for example, if  
they are installed in Debian packages), and then skip the step of  
installing that dependency from its source tarball.

The remaining dependencies that cannot be satisfied automatically by  
our setup.py are listed in the install.html [4].  They are:

    1.  g++ >= v3.3 -- the Cygwin version of gcc/g++ works for Cygwin  
and for Windows
    2. GNU make
    3. Python >= v2.4.2 including development headers i.e. "Python.h"
    4. Twisted >= v2.4.0 -- from the Twisted "sumo" source tarball
    5. OpenSSL >= v0.9.7, including development headers
    6. PyOpenSSL == v0.6
    7. Crypto++ >= v5.2.1, including development headers

I am hoping that in the future Twisted (see twisted #1286 [5]) and  
pyOpenSSL will be easy_installable, and that our use of setuptools  
plugins will eventually replace our GNUmakefile and thus remove our  
dependency on GNUmake.  That will leave only g++, Python, OpenSSL,  
and Crypto++ as dependencies that a user has to manually deal with in  
order to build allmydata.org from source.

Regards,

Zooko

[1] http://allmydata.org/source/tahoe/trunk/
[2] http://allmydata.org/source/tahoe/tarballs/
[3] http://allmydata.org/trac/tahoe/browser/misc/dependencies
[4] http://allmydata.org/source/tahoe/trunk/docs/install.html
[5] http://twistedmatrix.com/trac/ticket/1286


More information about the Python-Dev mailing list