| From d43ddd5c91802a46354fa4c4381416ef760676e2 Mon Sep 17 00:00:00 2001 |
| From: Akira Yokosawa <akiyks@gmail.com> |
| Date: Wed, 1 May 2024 12:16:11 +0900 |
| Subject: docs: kernel_include.py: Cope with docutils 0.21 |
| |
| From: Akira Yokosawa <akiyks@gmail.com> |
| |
| commit d43ddd5c91802a46354fa4c4381416ef760676e2 upstream. |
| |
| Running "make htmldocs" on a newly installed Sphinx 7.3.7 ends up in |
| a build error: |
| |
| Sphinx parallel build error: |
| AttributeError: module 'docutils.nodes' has no attribute 'reprunicode' |
| |
| docutils 0.21 has removed nodes.reprunicode, quote from release note [1]: |
| |
| * Removed objects: |
| |
| docutils.nodes.reprunicode, docutils.nodes.ensure_str() |
| Python 2 compatibility hacks |
| |
| Sphinx 7.3.0 supports docutils 0.21 [2]: |
| |
| kernel_include.py, whose origin is misc.py of docutils, uses reprunicode. |
| |
| Upstream docutils removed the offending line from the corresponding file |
| (docutils/docutils/parsers/rst/directives/misc.py) in January 2022. |
| Quoting the changelog [3]: |
| |
| Deprecate `nodes.reprunicode` and `nodes.ensure_str()`. |
| |
| Drop uses of the deprecated constructs (not required with Python 3). |
| |
| Do the same for kernel_include.py. |
| |
| Tested against: |
| - Sphinx 2.4.5 (docutils 0.17.1) |
| - Sphinx 3.4.3 (docutils 0.17.1) |
| - Sphinx 5.3.0 (docutils 0.18.1) |
| - Sphinx 6.2.1 (docutils 0.19) |
| - Sphinx 7.2.6 (docutils 0.20.1) |
| - Sphinx 7.3.7 (docutils 0.21.2) |
| |
| Link: http://www.docutils.org/RELEASE-NOTES.html#release-0-21-2024-04-09 [1] |
| Link: https://www.sphinx-doc.org/en/master/changes.html#release-7-3-0-released-apr-16-2024 [2] |
| Link: https://github.com/docutils/docutils/commit/c8471ce47a24 [3] |
| Signed-off-by: Akira Yokosawa <akiyks@gmail.com> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Jonathan Corbet <corbet@lwn.net> |
| Link: https://lore.kernel.org/r/faf5fa45-2a9d-4573-9d2e-3930bdc1ed65@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| Documentation/sphinx/kernel_include.py | 1 - |
| 1 file changed, 1 deletion(-) |
| |
| --- a/Documentation/sphinx/kernel_include.py |
| +++ b/Documentation/sphinx/kernel_include.py |
| @@ -97,7 +97,6 @@ class KernelInclude(Include): |
| # HINT: this is the only line I had to change / commented out: |
| #path = utils.relative_path(None, path) |
| |
| - path = nodes.reprunicode(path) |
| encoding = self.options.get( |
| 'encoding', self.state.document.settings.input_encoding) |
| e_handler=self.state.document.settings.input_encoding_error_handler |