SHA256
1
0
forked from pool/bind

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:
Marcus Meissner 2021-06-28 07:10:05 +00:00 committed by Git OBS Bridge
parent 712466db64
commit 2d1a8b1c56
3 changed files with 122 additions and 0 deletions

View 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.

View File

@ -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>

View File

@ -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"