[tahoe-lafs-trac-stream] [tahoe-lafs] #804: provide binary .egg's for pycryptopp for all supported platforms and versions of Python
tahoe-lafs
trac at tahoe-lafs.org
Fri May 24 15:53:45 UTC 2013
#804: provide binary .egg's for pycryptopp for all supported platforms and
versions of Python
-------------------------+-------------------------------------------------
Reporter: | Owner: zooko
arch_o_median | Status: closed
Type: defect | Milestone: 1.8.1
Priority: minor | Version: 1.5.0
Component: | Keywords: binaries install dependency
packaging | pycryptopp linux x86-64
Resolution: fixed |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Old description:
> = Some System Configuration Information =
> {{{
> arc at showertimedepot:~/tahoe$ darcs --version
> 2.0.2 (release)
> arc at showertimedepot:~/tahoe$ uname -a
> Linux showertimedepot 2.6.18.8-x86_64-linode7 #1 SMP Fri Aug 14 17:14:08
> UTC 2009 x86_64 GNU/Linux
> arc at showertimedepot:~/tahoe$ lsb_release -a
> No LSB modules are available.
> Distributor ID: Ubuntu
> Description: Ubuntu 8.10
> Release: 8.10
> Codename: intrepid
> }}}
>
> = Downloads =
> Per [http://allmydata.org/trac/tahoe/wiki/Dev these] instructions I ran:
>
> {{{
> darcs get --lazy http://allmydata.org/source/tahoe/trunk-hashedformat
> tahoe
> }}}
>
> I've deviated from the prescribed protocol since the default install docs
> do not recommend acquiring the source from the darcs repo. [[BR]] Perhaps
> differences between the tarball and the repo versions generate this bug.
> [[BR]] To check this I also attempt to build from the tarball in a
> separate location.
>
> I.E. I ran:
> {{{
> wget http://allmydata.org/source/tahoe/releases/allmydata-
> tahoe-1.5.0.zip
> }}}
>
> = Build From Repo =
> Per [http://allmydata.org/source/tahoe/trunk/docs/install.html these]
> instructions I ran:
> {{{
> ~/tahoe$ python ./setup.py build &> from_repo_build_log.txt
> }}}
> in the "from-repo" directory.
>
> Upon inspection of the output (attached) I see several error-types.
> [[BR]]
>
> I guess these two to be not-fatal: [[BR]]
> i. "darcs failed: Not a repository: ..." and [[BR]]
> i. "cc1plus: warning:..." lines are not fatal. [[BR]]
> Following those two error-types the next error is:
> {{{
> pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
> directory
> }}}
>
> = Difference Between First and Second Build Attempts in From-Tarball
> Version =
>
> In the "from-tar" directory I ran:
> {{{
> python ./setup.py build &> from_tar_build_log_initial.txt
> }}}
> (Actually I changed the log names to be more descriptive, after the
> fact.)
>
> I do not notice obvious differences between repo and tar. [[BR]]
>
> I do notice differences between initial and subsequent build-attempts.
> [[BR]]
>
> (Perhaps I should be writing "setup-" vice "build-" attempts.)
> {{{
> arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope
> from_tar_build_log_initial.txt | grep Python.h
> src/zope/interface/_zope_interface_coptimizations.c:15:20: error:
> Python.h: No such file or directory
> arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope
> from_tar_build_log_second.txt | grep Python.h
> }}}
> (Log names changed after the fact for clarity.)
>
> Intriguingly "zope" appears to be missing "Python.h" on the first build
> attempt, this is not reported on subsequent build attempts.[[BR]] The
> missing Python.h in pycryptopp is reported in initial and subsequent
> build attempts:
>
> {{{
> arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp
> from_tar_build_log_initial.txt | grep Python.h
> pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
> directory
> arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp
> from_tar_build_log_second.txt | grep Python.h
> pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
> directory
> }}}
>
> = First Versus Second From Repo Setup =
> Is the difference between initial and subsequent setup bugs also [[BR]]
> seen in the from repo version?
> To find out I tested a fresh from-repo setup attempt.
>
> {{{
> arc at showertimedepot:~/tahoe-darcs$ darcs get --lazy
> http://allmydata.org/source/tahoe/trunk-hashedformat tahoe
> Finished getting.
> }}}
>
> {{{
> arc at showertimedepot:~/tahoe-darcs/tahoe$ grep -iEe"zope|pycryp" | grep
> Python.h from_repo_*
> from_repo_initial_setup.txt:src/zope/interface/_zope_interface_coptimizations.c:15:20:
> error: Python.h: No such file or directory
> from_repo_initial_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error:
> Python.h: No such file or directory
> from_repo_second_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error:
> Python.h: No such file or directory
> }}}
>
> So the difference between zope and pycryptopp initial vs. [[BR]] second
> installs generalizes to installs from tar and from repo.
>
> = Bug Interpretation =
> It looks like Python.h of pycryptopp is not found so I guess that I lack
> some necessary dependency.
>
> = Calling All Dependencies =
> (Since my bug does not seem to vary between from-repo and from-tar, I
> stick to from repo from here on.)
>
> Where're these elusive Python.h's? Sound like C headers to me....
>
> Naive:
> {{{
> arc at showertimedepot:~/tahoe-darcs/tahoe$ find . -iname "*Python.h*"
> arc at showertimedepot:~/tahoe-darcs/tahoe$
> }}}
>
> OK, not surprising since docs say all repo is python, and what's missing
> is C. So, my belief that I have a dependency problem grows stronger.
>
> Following [http://allmydata.org/source/tahoe/trunk/docs/install.html More
> Details], I learn that I can view "the canonical list of dependencies" in
> _auto_deps.py.
>
> Of course, I cannot run "tahoe --version" yet so I skip that advice...
>
> Aha! A "complete list of all dependencies..."
>
> {{{
> PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c
> "import pkg_resources;print ', '.join([d.project_name+': '+d.version for
> d in set(pkg_resources.require('allmydata-tahoe'))])"
> }}}
>
> {{{
> arc at showertimedepot:~/tahoe-darcs/tahoe$
> PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c
> "import pkg_resources;print ', '.join([d.project_name+': '+d.version for
> d in set(pkg_resources.require('allmydata-tahoe'))])"
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-
> packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 626, in require
> needed = self.resolve(parse_requirements(requirements))
> File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-
> packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 524, in resolve
> raise DistributionNotFound(req) # XXX put more info here
> pkg_resources.DistributionNotFound: pycryptopp>=0.5.15
> arc at showertimedepot:~/tahoe-darcs/tahoe$
> }}}
>
> Hmmm.... next step... submit and wait... if no help then dissect above
> expression...
>
> OK, I did try to dissect a tiny bit:
>
> In ipython interpreter:
>
> {{{
> In [1]: import sys
>
> In [2]: sys.path
> Out[2]:
> ['',
> '/usr/bin',
> '/usr/lib/python2.5',
> '/usr/lib/python2.5/plat-linux2',
> '/usr/lib/python2.5/lib-tk',
> '/usr/lib/python2.5/lib-dynload',
> '/usr/local/lib/python2.5/site-packages',
> '/usr/lib/python2.5/site-packages',
> '/var/lib/python-support/python2.5',
> '/var/lib/python-support/python2.5/IPython/Extensions',
> '/home/arc/.ipython']
>
> In [3]: sys.path.append('./support/lib/python2.5/site-packages/')
>
> In [4]: import pkg_resources
> ---------------------------------------------------------------------------
> ImportError Traceback (most recent call
> last)
>
> /home/arc/tahoe-darcs/tahoe/<ipython console> in <module>()
>
> ImportError: No module named pkg_resources
> }}}
>
> (And just to be sure I tried above with explicit path name from root to
> relevant site-packages.)
>
> Which is:
> {{{
> arc at showertimedepot:~/tahoe-darcs/tahoe$ ls -la ./support/lib/python2.5
> /site-packages/
> total 32
> drwxr-xr-x 3 arc arc 4096 2009-09-14 22:32 .
> drwxr-xr-x 3 arc arc 4096 2009-09-14 22:30 ..
> -rw-r--r-- 1 arc arc 35 2009-09-14 22:32 allmydata-tahoe.egg-link
> -rw-r--r-- 1 arc arc 297 2009-09-14 22:30 easy-install.pth
> drwxr-xr-x 4 arc arc 4096 2009-09-14 22:32 setuptools-0.6c12dev.egg
> -rw-r--r-- 1 arc arc 27 2009-09-14 22:32 setuptools.pth
> -rw-r--r-- 1 arc arc 2327 2009-09-14 22:30 site.py
> -rw-r--r-- 1 arc arc 1833 2009-09-14 22:30 site.pyc
> }}}
New description:
= Some System Configuration Information =
{{{
arc at showertimedepot:~/tahoe$ darcs --version
2.0.2 (release)
arc at showertimedepot:~/tahoe$ uname -a
Linux showertimedepot 2.6.18.8-x86_64-linode7 #1 SMP Fri Aug 14 17:14:08
UTC 2009 x86_64 GNU/Linux
arc at showertimedepot:~/tahoe$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 8.10
Release: 8.10
Codename: intrepid
}}}
= Downloads =
Per [http://allmydata.org/trac/tahoe/wiki/Dev these] instructions I ran:
{{{
darcs get --lazy http://allmydata.org/source/tahoe/trunk-hashedformat
tahoe
}}}
I've deviated from the prescribed protocol since the default install docs
do not recommend acquiring the source from the darcs repo. [[BR]] Perhaps
differences between the tarball and the repo versions generate this bug.
[[BR]] To check this I also attempt to build from the tarball in a
separate location.
I.E. I ran:
{{{
wget http://allmydata.org/source/tahoe/releases/allmydata-tahoe-1.5.0.zip
}}}
= Build From Repo =
Per [http://allmydata.org/source/tahoe/trunk/docs/install.html these]
instructions I ran:
{{{
~/tahoe$ python ./setup.py build &> from_repo_build_log.txt
}}}
in the "from-repo" directory.
Upon inspection of the output (attached) I see several error-types. [[BR]]
I guess these two to be not-fatal: [[BR]]
i. "darcs failed: Not a repository: ..." and [[BR]]
i. "cc1plus: warning:..." lines are not fatal. [[BR]]
Following those two error-types the next error is:
{{{
pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
directory
}}}
= Difference Between First and Second Build Attempts in From-Tarball
Version =
In the "from-tar" directory I ran:
{{{
python ./setup.py build &> from_tar_build_log_initial.txt
}}}
(Actually I changed the log names to be more descriptive, after the fact.)
I do not notice obvious differences between repo and tar. [[BR]]
I do notice differences between initial and subsequent build-attempts.
[[BR]]
(Perhaps I should be writing "setup-" vice "build-" attempts.)
{{{
arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope
from_tar_build_log_initial.txt | grep Python.h
src/zope/interface/_zope_interface_coptimizations.c:15:20: error:
Python.h: No such file or directory
arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep zope
from_tar_build_log_second.txt | grep Python.h
}}}
(Log names changed after the fact for clarity.)
Intriguingly "zope" appears to be missing "Python.h" on the first build
attempt, this is not reported on subsequent build attempts.[[BR]] The
missing Python.h in pycryptopp is reported in initial and subsequent build
attempts:
{{{
arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp
from_tar_build_log_initial.txt | grep Python.h
pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
directory
arc at showertimedepot:~/tahoe/allmydata-tahoe-1.5.0$ grep pycryp
from_tar_build_log_second.txt | grep Python.h
pycryptopp/_pycryptoppmodule.cpp:2:20: error: Python.h: No such file or
directory
}}}
= First Versus Second From Repo Setup =
Is the difference between initial and subsequent setup bugs also [[BR]]
seen in the from repo version?
To find out I tested a fresh from-repo setup attempt.
{{{
arc at showertimedepot:~/tahoe-darcs$ darcs get --lazy
http://allmydata.org/source/tahoe/trunk-hashedformat tahoe
Finished getting.
}}}
{{{
arc at showertimedepot:~/tahoe-darcs/tahoe$ grep -iEe"zope|pycryp" | grep
Python.h from_repo_*
from_repo_initial_setup.txt:src/zope/interface/_zope_interface_coptimizations.c:15:20:
error: Python.h: No such file or directory
from_repo_initial_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error:
Python.h: No such file or directory
from_repo_second_setup.txt:pycryptopp/_pycryptoppmodule.cpp:2:20: error:
Python.h: No such file or directory
}}}
So the difference between zope and pycryptopp initial vs. [[BR]] second
installs generalizes to installs from tar and from repo.
= Bug Interpretation =
It looks like Python.h of pycryptopp is not found so I guess that I lack
some necessary dependency.
= Calling All Dependencies =
(Since my bug does not seem to vary between from-repo and from-tar, I
stick to from repo from here on.)
Where're these elusive Python.h's? Sound like C headers to me....
Naive:
{{{
arc at showertimedepot:~/tahoe-darcs/tahoe$ find . -iname "*Python.h*"
arc at showertimedepot:~/tahoe-darcs/tahoe$
}}}
OK, not surprising since docs say all repo is python, and what's missing
is C. So, my belief that I have a dependency problem grows stronger.
Following [http://allmydata.org/source/tahoe/trunk/docs/install.html More
Details], I learn that I can view "the canonical list of dependencies" in
_auto_deps.py.
Of course, I cannot run "tahoe --version" yet so I skip that advice...
Aha! A "complete list of all dependencies..."
{{{
PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c
"import pkg_resources;print ', '.join([d.project_name+': '+d.version for d
in set(pkg_resources.require('allmydata-tahoe'))])"
}}}
{{{
arc at showertimedepot:~/tahoe-darcs/tahoe$
PYTHONPATH=${PYTHONPATH}:./support/lib/python2.5/site-packages/ python -c
"import pkg_resources;print ', '.join([d.project_name+': '+d.version for d
in set(pkg_resources.require('allmydata-tahoe'))])"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-
packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 626, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/arc/tahoe-darcs/tahoe/support/lib/python2.5/site-
packages/setuptools-0.6c12dev.egg/pkg_resources.py", line 524, in resolve
raise DistributionNotFound(req) # XXX put more info here
pkg_resources.DistributionNotFound: pycryptopp>=0.5.15
arc at showertimedepot:~/tahoe-darcs/tahoe$
}}}
Hmmm.... next step... submit and wait... if no help then dissect above
expression...
OK, I did try to dissect a tiny bit:
In ipython interpreter:
{{{
In [1]: import sys
In [2]: sys.path
Out[2]:
['',
'/usr/bin',
'/usr/lib/python2.5',
'/usr/lib/python2.5/plat-linux2',
'/usr/lib/python2.5/lib-tk',
'/usr/lib/python2.5/lib-dynload',
'/usr/local/lib/python2.5/site-packages',
'/usr/lib/python2.5/site-packages',
'/var/lib/python-support/python2.5',
'/var/lib/python-support/python2.5/IPython/Extensions',
'/home/arc/.ipython']
In [3]: sys.path.append('./support/lib/python2.5/site-packages/')
In [4]: import pkg_resources
---------------------------------------------------------------------------
ImportError Traceback (most recent call
last)
/home/arc/tahoe-darcs/tahoe/<ipython console> in <module>()
ImportError: No module named pkg_resources
}}}
(And just to be sure I tried above with explicit path name from root to
relevant site-packages.)
Which is:
{{{
arc at showertimedepot:~/tahoe-darcs/tahoe$ ls -la ./support/lib/python2.5
/site-packages/
total 32
drwxr-xr-x 3 arc arc 4096 2009-09-14 22:32 .
drwxr-xr-x 3 arc arc 4096 2009-09-14 22:30 ..
-rw-r--r-- 1 arc arc 35 2009-09-14 22:32 allmydata-tahoe.egg-link
-rw-r--r-- 1 arc arc 297 2009-09-14 22:30 easy-install.pth
drwxr-xr-x 4 arc arc 4096 2009-09-14 22:32 setuptools-0.6c12dev.egg
-rw-r--r-- 1 arc arc 27 2009-09-14 22:32 setuptools.pth
-rw-r--r-- 1 arc arc 2327 2009-09-14 22:30 site.py
-rw-r--r-- 1 arc arc 1833 2009-09-14 22:30 site.pyc
}}}
--
Comment (by tilllt):
The bug still occurred for me on my raspberry pi running Linux 3.6.11+
armv6l and Python 2.7.3 where there is no pycryptoapp binary package.
installing the suggested dependencies (python-dev python-openssl) solved
this for me.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/804#comment:39>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list