Accepting request 901768 from home:frispete:15.2
Hi, here's an attempt to build the current bind with SLES/LEAP. I tried to come up with something mode decent (replacement of sphinx.util.docutils.ReferenceRole), but run out of time. With these admittedly ugly fixes, bind does build at least, including the ARM, but that is missing the clickable issues in the version specific notes and being redirected to GitLab. - Add patch bind-fix-build-with-older-sphinx.patch and sed fix in order to build with older distributions. OBS-URL: https://build.opensuse.org/request/show/901768 OBS-URL: https://build.opensuse.org/package/show/network/bind?expand=0&rev=324
This commit is contained in:
parent
712466db64
commit
2d1a8b1c56
108
bind-fix-build-with-older-sphinx.patch
Normal file
108
bind-fix-build-with-older-sphinx.patch
Normal file
@ -0,0 +1,108 @@
|
||||
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.
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 24 15:02:14 UTC 2021 - Hans-Peter Jansen <hpj@urpla.net>
|
||||
|
||||
- Add patch bind-fix-build-with-older-sphinx.patch and sed fix
|
||||
in order to build with older distributions.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 23 06:46:55 UTC 2021 - Josef Möllers <josef.moellers@suse.com>
|
||||
|
||||
|
@ -65,6 +65,7 @@ Source70: bind.conf
|
||||
Source72: named.conf
|
||||
Patch52: named-bootconf.diff
|
||||
Patch56: bind-ldapdump-use-valid-host.patch
|
||||
Patch68: bind-fix-build-with-older-sphinx.patch
|
||||
BuildRequires: libcap-devel
|
||||
BuildRequires: libmysqlclient-devel
|
||||
BuildRequires: libopenssl-devel
|
||||
@ -167,6 +168,13 @@ for file in docu/README* config/{README,named.conf} sysconfig/named-named; do
|
||||
done
|
||||
popd
|
||||
|
||||
%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150300
|
||||
# the Administration Reference Manual doesn't build with Leap/SLES due to an way too old Sphinx package
|
||||
# that is missing sphinx.util.docutils.ReferenceRole.
|
||||
# patch68 disables this extension, and here, we're removing the :gl: tags in the notes
|
||||
sed -i 's|:gl:||g' doc/notes/notes*.rst
|
||||
%endif
|
||||
|
||||
%build
|
||||
autoreconf -fvi
|
||||
export CFLAGS="%{optflags} -fPIE -DNO_VERSION_DATE"
|
||||
|
Loading…
Reference in New Issue
Block a user