#278 closed defect (fixed)

setuptools vs. swig on debian sid

Reported by: warner Owned by: warner
Priority: major Milestone: 1.1.0
Component: packaging Version: 0.7.0
Keywords: debian Cc:
Launchpad Bug:

Description

A fresh checkout fails to compile on my laptop, which is running debian "sid" (aka "unstable"). I suspect that something on my box is too new for one of our support libraries. I checked out a tree and typed 'make', and got the following traceback:

...

Installed /home/warner/stuff/Projects/Work/AllMyData/tahoe/t2/support/lib/python2.4/site-packages/tahoe_deps-1-py2.4.egg
Processing dependencies for tahoe-deps==1
Searching for zope.interface>=3.1.0
Best match: zope.interface 3.4.0
Processing zope.interface-3.4.0.tar
Running zope.interface-3.4.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-T2kI_8/zope.interface-3.4.0/egg-dist-tmp-Hzei_c
Traceback (most recent call last):
  File "misc/dependencies/setup.py", line 49, in ?
    zip_safe=False

...

  File "/usr/lib/python2.4/distutils/command/install_lib.py", line 110, in build
    self.run_command('build_ext')
  File "/usr/lib/python2.4/distutils/cmd.py", line 333, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python2.4/distutils/dist.py", line 966, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.4/site-packages/setuptools/command/build_ext.py", line 46, in run
    _build_ext.run(self)
  File "/usr/lib/python2.4/distutils/command/build_ext.py", line 279, in run
    self.build_extensions()
  File "/usr/lib/python2.4/site-packages/Pyrex/Distutils/build_ext.py", line 82, in build_extensions
    self.build_extension(ext)
  File "/usr/lib/python2.4/site-packages/setuptools/command/build_ext.py", line 175, in build_extension
    _build_ext.build_extension(self,ext)
  File "/usr/lib/python2.4/distutils/command/build_ext.py", line 442, in build_extension
    sources = self.swig_sources(sources, ext)
  File "/usr/lib/python2.4/site-packages/setuptools/command/build_ext.py", line 77, in swig_sources
    sources = _build_ext.swig_sources(self, sources) or sources
TypeError: swig_sources() takes exactly 3 arguments (2 given)
Build of Tahoe's bundled, automatically built dependent libraries failed -- please see docs/install.html for instructions.
make: *** [build-auto-deps] Error 1

This is on a box that has the following debian packages installed:

Nevow-0.9.29 Foolscap-0.2.2 setuptools-0.6c7 (debian version 0.6c7-1) simplejson-1.7.3 zfec-1.1 zope.interface-3.3.1

So my understanding of our dependencies suggests that it shouldn't have been building nevow at all. (I notice that the installed Nevow-0.9.29.egg-info file says "Name: Nevow" and "Version: 0.9.29" .. could the Name field be case-sensitive?).

I'll investigate this further, it feels like more of an internal setuptools problem than a tahoe thing, but I figured I'd add a ticket just in case someone else is seeing the same problem.

Change History (9)

comment:1 Changed at 2008-01-16T05:44:58Z by warner

For reference, this system also has pyrex-0.9.6.4 installed on it. According to this page, 0.9.6.4 is the latest version (released about 6 weeks ago).

http://www.thescripts.com/forum/thread40367.html seems to be related, although it suggests that older versions of pyrex have the problem. Perhaps even the latest pyrex has the same problem? I'm not sure why this popped up now, though, I'm fairly certain that some update on my box in the last few days has triggered it.

comment:2 Changed at 2008-01-16T05:53:40Z by warner

FYI, temporarily modifying the section of /usr/lib/python2.4/site-packages/setuptools/command/build_ext.py which reads:

    if _build_ext is not _du_build_ext:
        # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4
        def swig_sources(self, sources, *otherargs):
            # first do any Pyrex processing
            sources = _build_ext.swig_sources(self, sources) or sources
            # Then do any actual SWIG stuff on the remainder
            return _du_build_ext.swig_sources(self, sources, *otherargs)

to say:

    if _build_ext is not _du_build_ext:
        # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4
        def swig_sources(self, sources, *otherargs):
            # first do any Pyrex processing
            sources = _build_ext.swig_sources(self, sources,None) or sources
            # Then do any actual SWIG stuff on the remainder
            return _du_build_ext.swig_sources(self, sources, *otherargs)

makes the problem go away.

comment:3 Changed at 2008-01-16T06:02:02Z by warner

I retract one statement above: obviously the build was compiling zope.interface, not nevow. I have no idea why I thought it was building nevow.

the build-deps step built the following packages:

  • zope.interface
  • pycryptopp
  • foolscap
  • zfec
  • pyutil
  • argparse

All of these were expected except for zope.interface. Looking more closely, I see that the installed zope.interface egg-info file claims a version of "0.0.0", so it appears that z.i was being built due to a reports-its-version-wrong bug in the debian packaging.

One mystery solved, one to go. I still don't know why the TypeError exception just started recently.

comment:4 Changed at 2008-03-08T23:03:38Z by zooko

According to the setuptools release notes, this was fixed in the 0.6c8 a.k.a. 0.6 final:

http://peak.telecommunity.com/DevCenter/setuptools#release-notes-change-history

I know that you recently upgraded to that version of setuptools on your sid box -- did it change this behavior?

comment:5 Changed at 2008-05-15T12:43:26Z by zooko

  • Owner changed from somebody to warner
  • Summary changed from build-deps failure on debian sid to setuptools vs. swig on debian sid

Brian: was this issue fixed by upgrading to setuptools 0.6c8?

comment:6 Changed at 2008-05-30T16:53:40Z by zooko

Brian: can we close this ticket?

comment:7 Changed at 2008-06-01T21:03:09Z by warner

  • Milestone changed from eventually to undecided

comment:8 Changed at 2008-06-02T16:41:05Z by zooko

  • Milestone changed from undecided to 1.1.0

comment:9 Changed at 2008-06-03T05:44:10Z by warner

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

My debian/sid system now has python-setuptools-0.6c8-3 installed, and a tahoe compile no longer encounters this problem. It is worth pointing out that tahoe no longer tries to build zope.interface (it says "zope.interface 3.3.1 is already the active version in easy-install.pth"), so I can't tell if the problem went away because setuptools got better or because zope.interface now has the correct egg.info file .

In any case, sid works again, so I'll close this ticket.

Note: See TracTickets for help on using tickets.