Skip to content

sphinx-build documentation warnings and errors with newer versions of Sphinx #373

@esabol

Description

@esabol

Sphinx v1.8.5 on Ubuntu 20.04 works fine as it always has, but Sphinx v4.3.2 on Ubuntu 22.04 and v5.3.0 on Alpine 3.17 emit the following warnings (actually one is an error!):

reading sources... [100%] protocol/text
/__w/gearmand/gearmand/docs/source/libgearman.rst:63: WARNING: Duplicate C declaration, also defined at libgearman:59.
Declaration is '.. c:macro:: GEARMAN_DEFAULT_TCP_PORT'.
/__w/gearmand/gearmand/docs/source/libgearman/gearman_return_t.rst:188: WARNING: Duplicate C declaration, also defined at libgearman/gearman_return_t:129.
Declaration is '.. c:type:: GEARMAN_WORK_FAIL'.
/__w/gearmand/gearmand/docs/source/libgearman/gearman_return_t.rst:206: WARNING: Duplicate C declaration, also defined at libgearman/gearman_return_t:42.
Declaration is '.. c:type:: GEARMAN_SUCCESS'.
/__w/gearmand/gearmand/docs/source/libgearman/gearman_string_t.rst:13: WARNING: Invalid C declaration: Expected end of definition. [error at 7]
  size_t gearman_size(gearman_string_t)
  -------^
/__w/gearmand/gearmand/docs/source/libgearman/gearman_string_t.rst:15: WARNING: Invalid C declaration: Expected identifier in nested name, got keyword: const [error at 5]
  const char *gearman_c_str(gearman_string_t)
  -----^
/__w/gearmand/gearmand/docs/source/libgearman/types.rst:5: ERROR: Unknown directive type "highlightlang".
.. highlightlang:: c
/__w/gearmand/gearmand/docs/source/libgearman/types.rst:13: WARNING: Type must be either just a name or a typedef-like declaration.
If just a name:
  Error in declarator or parameters
  Invalid C declaration: Expected identifier, got user-defined keyword: bool. Remove it from c_extra_keywords to allow it as identifier.
  Currently c_extra_keywords is ['alignas', 'alignof', 'bool', 'complex', 'imaginary', 'noreturn', 'static_assert', 'thread_local']. [error at 4]
    bool
    ----^
If typedef-like declaration:
  Error in declarator or parameters
  Invalid C declaration: Expected identifier in nested name. [error at 4]
    bool
    ----^
/__w/gearmand/gearmand/docs/source/libgearman/types.rst:27: WARNING: Type must be either just a name or a typedef-like declaration.
If just a name:
  Error in declarator or parameters
  Invalid C declaration: Expected identifier in nested name, got keyword: struct [error at 6]
    struct timespec
    ------^
If typedef-like declaration:
  Error in declarator or parameters
  Invalid C declaration: Expected identifier in nested name. [error at 15]
    struct timespec
    ---------------^

It would be nice to clean these up, but I have no experience with Sphinx. Anyone have a clue?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions