#701 closed defect (fixed)

The instructions in "Installing Tahoe" do not mention C compiler requirement.

Reported by: nejucomo Owned by: nejucomo
Priority: minor Milestone: undecided
Component: packaging Version: 1.4.1
Keywords: docs gcc Cc:
Launchpad Bug:

Description (last modified by zooko)

On my recently created ubuntu server edition 9.04 install, I just followed the directions on "Installing Tahoe" found here:

http://allmydata.org/source/tahoe/trunk/docs/install.html

http://tahoe-lafs.org/trac/tahoe-lafs/browser/trunk/docs/quickstart.rst

Running "python setup.py build" ends with with: distutils.errors.DistutilsError?: Setup script exited with error: command 'gcc' failed with exit status 1

Add brief mention of a C compiler requirement to "Installing Tahoe" (or perhaps the "InstallDetails" "AdvancedInstall" wiki page).

Change History (8)

comment:1 Changed at 2009-05-12T01:09:10Z by nejucomo

I misunderstood the build failure, and the solution was to install the python development headers. I see that from the InstallDetails page, if I follow the DownloadDebianPackages link, then scroll to the section on building from source on debian, it mentions the python-dev package.

Perhaps the "Installing Tahoe" page could clarify that the full python C development environment is required?

Here's the relevant snippet:

twisted/runner/portmap.c:10:20: error: Python.h: No such file or directory
twisted/runner/portmap.c:14: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
twisted/runner/portmap.c:31: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
twisted/runner/portmap.c:45: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘PortmapMethods’
twisted/runner/portmap.c: In function ‘initportmap’:
twisted/runner/portmap.c:55: warning: implicit declaration of function ‘Py_InitModule’
twisted/runner/portmap.c:55: error: ‘PortmapMethods’ undeclared (first use in this function)
twisted/runner/portmap.c:55: error: (Each undeclared identifier is reported only once
twisted/runner/portmap.c:55: error: for each function it appears in.)
Traceback (most recent call last):
  File "setup.py", line 346, in <module>
    zip_safe=False, # We prefer unzipped for easier access.
  File "/usr/lib/python2.6/distutils/core.py", line 113, in setup
    _setup_distribution = dist = klass(attrs)
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/dist.py", line 219, in __init__
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/dist.py", line 243, in fetch_build_eggs
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/pkg_resources.py", line 522, in resolve
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/pkg_resources.py", line 758, in best_match
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/pkg_resources.py", line 770, in obtain
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/dist.py", line 286, in fetch_build_egg
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/command/easy_install.py", line 452, in easy_install
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/command/easy_install.py", line 482, in install_item
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/command/easy_install.py", line 661, in install_eggs
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/command/easy_install.py", line 936, in build_and_install
  File "/home/n/sandbox/allmydata-tahoe-1.4.1/setuptools-0.6c12dev.egg/setuptools/command/easy_install.py", line 927, in run_setup
distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1
Last edited at 2011-08-25T11:57:09Z by zooko (previous) (diff)

comment:2 Changed at 2009-05-12T02:09:17Z by zooko

The intent (since d45780faf085fb55) is that building Tahoe doesn't require g++ or Python.h. For that to work, however, requires that all the dependencies either happen to already be installed or else get installed from a binary egg at build time. What platform are you on, and what dependenc(y|ies) are failing to install from binaries?

comment:3 Changed at 2009-05-12T02:50:38Z by zooko

Oh, by the way, I see that our collection of binary eggs is commented-out in setup.cfg. Could you please try commenting-in the line that tells setup.py to look in a certain directory on the tahoe test grid for binary eggs?

The reason it is commented-out is that the tahoe test grid is too unreliable (it sometimes stalls for tens of minutes due to some transient storage server having disconnected without sending a TCP FIN packet, I think). If commenting that in fixes your build issue then maybe we could copy all those binary eggs over to the volunteer grid.

comment:4 Changed at 2009-06-10T18:21:42Z by zooko

  • Owner changed from somebody to nejucomo

comment:5 Changed at 2009-06-25T15:59:45Z by zooko

  • Keywords packaging added

comment:6 Changed at 2009-12-04T05:23:15Z by davidsarah

  • Component changed from documentation to packaging
  • Keywords docs gcc added; packaging removed

comment:7 Changed at 2011-08-25T04:19:02Z by davidsarah

  • Description modified (diff)

AdvancedInstall says: "Several of these [third-party libraries] use compiled C code, so they do require a compile step."

comment:8 Changed at 2014-09-05T00:20:43Z by zooko

  • Description modified (diff)
  • Resolution set to fixed
  • Status changed from new to closed

There's also FAQ.

Note: See TracTickets for help on using tickets.