aio-libs / aiosmtpd

A reimplementation of the Python stdlib smtpd.py based on asyncio.
https://aiosmtpd.aio-libs.org
Apache License 2.0
319 stars 96 forks source link

1.4.4.post2: documentation build fails #379

Closed kloczek closed 7 months ago

kloczek commented 1 year ago

Looks like something is wrong on use attr module

+ /usr/bin/sphinx-build -n -T -b man aiosmtpd/docs build/sphinx/man
Running Sphinx v6.2.1
Inserting /home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2
Inserting /home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/docs/_exts
Inserting /home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
writing output...
building [man]: all manpages
updating environment: [new config] 14 added, 0 changed, 0 removed
reading sources... [  7%] NEWS
reading sources... [ 14%] auth
reading sources... [ 21%] cli
reading sources... [ 28%] concepts
reading sources... [ 35%] controller
reading sources... [ 42%] handlers
reading sources... [ 50%] index
reading sources... [ 57%] intro
reading sources... [ 64%] lmtp
reading sources... [ 71%] manpage

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/cmd/build.py", line 285, in build_main
    app.build(args.force_all, args.filenames)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 353, in build
    self.builder.build_update()
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 308, in build_update
    self.build(['__all__'], to_build)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 328, in build
    updated_docnames = set(self.read())
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 435, in read
    self._read_serial(docnames)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 456, in _read_serial
    self.read_doc(docname)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 512, in read_doc
    publisher.publish()
  File "/usr/lib/python3.8/site-packages/docutils/core.py", line 224, in publish
    self.document = self.reader.read(self.source, self.parser,
  File "/usr/lib/python3.8/site-packages/sphinx/io.py", line 108, in read
    self.parse()
  File "/usr/lib/python3.8/site-packages/docutils/readers/__init__.py", line 76, in parse
    self.parser.parse(self.input, document)
  File "/usr/lib/python3.8/site-packages/sphinx/parsers.py", line 80, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 169, in run
    results = StateMachineWS.run(self, input_lines, input_offset,
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 3024, in text
    self.section(title.lstrip(), source, style, lineno + 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2785, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 325, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 391, in new_subsection
    newabsoffset = self.nested_parse(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 279, in nested_parse
    state_machine.run(block, input_offset, memo=self.memo,
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 195, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 233, in run
    context, next_state, result = self.check_line(
  File "/usr/lib/python3.8/site-packages/docutils/statemachine.py", line 445, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2355, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2367, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2104, in directive
    return self.run_directive(
  File "/usr/lib/python3.8/site-packages/docutils/parsers/rst/states.py", line 2154, in run_directive
    result = directive_instance.run()
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/docs/_exts/autoprogramm.py", line 294, in run
    for line in self.make_rst():
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/docs/_exts/autoprogramm.py", line 209, in make_rst
    parser = import_object(import_name or "__undefined__")
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/docs/_exts/autoprogramm.py", line 158, in import_object
    mod = __import__(module_name)
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/main.py", line 19, in <module>
    from aiosmtpd.smtp import DATA_SIZE_DEFAULT, SMTP
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/smtp.py", line 38, in <module>
    from aiosmtpd.proxy_protocol import ProxyData, get_proxy
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/proxy_protocol.py", line 115, in <module>
    _anoinit = partial(attr.ib, init=False)
AttributeError: module 'attr' has no attribute 'ib'

Exception occurred:
  File "/home/tkloczko/rpmbuild/BUILD/aiosmtpd-1.4.4.post2/aiosmtpd/proxy_protocol.py", line 115, in <module>
    _anoinit = partial(attr.ib, init=False)
AttributeError: module 'attr' has no attribute 'ib'
The full traceback has been saved in /tmp/sphinx-err-zh0svfjs.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!