File bind-fix-build-with-older-sphinx.patch of Package bind

Index: b/doc/arm/conf.py
===================================================================
--- a/doc/arm/conf.py
+++ b/doc/arm/conf.py
@@ -18,54 +18,58 @@ from docutils.nodes import Node, system_
 from docutils.parsers.rst import roles
 
 from sphinx import addnodes
-from sphinx.util.docutils import ReferenceRole
+try:
+    from sphinx.util.docutils import ReferenceRole
 
+    GITLAB_BASE_URL = 'https://gitlab.isc.org/isc-projects/bind9/-/'
 
-GITLAB_BASE_URL = 'https://gitlab.isc.org/isc-projects/bind9/-/'
 
-
-# Custom Sphinx role enabling automatic hyperlinking to GitLab issues/MRs.
-class GitLabRefRole(ReferenceRole):
-    def __init__(self, base_url: str) -> None:
-        self.base_url = base_url
-        super().__init__()
-
-    def run(self) -> Tuple[List[Node], List[system_message]]:
-        gl_identifier = '[GL %s]' % self.target
-
-        target_id = 'index-%s' % self.env.new_serialno('index')
-        entries = [('single', 'GitLab; ' + gl_identifier, target_id, '', None)]
-
-        index = addnodes.index(entries=entries)
-        target = nodes.target('', '', ids=[target_id])
-        self.inliner.document.note_explicit_target(target)
-
-        try:
-            refuri = self.build_uri()
-            reference = nodes.reference('', '', internal=False, refuri=refuri,
-                                        classes=['gl'])
-            if self.has_explicit_title:
-                reference += nodes.strong(self.title, self.title)
-            else:
-                reference += nodes.strong(gl_identifier, gl_identifier)
-        except ValueError:
-            error_text = 'invalid GitLab identifier %s' % self.target
-            msg = self.inliner.reporter.error(error_text, line=self.lineno)
-            prb = self.inliner.problematic(self.rawtext, self.rawtext, msg)
-            return [prb], [msg]
-
-        return [index, target, reference], []
-
-    def build_uri(self):
-        if self.target[0] == '#':
-            return self.base_url + 'issues/%d' % int(self.target[1:])
-        if self.target[0] == '!':
-            return self.base_url + 'merge_requests/%d' % int(self.target[1:])
-        raise ValueError
-
-
-def setup(_):
-    roles.register_local_role('gl', GitLabRefRole(GITLAB_BASE_URL))
+    # Custom Sphinx role enabling automatic hyperlinking to GitLab issues/MRs.
+    class GitLabRefRole(ReferenceRole):
+        def __init__(self, base_url: str) -> None:
+            self.base_url = base_url
+            super().__init__()
+
+        def run(self) -> Tuple[List[Node], List[system_message]]:
+            gl_identifier = '[GL %s]' % self.target
+
+            target_id = 'index-%s' % self.env.new_serialno('index')
+            entries = [('single', 'GitLab; ' + gl_identifier, target_id, '', None)]
+
+            index = addnodes.index(entries=entries)
+            target = nodes.target('', '', ids=[target_id])
+            self.inliner.document.note_explicit_target(target)
+
+            try:
+                refuri = self.build_uri()
+                reference = nodes.reference('', '', internal=False, refuri=refuri,
+                                            classes=['gl'])
+                if self.has_explicit_title:
+                    reference += nodes.strong(self.title, self.title)
+                else:
+                    reference += nodes.strong(gl_identifier, gl_identifier)
+            except ValueError:
+                error_text = 'invalid GitLab identifier %s' % self.target
+                msg = self.inliner.reporter.error(error_text, line=self.lineno)
+                prb = self.inliner.problematic(self.rawtext, self.rawtext, msg)
+                return [prb], [msg]
+
+            return [index, target, reference], []
+
+        def build_uri(self):
+            if self.target[0] == '#':
+                return self.base_url + 'issues/%d' % int(self.target[1:])
+            if self.target[0] == '!':
+                return self.base_url + 'merge_requests/%d' % int(self.target[1:])
+            raise ValueError
+
+
+    def setup(_):
+        roles.register_local_role('gl', GitLabRefRole(GITLAB_BASE_URL))
+
+except ImportError:
+    # better loose this feature, than failing the build
+    pass
 
 #
 # Configuration file for the Sphinx documentation builder.
openSUSE Build Service is sponsored by