#1575 closed defect (duplicate)

pycrypto-2.4 packaging problems

Reported by: warner Owned by: somebody
Priority: major Milestone: 1.9.2
Component: packaging Version: 1.9.0b1
Keywords: Cc:
Launchpad Bug:


PyCrypto-2.4 was released about a week ago (22-Oct-2011). Unfortunately it cannot be installed via easy_install, which also means that running Tahoe's python setup.py build fails if it ever tries to download+install PyCrypto-2.4 from source. This is a drag.

(note that pycrypto builds find with python setup.py build, and once you've done that, you can build an .egg with the cumbersome python -c "import setuptools; execfile('setup.py')" bdist_egg. It's just whatever magic build process that easy_install or setuptools's automatic dependency builder code uses that are failing to do the necessary extra configure step).

Zooko identified a couple of options:

  • host binary eggs of pycrypto-2.4 on tahoe-lafs.org
    • we already do this for pycrypto-2.3, for 8 different platforms (various combinations of OS, python version, and CPU)
  • set tahoe's _auto_deps.py dependencies to reject pycrypto-2.4
    • the dependency-specification syntax we use in tahoe's __init__.py doesn't handle "!=", even though setuptools does, so it's not as simple as pycrypto != 2.4.
    • one option would be to pin pycrypto == 2.3
    • we don't really want to reject 2.4 since it works fine once it's built. If we were to reject it, e.g. debian packagers would need to patch out that line, as pycrypto-2.4 is already standard in sid

We're still trying to figure out what to do. I'm leaning slightly towards doing the binary-egg thing right now, because 1: we were doing it for the previous version, and 2: it won't mess up debian packaging quite as much. It does mean that we need help from volunteers with various platforms to build those eggs.. we only have access to a limited range.

Change History (3)

comment:1 Changed at 2011-10-31T01:47:44Z by warner

Oh, the error message that you'll see during a tahoe python setup.py build looks like this:

Downloading http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.4.tar.gz
Processing pycrypto-2.4.tar.gz
Running pycrypto-2.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-HJf2HF/pycrypto-2.4/egg-dist-tmp-1K72g5
Failure to get the list of managed files from darcs -- if you are building a package with 'setup.py sdist', 'setup.py bdist_egg', or other package-building commands, then the resulting package might be missing some files.  If you are not building a package then you can ignore this warning.
error: Setup script exited with error: src/config.h: No such file or directory

and a straightforward workaround is to either install a suitable PyCrypto OS package (e.g. apt-get install python-crypto), or to download the PyCrypto tarball, unpack it, and install it (without your OS's knowledge, if you're comfortable with that sort of thing) with python setup.py install.

comment:2 Changed at 2011-10-31T02:32:28Z by warner

  • Resolution set to duplicate
  • Status changed from new to closed

oops, I didn't see #1574 (some sort of browser-cache problem). This is a dup.

comment:3 Changed at 2012-05-31T23:46:30Z by davidsarah

  • Milestone changed from soon to 1.9.2
Note: See TracTickets for help on using tickets.