[tahoe-dev] 1.9.1 on really old machine

Zooko Wilcox-O'Hearn zooko at zooko.com
Tue Feb 7 07:31:19 UTC 2012


Hello Dmitriy Kazimirov:

Thank you for the bug report.

On Mon, Feb 6, 2012 at 9:20 PM, Dmitriy Kazimirov
<dmitriy.kazimirov at viorsan.com> wrote:
>
>  File
> "/root/allmydata-tahoe-1.9.1/Twisted-10.2.0-py2.4-linux-i686.egg/twisted/conch/ssh/keys.py",
> line 17, in ?
>    from Crypto.Cipher import DES3
> exceptions.ImportError:
> /root/allmydata-tahoe-1.9.1/support/lib/python2.4/site-packages/pycrypto-2.4-py2.4-linux-i686.egg/Crypto/Cipher/DES3.so:
> wrong ELF class: ELFCLASS64

I think this means that the DES3.so shared lib is compiled for 64-bit
and the system is 32-bit-only. You can confirm by running

objdump -a -f DES3.so

Please let us know what it says. I think it will say something about
"architecture: i386:x86-64".

Now if that's the problem, then the question is how that 64-bit .so
got into a binary Python package (.egg) which is supposed to be for
32-bit systems. as you can tell from the name of the .egg:
pycrypto-2.4-py2.4-linux-i686.egg . Where did the setup.py file get
that .egg from, I wonder? It must have gotten it from our repository
of hosted eggs:
https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/README.html

Okay, I'm downloading the .egg from there:
https://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/pycrypto-2.4-py2.4-linux-i686.egg

Aha! Yep:

$ objdump -a -f ./Crypto/Cipher/DES.so

./Crypto/Cipher/DES.so:     file format elf64-x86-64
./Crypto/Cipher/DES.so
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000001200

Okay, I've removed that incorrect pycrypto-2.4-py2.4-linux-i686.egg
from our tahoe-lafs-dep-eggs repository. The next time you, or anyone
with Python 2.4 and 32-bit linux, tries to build Tahoe-LAFS, they
should get a different problem. :-) Please post if you do.

Regards,

Zooko



More information about the tahoe-dev mailing list