2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-23 10:39:16 +00:00
bind/doc/man/conf.py
Aydın Mercan 5cd6c173ff
replace the build system with meson
Meson is a modern build system that has seen a rise in adoption and some
version of it is available in almost every platform supported.

Compared to automake, meson has the following advantages:

* Meson provides a significant boost to the build and configuration time
  by better exploiting parallelism.

* Meson is subjectively considered to be better in readability.

These merits alone justify experimenting with meson as a way of
improving development time and ergonomics. However, there are some
compromises to ensure the transition goes relatively smooth:

* The system tests currently rely on various files within the source
  directory. Changing this requirement is a non-trivial task that can't
  be currently justified. Currently the last compiled build directory
  writes into the source tree which is in turn used by pytest.

* The minimum version supported has been fixed at 0.61. Increasing this
  value will require choosing a baseline of distributions that can
  package with meson. On the contrary, there will likely be an attempt
  to decrease this value to ensure almost universal support for building
  BIND 9 with meson.
2025-06-11 10:30:12 +03:00

219 lines
6.5 KiB
Python

############################################################################
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
############################################################################
import sys
from pathlib import Path
#
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.append(str(Path(__file__).resolve().parent.parent / "ext"))
sys.path.append(str(Path(__file__).resolve().parent.parent / "misc"))
# -- Project information -----------------------------------------------------
project = "BIND 9"
# pylint: disable=wrong-import-position
import datetime
year = datetime.datetime.now().year
# pylint: disable=redefined-builtin
copyright = "%d, Internet Systems Consortium" % year
author = "Internet Systems Consortium"
# -- General configuration ---------------------------------------------------
man_make_section_directory = True
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ["configblock"]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["../arm/_templates"]
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = [
"_build",
"Thumbs.db",
".DS_Store",
]
# The master toctree document.
master_doc = "index"
# pylint: disable=line-too-long
man_pages = [
(
"arpaname",
"arpaname",
"translate IP addresses to the corresponding ARPA names",
author,
1,
),
("ddns-confgen", "ddns-confgen", "ddns key generation tool", author, 8),
("delv", "delv", "DNS lookup and validation utility", author, 1),
("dig", "dig", "DNS lookup utility", author, 1),
(
"dnssec-cds",
"dnssec-cds",
"change DS records for a child zone based on CDS/CDNSKEY",
author,
1,
),
("dnssec-dsfromkey", "dnssec-dsfromkey", "DNSSEC DS RR generation tool", author, 1),
(
"dnssec-importkey",
"dnssec-importkey",
"import DNSKEY records from external systems so they can be managed",
author,
1,
),
(
"dnssec-keyfromlabel",
"dnssec-keyfromlabel",
"DNSSEC key generation tool",
author,
1,
),
("dnssec-keygen", "dnssec-keygen", "DNSSEC key generation tool", author, 1),
(
"dnssec-ksr",
"dnssec-ksr",
"create signed key response (SKR) files for offline KSK setups",
author,
1,
),
(
"dnssec-revoke",
"dnssec-revoke",
"set the REVOKED bit on a DNSSEC key",
author,
1,
),
(
"dnssec-settime",
"dnssec-settime",
"set the key timing metadata for a DNSSEC key",
author,
1,
),
("dnssec-signzone", "dnssec-signzone", "DNSSEC zone signing tool", author, 1),
("dnssec-verify", "dnssec-verify", "DNSSEC zone verification tool", author, 1),
(
"dnstap-read",
"dnstap-read",
"print dnstap data in human-readable form",
author,
1,
),
(
"filter-aaaa",
"filter-aaaa",
"filter AAAA in DNS responses when A is present",
author,
8,
),
(
"filter-a",
"filter-a",
"filter A in DNS responses when AAAA is present",
author,
8,
),
("host", "host", "DNS lookup utility", author, 1),
("mdig", "mdig", "DNS pipelined lookup utility", author, 1),
(
"named-checkconf",
"named-checkconf",
"named configuration file syntax checking tool",
author,
1,
),
(
"named-checkzone",
"named-checkzone",
"zone file validity checking or converting tool",
author,
1,
),
(
"named-compilezone",
"named-compilezone",
"zone file validity checking or converting tool",
author,
1,
),
(
"named-journalprint",
"named-journalprint",
"print zone journal in human-readable form",
author,
1,
),
(
"named-nzd2nzf",
"named-nzd2nzf",
"convert an NZD database to NZF text format",
author,
1,
),
(
"named-rrchecker",
"named-rrchecker",
"syntax checker for individual DNS resource records",
author,
1,
),
("named.conf", "named.conf", "configuration file for **named**", author, 5),
("named", "named", "Internet domain name server", author, 8),
("nsec3hash", "nsec3hash", "generate NSEC3 hash", author, 1),
("nslookup", "nslookup", "query Internet name servers interactively", author, 1),
("nsupdate", "nsupdate", "dynamic DNS update utility", author, 1),
("rndc-confgen", "rndc-confgen", "rndc key generation tool", author, 8),
("rndc.conf", "rndc.conf", "rndc configuration file", author, 5),
("rndc", "rndc", "name server control utility", author, 8),
("tsig-keygen", "tsig-keygen", "TSIG key generation tool", author, 8),
]
#
# The rst_epilog will be completely overwritten from meson
# the definition here is provided for when manpages are generated
# from built-in dist templates inside meson.
#
rst_epilog = """
.. |rndc_conf| replace:: ``@SYSCONFDIR@/rndc.conf``
.. |rndc_key| replace:: ``@SYSCONFDIR@/rndc.key``
.. |named_conf| replace:: ``@SYSCONFDIR@/named.conf``
.. |named_pid| replace:: ``@RUNSTATEDIR@/named.pid``
.. |session_key| replace:: ``@RUNSTATEDIR@/session.key``
"""
def setup(app):
app.add_crossref_type("iscman", "iscman", "pair: %s; manual page")