[tahoe-dev] [tahoe-lafs] #1094: automatically generate binary .egg's of pycryptopp for all of our Supported Platforms
tahoe-lafs
trac at tahoe-lafs.org
Mon Jun 21 15:16:07 PDT 2010
#1094: automatically generate binary .egg's of pycryptopp for all of our Supported
Platforms
--------------------------------+-------------------------------------------
Reporter: zooko | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone: 1.7.1
Component: packaging | Version: 1.7.0
Keywords: windows pycryptopp | Launchpad Bug:
--------------------------------+-------------------------------------------
zeromus's #1093 (win32 build hell) was at least partly if not mostly
caused by the following problem:
1. zeromus followed the instructions on [http://tahoe-lafs.org/source
/tahoe-lafs/trunk/docs/quickstart.html quickstart.html] to use Python 2.5
2. the build script saw from [source:_auto_deps.py] that Tahoe-LAFS
requires pycryptopp, so it starting looking for where to get pycryptopp to
satisfy this dependency
3. it looked in the SUMO tarball that zeromus had installed, which has the
same contents as http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-
deps-v16/ , and saw therein "pycryptopp-0.5.19.tar.bz2". It also looked on
the Python Package Index: http://pypi.python.org/pypi/pycryptopp and saw
that pycryptopp v0.5.19 is the current version of pycryptopp.
4. it then looked for binary eggs of pycryptopp v0.5.19 to install. From
[source:_auto_dep.py]'s {{{find_links}}} it could see that the following
directory was a valid place to get dependencies: http://tahoe-
lafs.org/source/tahoe-lafs/deps/tahoe-dep-eggs/ . At the time, that
directory contained the following packages of pycryptopp:
{{{
pycryptopp-0.5.17_r683-py2.5-win32.egg 10-Jan-2010 21:31
1.1M
pycryptopp-0.5.17_r683-py2.6-linux-x86_64.egg 10-Jan-2010 21:35
3.0M
pycryptopp-0.5.17_r683-py2.5-linux-armv5tel.egg 10-Jan-2010 21:47
554K
pycryptopp-0.5.17-py2.5-macosx-10.5-i386.egg 06-Feb-2010 14:11
1.7M
pycryptopp-0.5.17_r683-py2.5-macosx-10.3-i386.egg
07-Feb-2010 10:53 2.5M
pycryptopp-0.5.17_r683-py2.5-macosx-10.4-i386.egg
07-Feb-2010 10:53 2.5M
pycryptopp-0.5.17_r683-py2.5-macosx-10.5-i386.egg
07-Feb-2010 10:53 2.5M
pycryptopp-0.5.17_r683-py2.5-macosx-10.6-i386.egg
07-Feb-2010 10:53 2.5M
pycryptopp-0.5.17_r683-py2.6-macosx-10.6-universal.egg
03-Mar-2010 22:50 2.6M
pycryptopp-0.5.17.360334-py2.6-win-amd64.egg 01-May-2010 22:14
1.0M
pycryptopp-0.5.17_r683-py2.6-win32.egg 06-May-2010 14:11
1.1M
pycryptopp-0.5.17_r685-py2.6-win32.egg 12-May-2010 05:38
1.1M
pycryptopp-0.5.17_r686-py2.6-win32.egg 15-May-2010 18:40
1.1M
pycryptopp-0.5.17_r687-py2.6-win32.egg 15-May-2010 18:48
1.1M
pycryptopp-0.5.17_r688-py2.6-win32.egg 15-May-2010 19:40
1.1M
pycryptopp-0.5.17_r689-py2.6-win32.egg 15-May-2010 19:43
1.1M
pycryptopp-0.5.17_r693-py2.6-win32.egg 03-Jun-2010 23:17
1.1M
pycryptopp-0.5.18_r701-py2.6-win32.egg 03-Jun-2010 23:53
1.1M
pycryptopp-0.5.19-py2.6-win32.egg 04-Jun-2010 00:06
1.1M
pycryptopp-0.5.19_r704-py2.6-win32.egg 06-Jun-2010 23:58
1.1M
pycryptopp-0.5.19_r704-py2.6-win-amd64.egg 08-Jun-2010 07:37
602K
}}}
Now it can't use any binary eggs that aren't for win32 or that aren't for
Python 2.5, so that leaves:
{{{
pycryptopp-0.5.17_r683-py2.5-win32.egg 10-Jan-2010 21:31
1.1M
}}}
But, it will prefer to use a newer release from source tarball over using
an older release from a binary egg! Since that py2.5-win32.egg there is
pycryptopp v0.5.17, and since it can get pycryptopp v0.5.19 in source
tarball form, it will go for the latter.
Therefore, it went ahead and used the pycryptopp v0.5.19 source tarball
from the SUMO tarball and tried to compile it.
It then failed to compile it with this error:
{{{
error: Setup script exited with error: Don't know how to compile
cryptopp\x64dll.asm
}}}
I believe that failure is due to http://tahoe-
lafs.org/trac/pycryptopp/ticket/37.
However, that failure to build is ''not'' the subject of this ticket. The
subject of ''this'' ticket is: why didn't the build system find a binary
egg of pycryptopp for the current platform and use that?
Ok, why does http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-dep-eggs
have new binary eggs of pycryptopp v0.5.19 for py2.6-win32 and for py2.6
-win-amd64.egg but not for py2.5-win32? The answer is easy to see by
looking at [http://tahoe-lafs.org/buildbot-pycryptopp/waterfall the
pycryptopp buildbot page]. There is a buildslave for py2.6-win32 (operated
by !FreeStorm) and a buildslave for py2.6-win-amd64 (operated by
Dcoder/sneves). There is no buildslave for py2.5-win32. That means that
py2.5-win32 is not a Supported Platform!
So to close this ticket, either change the docs to specify that you should
use Python 2.6 and if you use any other version of Python then you are on
your own, or else get someone to volunteer a py2.5-win32 buildslave to
generate pycryptopp binary eggs.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1094>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized file storage grid
More information about the tahoe-dev
mailing list