DebianPts:python-sphinx creates unreproducible documentation by:
* embedding object memory addresses,
* producing unsorted files:
* searchindex.js
* objects.inv
* linking against remote documentation repositories with the intersphinx module
* generating unsorted section IDs and anchors in texinfo output (affects info pages)
* PDF output generated by Sphinx is similarly unreproducible.
[[https://reproducible.debian.net/issues/randomness_in_documentation_generated_by_sphinx_issue.html|Known affected packages]]
= Detection =
[[attachment:kombu_3.0.21-2.debbindiff.html|Example debbindiff output with memory references and an unsorted index file]]
Example diff with and without network access:
{{{
-
to_addr (str) – the email to use as “to” (defaults to
+to_addr (str) – the email to use as “to” (defaults to
}}}
= Solution =
For unsorted stuff, patch submitted as Bug:776443.
For info pages, patch forwarded upstream in Bug:907352 (not yet applied in Debian).
For PDFs, TODO: info page bug may contain a hint for a solution.
For the external links, see Bug:877895 for the full discussion.
Workaround: use the "multiple target" feature introduced in Sphinx 1.3 in the [[http://www.sphinx-doc.org/en/stable/ext/intersphinx.html#confval-intersphinx_mapping|intersphinx_mapping]] configuration, like such:
{{{
intersphinx_mapping = {
'python': ('https://docs.python.org/3/',
('/usr/share/doc/python3-doc/html/objects.inv', None)),
}
}}}
Make sure you add the right `build-dep` for the docs packages referenced (in the above case, DebianPackage:python3-doc.