Source: python-gevent
Version: 1.2.2-2
Severity: serious
Justification: fails to build from source

Dear maintainer,

python-gevent fails to build with Sphinx 1.6.6.

The build log can be found here:
https://tests.reproducible-builds.org/debian/rbuild/unstable/amd64/python-gevent_1.2.2-2.rbuild.log

When I run sphinx-doc with --verbose flag, I get the following traceback:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/sphinx/cmdline.py", line 306, in main
    app.build(opts.force_all, filenames)
  [... Sphinx internals ...]
  File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 1848, in 
run
    documenter.generate(more_content=self.content)
  File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 1545, in 
generate
    all_members=all_members)
  [... lots of similar lines here ...]
  File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 1540, in 
generate
    all_members=all_members)
  File "/usr/lib/python2.7/dist-packages/sphinx/ext/autodoc.py", line 1538, in 
generate
    return super(ClassDocumenter, self).generate(more_content=more_content,
RuntimeError: maximum recursion depth exceeded while calling a Python object

The problem is that python-gevent replaces ClassDocumenter with its own class
named MyClassDocumenter:
https://sources.debian.org/src/python-gevent/1.2.2-2/doc/conf.py/#L249

But Sphinx does not know about this, so super(ClassDocumenter, self).generate
is the same as self.generate, which results in a recursion.

A potential fix could be overriding generate method in MyClassDocumenter,
or not replacing the standard class at all.

--
Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature

Reply via email to