From 2fdd4577989e259874cf49952d96ab02d3c5b690 Mon Sep 17 00:00:00 2001 From: Jack Lloyd Date: Tue, 19 Sep 2017 19:38:46 -0400 Subject: Load botan_version.py as a file instead of as module import Really no reason for this to be arbitrary code --- src/build-data/sphinx/conf.py | 214 -------------------------- src/build-data/sphinx/templates/layout.html | 9 -- src/configs/sphinx/conf.py | 226 ++++++++++++++++++++++++++++ src/configs/sphinx/templates/layout.html | 9 ++ 4 files changed, 235 insertions(+), 223 deletions(-) delete mode 100644 src/build-data/sphinx/conf.py delete mode 100644 src/build-data/sphinx/templates/layout.html create mode 100644 src/configs/sphinx/conf.py create mode 100644 src/configs/sphinx/templates/layout.html (limited to 'src') diff --git a/src/build-data/sphinx/conf.py b/src/build-data/sphinx/conf.py deleted file mode 100644 index 91cfd3bc9..000000000 --- a/src/build-data/sphinx/conf.py +++ /dev/null @@ -1,214 +0,0 @@ -# Sphinx configuration file - -import sys, os - -# Avoid useless botan_version.pyc (Python 2.6 or higher) -if 'dont_write_bytecode' in sys.__dict__: - sys.dont_write_bytecode = True - -sys.path.insert(0, os.path.join(os.pardir, os.pardir, os.pardir)) - -import sphinx -import botan_version - -def check_for_tag(tag): - # Nasty hack :( - try: - opt_t = sys.argv.index('-t') - opt_tag = sys.argv.index(tag) - return opt_t + 1 == opt_tag - except ValueError: - return False - -is_website_build = check_for_tag('website') - -needs_sphinx = '1.1' - -extensions = ['sphinx.ext.extlinks'] - -templates_path = ['templates'] - -files_dir = 'https://botan.randombit.net/releases' - -extlinks = { - 'wikipedia': ('https://en.wikipedia.org/wiki/%s', ''), - 'botan-devel': ('https://lists.randombit.net/pipermail/botan-devel/%s.html', None), - - 'cve': ('https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-%s', 'CVE-'), - - 'tgz': (files_dir + '/Botan-%s.tgz', 'tar/gz for '), - 'tgz_sig': (files_dir + '/Botan-%s.tgz.asc', 'tar/gz sig '), - - 'installer_x86_32': (files_dir + '/win32/botan-%s-x86_32.exe', 'x86-32 '), - 'installer_x86_64': (files_dir + '/win32/botan-%s-x86_64.exe', 'x86-64 '), - - 'installer_sig_x86_32': (files_dir + '/win32/botan-%s-x86_32.exe.asc', None), - 'installer_sig_x86_64': (files_dir + '/win32/botan-%s-x86_64.exe.asc', None), -} - -source_suffix = '.rst' - -source_encoding = 'utf-8-sig' - -master_doc = 'contents' - -project = u'botan' -copyright = u'2000-2017, The Botan Authors' - -version = '%d.%d' % (botan_version.release_major, botan_version.release_minor) - -release = '%d.%d.%d' % (botan_version.release_major, - botan_version.release_minor, - botan_version.release_patch) - -#today = '' -today_fmt = '%Y-%m-%d' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -add_function_parentheses = False - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -highlight_language = 'cpp' - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. - -try: - # On Arch this is python-sphinx_rtd_theme - import sphinx_rtd_theme - html_theme = "sphinx_rtd_theme" - html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] -except ImportError as e: - html_theme = 'agogo' - html_theme_path = [] - print("Ignoring ImportError and using old theme") - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -html_title = 'Botan' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = [] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -html_last_updated_fmt = '%Y-%m-%d' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -html_show_copyright = False - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -if is_website_build: - html_use_opensearch = 'https://botan.randombit.net/' -else: - html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'botandoc' - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('contents', 'botan.tex', u'Botan Reference Manual', - u'Jack Lloyd \\and Daniel Neus \\and Ren\u00e9 Korthaus \\and Juraj Somorovsky \\and Tobias Niemann', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -latex_show_pagerefs = False - -# If true, show URL addresses after external links. -latex_show_urls = 'inline' - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -latex_domain_indices = False - diff --git a/src/build-data/sphinx/templates/layout.html b/src/build-data/sphinx/templates/layout.html deleted file mode 100644 index c907c7597..000000000 --- a/src/build-data/sphinx/templates/layout.html +++ /dev/null @@ -1,9 +0,0 @@ -{% extends "!layout.html" %} - -{% block header %} -
-
-

{{ shorttitle|e }}

-
-
-{% endblock %} diff --git a/src/configs/sphinx/conf.py b/src/configs/sphinx/conf.py new file mode 100644 index 000000000..7d968f21b --- /dev/null +++ b/src/configs/sphinx/conf.py @@ -0,0 +1,226 @@ +# Sphinx configuration file + +import sys +import ast +import re + +#import sphinx + +def check_for_tag(tag): + # Nasty hack :( + try: + opt_t = sys.argv.index('-t') + opt_tag = sys.argv.index(tag) + return opt_t + 1 == opt_tag + except ValueError: + return False + + +def parse_version_file(version_path): + version_file = open(version_path) + key_and_val = re.compile(r"([a-z_]+) = ([a-zA-Z0-9\']+)") + + results = {} + for line in version_file.readlines(): + if not line or line[0] == '#': + continue + match = key_and_val.match(line) + if match: + results[match.group(1)] = ast.literal_eval(match.group(2)) + return results + +version_info = parse_version_file('../../../botan_version.py') + +version_major = version_info['release_major'] +version_minor = version_info['release_minor'] +version_patch = version_info['release_patch'] + +is_website_build = check_for_tag('website') + +needs_sphinx = '1.1' + +extensions = ['sphinx.ext.extlinks'] + +templates_path = ['templates'] + +files_dir = 'https://botan.randombit.net/releases' + +extlinks = { + 'wikipedia': ('https://en.wikipedia.org/wiki/%s', ''), + 'botan-devel': ('https://lists.randombit.net/pipermail/botan-devel/%s.html', None), + + 'cve': ('https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-%s', 'CVE-'), + + 'tgz': (files_dir + '/Botan-%s.tgz', 'tar/gz for '), + 'tgz_sig': (files_dir + '/Botan-%s.tgz.asc', 'tar/gz sig '), + + 'installer_x86_32': (files_dir + '/win32/botan-%s-x86_32.exe', 'x86-32 '), + 'installer_x86_64': (files_dir + '/win32/botan-%s-x86_64.exe', 'x86-64 '), + + 'installer_sig_x86_32': (files_dir + '/win32/botan-%s-x86_32.exe.asc', None), + 'installer_sig_x86_64': (files_dir + '/win32/botan-%s-x86_64.exe.asc', None), +} + +source_suffix = '.rst' + +source_encoding = 'utf-8-sig' + +master_doc = 'contents' + +project = u'botan' +copyright = u'2000-2017, The Botan Authors' + +version = '%d.%d' % (version_major, version_minor) +release = '%d.%d.%d' % (version_major, version_minor, version_patch) + +#today = '' +today_fmt = '%Y-%m-%d' + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +exclude_patterns = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = False + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +highlight_language = 'cpp' + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. + +try: + # On Arch this is python-sphinx_rtd_theme + import sphinx_rtd_theme + html_theme = "sphinx_rtd_theme" + html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +except ImportError as e: + html_theme = 'agogo' + html_theme_path = [] + print("Ignoring ImportError and using old theme") + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +html_title = 'Botan' + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = [] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%Y-%m-%d' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_domain_indices = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. +html_show_sphinx = False + +# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. +html_show_copyright = False + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +if is_website_build: + html_use_opensearch = 'https://botan.randombit.net/' +else: + html_use_opensearch = '' + +# This is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = None + +# Output file base name for HTML help builder. +htmlhelp_basename = 'botandoc' + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). + +authors = u'Jack Lloyd \\and Daniel Neus \\and Ren\u00e9 Korthaus \\and Juraj Somorovsky \\and Tobias Niemann' +latex_documents = [ + ('contents', 'botan.tex', u'Botan Reference Manual', authors, 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# If true, show page references after internal links. +latex_show_pagerefs = False + +# If true, show URL addresses after external links. +latex_show_urls = 'inline' + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +latex_domain_indices = False diff --git a/src/configs/sphinx/templates/layout.html b/src/configs/sphinx/templates/layout.html new file mode 100644 index 000000000..c907c7597 --- /dev/null +++ b/src/configs/sphinx/templates/layout.html @@ -0,0 +1,9 @@ +{% extends "!layout.html" %} + +{% block header %} +
+
+

{{ shorttitle|e }}

+
+
+{% endblock %} -- cgit v1.2.3