linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] docs: sphinx: handle removal of utils.error_reporting in docutils 0.22
@ 2025-09-02 14:51 Zhixu Liu
  2025-09-02 15:18 ` Jonathan Corbet
  0 siblings, 1 reply; 5+ messages in thread
From: Zhixu Liu @ 2025-09-02 14:51 UTC (permalink / raw)
  To: Jonathan Corbet; +Cc: linux-doc

docutils.utils.error_reporting was removed in docutils v0.22, causing sphinx
extensions (e.g. kernel_include) to fail with:

>   File "/usr/lib/python3.12/site-packages/sphinx/registry.py", line 544, in load_extension
>     raise ExtensionError(
> sphinx.errors.ExtensionError: Could not import extension kernel_include (exception: No module named 'docutils.utils.error_reporting')

Add compatibility handling with try/except (more robust than checking
version numbers):
- SafeString  -> str
- ErrorString -> docutils.io.error_string()

Signed-off-by: Z. Liu <zhixu.liu@gmail.com>
---
 Documentation/sphinx/kernel_feat.py         | 6 +++++-
 Documentation/sphinx/kernel_include.py      | 7 ++++++-
 Documentation/sphinx/maintainers_include.py | 6 +++++-
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/Documentation/sphinx/kernel_feat.py
b/Documentation/sphinx/kernel_feat.py
index e3a51867f27bd..d077645254cd4 100644
--- a/Documentation/sphinx/kernel_feat.py
+++ b/Documentation/sphinx/kernel_feat.py
@@ -40,7 +40,11 @@ import sys
 from docutils import nodes, statemachine
 from docutils.statemachine import ViewList
 from docutils.parsers.rst import directives, Directive
-from docutils.utils.error_reporting import ErrorString
+try:
+    from docutils.utils.error_reporting import ErrorString
+except ImportError:
+    # docutils >= 0.22
+    from docutils.io import error_string as ErrorString
 from sphinx.util.docutils import switch_source_input

 __version__  = '1.0'
diff --git a/Documentation/sphinx/kernel_include.py
b/Documentation/sphinx/kernel_include.py
index 1e566e87ebcdd..6c3cfcb904884 100755
--- a/Documentation/sphinx/kernel_include.py
+++ b/Documentation/sphinx/kernel_include.py
@@ -35,7 +35,12 @@
 import os.path

 from docutils import io, nodes, statemachine
-from docutils.utils.error_reporting import SafeString, ErrorString
+try:
+    from docutils.utils.error_reporting import SafeString, ErrorString
+except ImportError:
+    # docutils >= 0.22
+    SafeString = str
+    from docutils.io import error_string as ErrorString
 from docutils.parsers.rst import directives
 from docutils.parsers.rst.directives.body import CodeBlock, NumberLines
 from docutils.parsers.rst.directives.misc import Include
diff --git a/Documentation/sphinx/maintainers_include.py
b/Documentation/sphinx/maintainers_include.py
index d31cff8674367..efd866ff066b7 100755
--- a/Documentation/sphinx/maintainers_include.py
+++ b/Documentation/sphinx/maintainers_include.py
@@ -22,7 +22,11 @@ import re
 import os.path

 from docutils import statemachine
-from docutils.utils.error_reporting import ErrorString
+try:
+    from docutils.utils.error_reporting import ErrorString
+except ImportError:
+    # docutils >= 0.22
+    from docutils.io import error_string as ErrorString
 from docutils.parsers.rst import Directive
 from docutils.parsers.rst.directives.misc import Include

--
2.49.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-09-06 14:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-02 14:51 [PATCH v2] docs: sphinx: handle removal of utils.error_reporting in docutils 0.22 Zhixu Liu
2025-09-02 15:18 ` Jonathan Corbet
2025-09-02 15:56   ` Zhixu Liu
2025-09-04  3:42     ` [PATCH v3] " Zhixu Liu
2025-09-06 14:38   ` [PATCH v2] " Zhixu Liu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).