Hi Helmut and all! On Sun, Sep 26, 2021 at 07:37:13PM +0200, Helmut Grohne wrote: > I'm reporting this bug on behalf of Alexey Brodkin as the original > reporter on irc. > > cyrus-sasl2 fails to build from source in unstable on amd64. A build > ends as follows: > > [...skipping warnings which are not fatal...] > > | Exception occurred: File > "/usr/lib/python3/dist-packages/docutils/writers/manpage.py", line 171, in > __init__ > | self.settings = settings = document.settings > | AttributeError: 'CyrusManualPageBuilder' object has no attribute 'settings' > | The full traceback has been saved in /tmp/sphinx-err-3nha1qoj.log, if you > want to report the issue to the developers. > > [...] > > It built fine yesterday and today sphinx got uploaded to unstable. That > seems like a very plausible reason, right? I've put Dmitry in the loop.
Yes, it is caused by a change in Sphinx. CyrusManualPageTranslator inherits from Sphinx' ManualPageTranslator and calls the super-class constructor as follows: BaseTranslator.__init__(self, builder, *args, **kwds) However, starting with Sphinx 2.0 it should be called with document as the first argument and builder as the second one [1]. The old way of calling it raised a warning for some time and was completely removed in Sphinx 4.0. The full traceback is: 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 337, in build self.builder.build_update() File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 290, in build_update self.build(['__all__'], to_build) File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 357, in build self.write(docnames, list(updated_docnames), method) File "/cyrus-sasl2-2.1.27+dfsg/build-heimdal/docsrc/exts/sphinxlocal/builders/manpage.py", line 86, in write docwriter.write(largetree, destination) File "/usr/lib/python3/dist-packages/docutils/writers/__init__.py", line 78, in write self.translate() File "/cyrus-sasl2-2.1.27+dfsg/build-heimdal/docsrc/exts/sphinxlocal/writers/manpage.py", line 37, in translate visitor = CyrusManualPageTranslator(self.builder, self.document) File "/cyrus-sasl2-2.1.27+dfsg/build-heimdal/docsrc/exts/sphinxlocal/writers/manpage.py", line 49, in __init__ BaseTranslator.__init__(self, builder, *args, **kwds) File "/usr/lib/python3/dist-packages/sphinx/writers/manpage.py", line 82, in __init__ super().__init__(document, builder) File "/usr/lib/python3/dist-packages/sphinx/util/docutils.py", line 460, in __init__ super().__init__(document) File "/usr/lib/python3/dist-packages/docutils/writers/manpage.py", line 171, in __init__ self.settings = settings = document.settings AttributeError: 'CyrusManualPageBuilder' object has no attribute 'settings' cyrus-sasl2's Sphinx extension passes builder in place of document, which causes this error. [1]: https://github.com/sphinx-doc/sphinx/pull/5828 -- Dmitry Shachnev
signature.asc
Description: PGP signature