SHA256
1
0
forked from pool/bind
bind/bind-fix-build-with-older-sphinx.patch

109 lines
4.2 KiB
Diff
Raw Normal View History

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.