mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 14:07:59 +00:00
Set version and release variables in conf.py
Some Sphinx variables used in the ARM are only set in Makefile.docs. This works fine when building the ARM using "make", but does not work with Read the Docs, which only looks at conf.py files. Since Read the Docs does not run ./configure, renaming conf.py to conf.py.in and using Autoconf output variables is not a feasible solution. Instead, extend doc/arm/conf.py with some Python code which processes configure.ac using regular expressions and sets the relevant Sphinx variables accordingly. As this solution also works fine when building the ARM using "make", drop the relevant -D options from the list of sphinx-build options used for building the ARM in Makefile.docs. Note that the man_SPHINXOPTS counterparts of the removed -D switches are left intact because doc/man/conf.py is a separate Sphinx project which is only processed using "make" and duplicating the Python code added to doc/arm/conf.py by this commit would be inelegant.
This commit is contained in:
parent
3addc36533
commit
38d251e11b
@ -17,9 +17,7 @@ common_SPHINXOPTS = \
|
||||
|
||||
ALLSPHINXOPTS = \
|
||||
$(common_SPHINXOPTS) \
|
||||
-D version="$(PACKAGE_VERSION)" \
|
||||
-D today="$(RELEASE_DATE)" \
|
||||
-D release="$(PACKAGE_VERSION)" \
|
||||
$(SPHINXOPTS) \
|
||||
$(srcdir)
|
||||
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
# flake8: noqa: E501
|
||||
|
||||
import re
|
||||
|
||||
from typing import List, Tuple
|
||||
|
||||
from docutils import nodes
|
||||
@ -105,6 +107,21 @@ project = 'BIND 9'
|
||||
copyright = '2021, Internet Systems Consortium'
|
||||
author = 'Internet Systems Consortium'
|
||||
|
||||
m4_vars = {}
|
||||
with open('../../configure.ac', encoding='utf-8') as configure_ac:
|
||||
for line in configure_ac:
|
||||
match = re.match(r'm4_define\(\[(?P<key>bind_VERSION_[A-Z]+)\], (?P<val>[^)]*)\)dnl', line)
|
||||
if match:
|
||||
m4_vars[match.group('key')] = match.group('val')
|
||||
|
||||
version = '%s.%s.%s%s' % (
|
||||
m4_vars['bind_VERSION_MAJOR'],
|
||||
m4_vars['bind_VERSION_MINOR'],
|
||||
m4_vars['bind_VERSION_PATCH'],
|
||||
m4_vars['bind_VERSION_EXTRA'],
|
||||
)
|
||||
release = version
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
|
Loading…
x
Reference in New Issue
Block a user