Bug#963659: pybind11: FTBFS with Sphinx 3.1

Rebecca N. Palmer rebecca_palmer at zoho.com
Sun Jun 28 21:22:56 BST 2020


This looks like #963653, which is fixed by using python3-breathe 4.19 
from experimental.  However, doing that here gives a different error:

sphinx-build -b html -d .build/doctrees   . .build/html
Running Sphinx v3.1.1
making output directory... done
1.8.17
/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/operators.h:162: 
warning: Found ';' while parsing initializer list! (doxygen could be 
confused by a macro call without semicolon)
/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/pytypes.h:518: 
warning: Found ';' while parsing initializer list! (doxygen could be 
confused by a macro call without semicolon)
/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/detail/common.h:472: 
warning: Detected potential recursive class relation between class 
make_index_sequence_impl and base class make_index_sequence_impl< N - 1, 
N - 1, S... >!

/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/detail/common.h:472: 
warning: Detected potential recursive class relation between class 
make_index_sequence_impl and base class make_index_sequence_impl< N - 1, 
N - 1, S... >!

/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/detail/descr.h:57: 
warning: Detected potential recursive class relation between class 
int_to_str and base class int_to_str< Rem/10, Rem%10, Digits... >!

/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/detail/descr.h:57: 
warning: Detected potential recursive class relation between class 
int_to_str and base class int_to_str< Rem/10, Rem%10, Digits... >!

/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/cast.h:2164: 
warning: no uniquely matching class member found for
   template < Derived >
   template < policy, Args >
   object object_api< Derived >::call(Args &&... args) const

/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/include/pybind11/detail/common.h:588: 
warning: explicit link request to 'value' could not be resolved
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 29 source files that are out of date
updating environment: [new config] 29 added, 0 changed, 0 removed
/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/docs/reference.rst:52: 
WARNING: Duplicate declaration, str : public object
/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/docs/reference.rst.rst:52: 
WARNING: C++ declarations inside functions are not supported. Parent 
function is str

Exception occurred:
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 425, in run_directive
     rst_node = nodes[1]
IndexError: list index out of range
The full traceback has been saved in /tmp/sphinx-err-uyh7xlsd.log, if 
you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error 
message can be provided next time.
A bug report can be filed in the tracker at 
<https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make[2]: *** [Makefile:55: html] Error 2
make[2]: Leaving directory 
'/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0/docs'
make[1]: *** [debian/rules:38: override_dh_auto_build] Error 2
make[1]: Leaving directory 
'/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0'
make: *** [debian/rules:20: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit 
status 2
test1 at rnpalmer-laptop:/home/rnpalmer/Debian/builds/stackbuild/pybind11-2.5.0$ 
cat /tmp/sphinx-err-uyh7xlsd.log
# Sphinx version: 3.1.1
# Python version: 3.8.3 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.2
# Last messages:
#   reading sources... [ 65%] basics
#   reading sources... [ 68%] benchmark
#   reading sources... [ 72%] changelog
#   reading sources... [ 75%] classes
#   reading sources... [ 79%] compiling
#   reading sources... [ 82%] faq
#   reading sources... [ 86%] index
#   reading sources... [ 89%] intro
#   reading sources... [ 93%] limitations
#   reading sources... [ 96%] reference
# Loaded extensions:
#   sphinx.ext.mathjax (3.1.1) from 
/usr/lib/python3/dist-packages/sphinx/ext/mathjax.py
#   alabaster (0.7.8) from 
/usr/lib/python3/dist-packages/alabaster/__init__.py
#   breathe (4.19.2) from /usr/lib/python3/dist-packages/breathe/__init__.py
Traceback (most recent call last):
   File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 280, 
in build_main
     app.build(args.force_all, filenames)
   File "/usr/lib/python3/dist-packages/sphinx/application.py", line 
342, in build
     self.builder.build_update()
   File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", 
line 297, in build_update
     self.build(to_build,
   File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", 
line 311, in build
     updated_docnames = set(self.read())
   File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", 
line 418, in read
     self._read_serial(docnames)
   File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", 
line 439, in _read_serial
     self.read_doc(docname)
   File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", 
line 479, in read_doc
     doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
   File "/usr/lib/python3/dist-packages/sphinx/io.py", line 221, in read_doc
     pub.publish()
   File "/usr/lib/python3/dist-packages/docutils/core.py", line 217, in 
publish
     self.document = self.reader.read(self.source, self.parser,
   File "/usr/lib/python3/dist-packages/sphinx/io.py", line 126, in read
     self.parse()
   File "/usr/lib/python3/dist-packages/docutils/readers/__init__.py", 
line 77, in parse
     self.parser.parse(self.input, document)
   File "/usr/lib/python3/dist-packages/sphinx/parsers.py", line 102, in 
parse
     self.statemachine.run(inputlines, document, inliner=self.inliner)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 171, in run
     results = StateMachineWS.run(self, input_lines, input_offset,
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
241, in run
     context, next_state, result = self.check_line(
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
459, in check_line
     return method(match, context, next_state)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2770, in underline
     self.section(title, source, style, lineno - 1, messages)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 328, in section
     self.new_subsection(title, lineno, messages)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 394, in new_subsection
     newabsoffset = self.nested_parse(
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 282, in nested_parse
     state_machine.run(block, input_offset, memo=self.memo,
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 197, in run
     results = StateMachineWS.run(self, input_lines, input_offset)
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
241, in run
     context, next_state, result = self.check_line(
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
459, in check_line
     return method(match, context, next_state)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2770, in underline
     self.section(title, source, style, lineno - 1, messages)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 328, in section
     self.new_subsection(title, lineno, messages)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 394, in new_subsection
     newabsoffset = self.nested_parse(
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 282, in nested_parse
     state_machine.run(block, input_offset, memo=self.memo,
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 197, in run
     results = StateMachineWS.run(self, input_lines, input_offset)
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
241, in run
     context, next_state, result = self.check_line(
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
459, in check_line
     return method(match, context, next_state)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2345, in explicit_markup
     self.explicit_list(blank_finish)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2370, in explicit_list
     newline_offset, blank_finish = self.nested_list_parse(
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 319, in nested_list_parse
     state_machine.run(block, input_offset, memo=self.memo,
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 197, in run
     results = StateMachineWS.run(self, input_lines, input_offset)
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
241, in run
     context, next_state, result = self.check_line(
   File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 
459, in check_line
     return method(match, context, next_state)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2648, in explicit_markup
     nodelist, blank_finish = self.explicit_construct(match)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2355, in explicit_construct
     return method(self, expmatch)
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2097, in directive
     return self.run_directive(
   File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", 
line 2147, in run_directive
     result = directive_instance.run()
   File "/usr/lib/python3/dist-packages/breathe/directives.py", line 
398, in run
     node_list.extend(object_renderer.render(context.node_stack[0], 
context))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1636, in dispatch_compound
     return self.visit_file(node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 920, in visit_file
     return self.visit_compound(node, render_signature=render_signature)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 840, in visit_compound
     rendered_data = self.render(file_data, parent_context)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 701, in visit_doxygendef
     return self.render(node.compounddef)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1024, in visit_compounddef
     addnode('innerclass', lambda: self.render_iterable(node.innerclass))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 977, in addnode
     nodemap[len(nodemap)] = lam()
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1024, in <lambda>
     addnode('innerclass', lambda: self.render_iterable(node.innerclass))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1721, in render_iterable
     output.extend(self.render(entry))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1279, in visit_ref
     return self.visit_compound(node, False, get_node_info=get_node_info)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 831, in visit_compound
     return self.visit_class(node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 782, in visit_class
     nodes = self.handle_declaration(nodeDef, declaration, 
content_callback=content,
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 447, in handle_declaration
     nodes_ = self.run_directive(obj_type, declaration, 
content_callback, options)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 412, in run_directive
     nodes = directive.run()
   File "/usr/lib/python3/dist-packages/sphinx/domains/cpp.py", line 
6777, in run
     return super().run()
   File "/usr/lib/python3/dist-packages/sphinx/directives/__init__.py", 
line 210, in run
     self.transform_content(contentnode)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 62, in transform_content
     callback(contentnode)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 777, in content
     rendered_data = self.render(file_data, parent_context)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 701, in visit_doxygendef
     return self.render(node.compounddef)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1003, in visit_compounddef
     child_nodes = self.render(sectiondef)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1040, in visit_sectiondef
     node_list.extend(self.render_iterable(node.memberdef))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1721, in render_iterable
     output.extend(self.render(entry))
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1711, in render
     result = method(self, node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1643, in dispatch_memberdef
     return self.visit_function(node)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 1360, in visit_function
     nodes = self.handle_declaration(node, declaration)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 447, in handle_declaration
     nodes_ = self.run_directive(obj_type, declaration, 
content_callback, options)
   File 
"/usr/lib/python3/dist-packages/breathe/renderer/sphinxrenderer.py", 
line 425, in run_directive
     rst_node = nodes[1]
IndexError: list index out of range



More information about the debian-science-maintainers mailing list