[5 DOCS PATCH] waf: Backport from main build fixes
Gedare Bloom
gedare at rtems.org
Thu Nov 10 04:40:02 UTC 2022
looks fine. i'm not sure where
+ "review": ("Gerrit Code Review",
"https://review.rtems.org/"),
came from, but I see it in before too.
On Wed, Nov 9, 2022 at 9:36 PM <chrisj at rtems.org> wrote:
>
> From: Chris Johns <chrisj at rtems.org>
>
> Closes #4752
> ---
> common/conf.py | 17 ++++++------
> common/latex.py | 7 +++--
> common/rtemsdomain.py | 64 +++++++++++++++++++++++++++++++------------
> common/version.py | 5 +++-
> common/waf.py | 20 ++++++++++----
> 5 files changed, 78 insertions(+), 35 deletions(-)
>
> diff --git a/common/conf.py b/common/conf.py
> index 257bc4e..565e06d 100644
> --- a/common/conf.py
> +++ b/common/conf.py
> @@ -1,4 +1,4 @@
> -import version as rtems_version
> +import datetime
>
> extensions = [
> "sphinx.ext.autodoc",
> @@ -12,6 +12,8 @@ extensions = [
> "rtemsdomain",
> ]
>
> +bibtex_bibfiles = ['../common/refs.bib']
> +
> extlinks = {'release_path': ('https://ftp.rtems.org/pub/rtems/releases', None) }
>
> # Add any paths that contain templates here, relative to this directory.
> @@ -28,21 +30,17 @@ master_doc = 'index'
>
> # General information about the project.
> project = u'RTEMS Documentation Project'
> -copyright = u'1988, 2020 RTEMS Project and contributors'
> +copyright = u'1988, ' + str(datetime.datetime.now().year) + ' RTEMS Project and contributors'
>
> # The version info for the project you're documenting, acts as replacement for
> # |version| and |release|, also used in various other places throughout the
> # built documents.
> #
> # The short X.Y version.
> -version = rtems_version.version()
> +#version = rtems_version.version()
>
> # The full version, including alpha/beta/rc tags.
> -release = rtems_version.string()
> -
> -major = rtems_version.major()
> -minor = rtems_version.minor()
> -revision = rtems_version.revision()
> +#release = rtems_version.string()
>
> # The language for content autogenerated by Sphinx. Refer to documentation
> # for a list of supported languages.
> @@ -75,6 +73,9 @@ exclude_patterns = []
> # The name of the Pygments (syntax highlighting) style to use.
> pygments_style = 'sphinx'
>
> +# http://www.sphinx-doc.org/en/master/usage/configuration.html#confval-numfig
> +numfig = True
> +
> # A list of ignored prefixes for module index sorting.
> #modindex_common_prefix = []
>
> diff --git a/common/latex.py b/common/latex.py
> index a042510..17d3015 100644
> --- a/common/latex.py
> +++ b/common/latex.py
> @@ -3,7 +3,6 @@
> #
>
> import os
> -import platform
> import re
>
> package_test_preamble = ['\\newif\\ifsphinxKeepOldNames \\sphinxKeepOldNamestrue',
> @@ -82,7 +81,11 @@ def tex_test(test):
> def host_name():
> uname = os.uname()
> if uname[0] == 'Linux':
> - distro = platform.dist()
> + try:
> + from distro import linux_distribution
> + except:
> + from platform import linux_distribution
> + distro = linux_distribution()
> name = '%s/%s' % (uname[0], distro[0])
> version = distro[1]
> else:
> diff --git a/common/rtemsdomain.py b/common/rtemsdomain.py
> index 9b092a3..630f1e3 100644
> --- a/common/rtemsdomain.py
> +++ b/common/rtemsdomain.py
> @@ -8,6 +8,8 @@ from sphinx.domains import Domain, ObjType, Index
> from sphinx.util.nodes import make_refnode
> from sphinx.util.docfields import Field, TypedField
>
> +import version as rtems_version
> +
> """
> :r:bsp:`sparc/sis`
>
> @@ -30,28 +32,28 @@ role_name = {
> }
>
> role_url = {
> - "trac": ("Trac", "https://devel.rtems.org"),
> - "devel": ("Developer Site", "https://devel.rtems.org"),
> - "www": ("RTEMS Home", "https://www.rtems.org/"),
> - "buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
> - "builder": ("Builder Site", "https://builder.rtems.org/"),
> - "docs": ("Documentation Site", "https://docs.rtems.org/"),
> - "lists": ("Mailing Lists", "https://lists.rtems.org/"),
> - "git": ("Git Repositories", "https://git.rtems.org/"),
> - "ftp": ("FTP File Server", "https://ftp.rtems.org/"),
> - "review": ("Gerrit Code Review", "https://review.rtems.org/"),
> - "bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
> - "gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
> - "socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
> + "trac": ("Trac", "https://devel.rtems.org"),
> + "devel": ("Developer Site", "https://devel.rtems.org"),
> + "www": ("RTEMS Home", "https://www.rtems.org/"),
> + "buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
> + "builder": ("Builder Site", "https://builder.rtems.org/"),
> + "docs": ("Documentation Site", "https://docs.rtems.org/"),
> + "lists": ("Mailing Lists", "https://lists.rtems.org/"),
> + "git": ("Git Repositories", "https://git.rtems.org/"),
> + "ftp": ("FTP File Server", "https://ftp.rtems.org/"),
> + "review": ("Gerrit Code Review", "https://review.rtems.org/"),
> + "bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
> + "gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
> + "socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
> }
>
>
> role_list = {
> - "announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
> - "bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
> - "devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
> - "build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
> - "users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
> + "announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
> + "bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
> + "devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
> + "build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
> + "users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
> "vc": ("Version Control Mailing List", "https://lists.rtems.org/mailman/listinfo/vc/"),
> }
>
> @@ -119,7 +121,33 @@ class RTEMSDomain(Domain):
> pass # XXX is this needed?
>
>
> +def rtems_replace(app, docname, source):
> + dump = False
> + line = source[0]
> + for key in app.config.replacements:
> + line = line.replace(key, app.config.replacements[key])
> + source[0] = line
> +
> +replacements = {
> +}
>
> def setup(app):
> + app.add_config_value('rtems_major', str(app.config.overrides['rtems_major']), True)
> + app.add_config_value('rtems_minor', str(app.config.overrides['rtems_minor']), True)
> + app.add_config_value('rtems_revision', str(app.config.overrides['rtems_revision']), True)
> + major = str(app.config.overrides['rtems_major'])
> + minor = str(app.config.overrides['rtems_minor'])
> + revision = str(app.config.overrides['rtems_revision'])
> + if revision.isdigit():
> + majminrev = major + '.' + minor + '.' + revision
> + else:
> + majminrev = major + '.' + revision
> + replacements["@rtems-version@"] = str(app.config.overrides['version'])
> + replacements["@rtems-ver-major@"] = major
> + replacements["@rtems-ver-minor@"] = minor
> + replacements["@rtems-ver-revision@"] = revision
> + replacements["@rtems-ver-majminrev@"] = majminrev
> + app.add_config_value('replacements', replacements, True)
> + app.connect('source-read', rtems_replace)
> app.add_domain(RTEMSDomain)
> return {'version': "1.0", 'parallel_read_safe': True}
> diff --git a/common/version.py b/common/version.py
> index 281c880..bfe0e1b 100644
> --- a/common/version.py
> +++ b/common/version.py
> @@ -111,6 +111,9 @@ def _pretty_day(ctx, date):
>
> def get(ctx, rtems_major_version):
> global _version
> + global _major
> + global _minor
> + global _revision
> global _date
> global _released
> version = _version
> @@ -184,7 +187,7 @@ def minor():
> return _minor
>
> def revision():
> - return revision
> + return _revision
>
> def date():
> return _date
> diff --git a/common/waf.py b/common/waf.py
> index 7027eb6..8584f88 100644
> --- a/common/waf.py
> +++ b/common/waf.py
> @@ -181,13 +181,18 @@ def check_sphinx_extension(ctx, extension):
> def run_sphinx(bld):
> rst_node = bld.srcnode.make_node('testbuild/contents.rst')
> rst_node.parent.mkdir()
> - rst_node.write('.. COMMENT test sphinx\n')
> + rst_node.write('.. COMMENT test sphinx' + os.linesep)
> + bib_node = bld.srcnode.make_node('testbuild/refs.bib')
> + bib_node.write(os.linesep)
> + conf_node = bld.srcnode.make_node('testbuild/conf.py')
> + conf_node.write(os.linesep.join(["master_doc='contents'",
> + "bibtex_bibfiles = ['refs.bib']"]))
> bld(rule = bld.kw['rule'], source = rst_node)
>
> ctx.start_msg("Checking for '%s'" % (extension))
> try:
> ctx.run_build(fragment = 'xx',
> - rule = "${BIN_SPHINX_BUILD} -b html -D extensions=%s -C . out" % (extension),
> + rule = "${BIN_SPHINX_BUILD} -b html -D extensions=%s -c . . out" % (extension),
> build_fun = run_sphinx,
> env = ctx.env)
> except ctx.errors.ConfigurationError:
> @@ -266,7 +271,7 @@ def cmd_configure(ctx):
> ctx.fatal('Unsupported latex engine: %s' % (conf.latex_engine))
> ctx.env.BUILD_PDF = 'yes'
>
> - ctx.envBUILD_SINGLEHTML = 'no'
> + ctx.env.BUILD_SINGLEHTML = 'no'
> if ctx.options.singlehtml:
> check_inliner = not ctx.env.BIN_INLINER
> if check_inliner:
> @@ -276,7 +281,7 @@ def cmd_configure(ctx):
> ctx.fatal("Node.js inliner is required install with 'npm install -g inliner' " +
> "(https://github.com/remy/inliner)")
>
> - ctx.envBUILD_PLANTUML = 'no'
> + ctx.env.BUILD_PLANTUML = 'no'
> if ctx.options.plantuml:
> check_plantuml = not ctx.env.BIN_PUML
> if check_plantuml:
> @@ -286,7 +291,7 @@ def cmd_configure(ctx):
> ctx.fatal("Node.js puml is required install with 'npm install -g node-plantuml' " +
> "(https://www.npmjs.com/package/node-plantuml)")
>
> - ctx.envBUILD_DITAA = 'no'
> + ctx.env.BUILD_DITAA = 'no'
> if ctx.options.ditaa:
> #
> # We use DITAA via PlantUML
> @@ -335,12 +340,15 @@ def doc_pdf(ctx, source_dir, conf_dir, sources):
> target = ctx.path.find_or_declare("%s/%s.tex" % (buildtype,
> ctx.path.name))
> )
> + env_latex = ctx.env.derive()
> + env_latex.TEXINPUTS = output_dir + ':'
> ctx(
> features = 'tex',
> cwd = output_dir,
> type = ctx.env.LATEX_CMD,
> source = "%s/%s.tex" % (buildtype, ctx.path.name),
> - prompt = 0
> + prompt = 0,
> + env = env_latex
> )
> ctx.install_files('${PREFIX}',
> '%s/%s.pdf' % (buildtype, ctx.path.name),
> --
> 2.37.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list