Read the Docs build information Build id: 3881876 Project: canonical-kernel-docs Version: latest Commit: 6dd149caf8a934b18ce3800a9ac139103b696aa3 Date: 2026-03-31T01:28:45.954209Z State: finished Success: False [rtd-command-info] start-time: 2026-03-31T01:28:46.755812Z, end-time: 2026-03-31T01:28:47.916091Z, duration: 1, exit-code: 0 git clone --depth 1 git@github.com:canonical/kernel-docs.git . Cloning into '.'... Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. [rtd-command-info] start-time: 2026-03-31T01:28:48.006841Z, end-time: 2026-03-31T01:28:49.778755Z, duration: 1, exit-code: 0 git fetch origin --force --prune --prune-tags --depth 50 Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. From github.com:canonical/kernel-docs * [new tag] v2024.12.17-01.00 -> v2024.12.17-01.00 [rtd-command-info] start-time: 2026-03-31T01:28:50.735414Z, end-time: 2026-03-31T01:28:50.769766Z, duration: 0, exit-code: 0 cat docs/.readthedocs.yaml # .readthedocs.yaml # Read the Docs configuration file # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details # Required version: 2 # Set the version of Python and other tools you might need build: os: ubuntu-22.04 tools: python: "3.11" jobs: post_checkout: - git fetch --unshallow || true # Cancel building pull requests when there aren't changed in the docs directory. # If there are no changes (git diff exits with 0) we force the command to return with 183. # This is a special exit code on Read the Docs that will cancel the build immediately. # https://docs.readthedocs.io/en/stable/build-customization.html#cancel-build-based-on-a-condition - | if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi # Build documentation in the docs/ directory with Sphinx sphinx: builder: dirhtml configuration: docs/conf.py fail_on_warning: true # If using Sphinx, optionally build your docs in additional formats such as PDF formats: - pdf # Optionally declare the Python requirements required to build your docs python: install: - requirements: docs/requirements.txt [rtd-command-info] start-time: 2026-03-31T01:28:50.866879Z, end-time: 2026-03-31T01:28:52.196682Z, duration: 1, exit-code: 0 git fetch --unshallow || true Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. [rtd-command-info] start-time: 2026-03-31T01:28:52.280919Z, end-time: 2026-03-31T01:28:52.318116Z, duration: 0, exit-code: 0 if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- 'docs/' '.readthedocs.yaml'; then exit 183; fi [rtd-command-info] start-time: 2026-03-31T01:28:57.474113Z, end-time: 2026-03-31T01:28:57.527893Z, duration: 0, exit-code: 0 asdf global python 3.11.12 [rtd-command-info] start-time: 2026-03-31T01:28:57.879447Z, end-time: 2026-03-31T01:28:58.458878Z, duration: 0, exit-code: 0 python -mvirtualenv $READTHEDOCS_VIRTUALENV_PATH created virtual environment CPython3.11.12.final.0-64 in 363ms creator CPython3Posix(dest=/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/docs/.local/share/virtualenv) added seed packages: pip==23.1, setuptools==67.6.1, wheel==0.40.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator [rtd-command-info] start-time: 2026-03-31T01:28:58.543840Z, end-time: 2026-03-31T01:29:02.887877Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir pip setuptools Requirement already satisfied: pip in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (23.1) Collecting pip Downloading pip-26.0.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 12.3 MB/s eta 0:00:00 Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (67.6.1) Collecting setuptools Downloading setuptools-82.0.1-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 22.7 MB/s eta 0:00:00 Installing collected packages: setuptools, pip Attempting uninstall: setuptools Found existing installation: setuptools 67.6.1 Uninstalling setuptools-67.6.1: Successfully uninstalled setuptools-67.6.1 Attempting uninstall: pip Found existing installation: pip 23.1 Uninstalling pip-23.1: Successfully uninstalled pip-23.1 Successfully installed pip-26.0.1 setuptools-82.0.1 [rtd-command-info] start-time: 2026-03-31T01:29:02.974510Z, end-time: 2026-03-31T01:29:07.416229Z, duration: 4, exit-code: 0 python -m pip install --upgrade --no-cache-dir sphinx Collecting sphinx Downloading sphinx-9.0.4-py3-none-any.whl.metadata (5.8 kB) Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB) Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB) Collecting Jinja2>=3.1 (from sphinx) Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB) Collecting Pygments>=2.17 (from sphinx) Downloading pygments-2.20.0-py3-none-any.whl.metadata (2.5 kB) Collecting docutils<0.23,>=0.20 (from sphinx) Downloading docutils-0.22.4-py3-none-any.whl.metadata (15 kB) Collecting snowballstemmer>=2.2 (from sphinx) Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB) Collecting babel>=2.13 (from sphinx) Downloading babel-2.18.0-py3-none-any.whl.metadata (2.2 kB) Collecting alabaster>=0.7.14 (from sphinx) Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB) Collecting imagesize>=1.3 (from sphinx) Downloading imagesize-2.0.0-py2.py3-none-any.whl.metadata (1.5 kB) Collecting requests>=2.30.0 (from sphinx) Downloading requests-2.33.1-py3-none-any.whl.metadata (4.8 kB) Collecting roman-numerals>=1.0.0 (from sphinx) Downloading roman_numerals-4.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting packaging>=23.0 (from sphinx) Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB) Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting charset_normalizer<4,>=2 (from requests>=2.30.0->sphinx) Downloading charset_normalizer-3.4.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting idna<4,>=2.5 (from requests>=2.30.0->sphinx) Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB) Collecting urllib3<3,>=1.26 (from requests>=2.30.0->sphinx) Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB) Collecting certifi>=2023.5.7 (from requests>=2.30.0->sphinx) Downloading certifi-2026.2.25-py3-none-any.whl.metadata (2.5 kB) Downloading sphinx-9.0.4-py3-none-any.whl (3.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 73.6 MB/s 0:00:00 Downloading docutils-0.22.4-py3-none-any.whl (633 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 633.2/633.2 kB 760.0 MB/s 0:00:00 Downloading alabaster-1.0.0-py3-none-any.whl (13 kB) Downloading babel-2.18.0-py3-none-any.whl (10.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.2/10.2 MB 231.1 MB/s 0:00:00 Downloading imagesize-2.0.0-py2.py3-none-any.whl (9.4 kB) Downloading jinja2-3.1.6-py3-none-any.whl (134 kB) Downloading markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB) Downloading packaging-26.0-py3-none-any.whl (74 kB) Downloading pygments-2.20.0-py3-none-any.whl (1.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 1.1 GB/s 0:00:00 Downloading requests-2.33.1-py3-none-any.whl (64 kB) Downloading charset_normalizer-3.4.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (204 kB) Downloading idna-3.11-py3-none-any.whl (71 kB) Downloading urllib3-2.6.3-py3-none-any.whl (131 kB) Downloading certifi-2026.2.25-py3-none-any.whl (153 kB) Downloading roman_numerals-4.1.0-py3-none-any.whl (7.7 kB) Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB) Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB) Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB) Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB) Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB) Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB) Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB) Installing collected packages: urllib3, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, snowballstemmer, roman-numerals, Pygments, packaging, MarkupSafe, imagesize, idna, docutils, charset_normalizer, certifi, babel, alabaster, requests, Jinja2, sphinx Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.20.0 alabaster-1.0.0 babel-2.18.0 certifi-2026.2.25 charset_normalizer-3.4.6 docutils-0.22.4 idna-3.11 imagesize-2.0.0 packaging-26.0 requests-2.33.1 roman-numerals-4.1.0 snowballstemmer-3.0.1 sphinx-9.0.4 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 urllib3-2.6.3 [rtd-command-info] start-time: 2026-03-31T01:29:07.498773Z, end-time: 2026-03-31T01:29:15.445426Z, duration: 7, exit-code: 0 python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt Collecting canonical-sphinx>=0.5.1 (from -r docs/requirements.txt (line 2)) Downloading canonical_sphinx-0.6.0-py3-none-any.whl.metadata (5.8 kB) Collecting myst-parser~=4.0 (from -r docs/requirements.txt (line 5)) Downloading myst_parser-4.0.1-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-autobuild (from -r docs/requirements.txt (line 6)) Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl.metadata (8.5 kB) Collecting sphinx-design (from -r docs/requirements.txt (line 7)) Downloading sphinx_design-0.7.0-py3-none-any.whl.metadata (5.5 kB) Collecting sphinx-notfound-page (from -r docs/requirements.txt (line 8)) Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-reredirects (from -r docs/requirements.txt (line 9)) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl.metadata (4.7 kB) Collecting sphinx-tabs (from -r docs/requirements.txt (line 10)) Downloading sphinx_tabs-3.5.0-py3-none-any.whl.metadata (6.6 kB) Collecting sphinxcontrib-jquery (from -r docs/requirements.txt (line 11)) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl.metadata (2.6 kB) Collecting sphinxext-opengraph (from -r docs/requirements.txt (line 12)) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl.metadata (2.7 kB) Collecting sphinx-config-options>=0.1.0 (from -r docs/requirements.txt (line 15)) Downloading sphinx_config_options-0.1.1-py3-none-any.whl.metadata (3.1 kB) Collecting sphinx-contributor-listing>=0.1.0 (from -r docs/requirements.txt (line 16)) Downloading sphinx_contributor_listing-0.1.0-py3-none-any.whl.metadata (2.7 kB) Collecting sphinx-filtered-toctree>=0.1.0 (from -r docs/requirements.txt (line 17)) Downloading sphinx_filtered_toctree-0.1.0-py3-none-any.whl.metadata (1.8 kB) Collecting sphinx-related-links>=0.1.1 (from -r docs/requirements.txt (line 18)) Downloading sphinx_related_links-0.1.2-py3-none-any.whl.metadata (2.5 kB) Collecting sphinx-roles>=0.1.0 (from -r docs/requirements.txt (line 19)) Downloading sphinx_roles-0.1.0-py3-none-any.whl.metadata (1.5 kB) Collecting sphinx-terminal>=1.0.2 (from -r docs/requirements.txt (line 20)) Downloading sphinx_terminal-1.0.3-py3-none-any.whl.metadata (2.9 kB) Collecting sphinx-ubuntu-images>=0.1.0 (from -r docs/requirements.txt (line 21)) Downloading sphinx_ubuntu_images-0.1.0-py3-none-any.whl.metadata (4.5 kB) Collecting sphinx-youtube-links>=0.1.0 (from -r docs/requirements.txt (line 22)) Downloading sphinx_youtube_links-0.1.0-py3-none-any.whl.metadata (1.5 kB) Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from -r docs/requirements.txt (line 25)) (26.0) Collecting sphinx-last-updated-by-git (from -r docs/requirements.txt (line 27)) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl.metadata (7.1 kB) Collecting sphinx-sitemap (from -r docs/requirements.txt (line 28)) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl.metadata (3.4 kB) Collecting rst2html (from -r docs/requirements.txt (line 31)) Downloading rst2html-2020.7.4.tar.gz (1.5 kB) Installing build dependencies: started Installing build dependencies: finished with status 'done' Getting requirements to build wheel: started Getting requirements to build wheel: finished with status 'done' Preparing metadata (pyproject.toml): started Preparing metadata (pyproject.toml): finished with status 'done' Collecting vale (from -r docs/requirements.txt (line 32)) Downloading vale-3.13.0.0-py3-none-any.whl.metadata (3.0 kB) Collecting sphinxcontrib-svg2pdfconverter[CairoSVG] (from -r docs/requirements.txt (line 26)) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl.metadata (3.3 kB) Collecting docutils<0.22,>=0.19 (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB) Requirement already satisfied: jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) (3.1.6) Collecting markdown-it-py~=3.0 (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading markdown_it_py-3.0.0-py3-none-any.whl.metadata (6.9 kB) Collecting mdit-py-plugins>=0.4.1,~=0.4 (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl.metadata (2.8 kB) Collecting pyyaml (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.4 kB) Collecting sphinx<9,>=7 (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading sphinx-8.2.3-py3-none-any.whl.metadata (7.0 kB) Collecting mdurl~=0.1 (from markdown-it-py~=3.0->myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading mdurl-0.1.2-py3-none-any.whl.metadata (1.6 kB) Requirement already satisfied: sphinxcontrib-applehelp>=1.0.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-devhelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-htmlhelp>=2.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.1.0) Requirement already satisfied: sphinxcontrib-jsmath>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (1.0.1) Requirement already satisfied: sphinxcontrib-qthelp>=1.0.6 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: sphinxcontrib-serializinghtml>=1.1.9 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: Pygments>=2.17 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.20.0) Requirement already satisfied: snowballstemmer>=2.2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (3.0.1) Requirement already satisfied: babel>=2.13 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.18.0) Requirement already satisfied: alabaster>=0.7.14 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (1.0.0) Requirement already satisfied: imagesize>=1.3 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.0.0) Requirement already satisfied: requests>=2.30.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.33.1) Collecting roman-numerals-py>=1.0.0 (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading roman_numerals_py-4.1.0-py3-none-any.whl.metadata (561 bytes) Collecting furo (from canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading furo-2025.12.19-py3-none-any.whl.metadata (4.9 kB) Collecting linkify-it-py (from canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading linkify_it_py-2.1.0-py3-none-any.whl.metadata (8.5 kB) Collecting colorama>=0.4.6 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB) Collecting starlette>=0.35 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading starlette-1.0.0-py3-none-any.whl.metadata (6.3 kB) Collecting uvicorn>=0.25 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading uvicorn-0.42.0-py3-none-any.whl.metadata (6.7 kB) Collecting watchfiles>=0.20 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.9 kB) Collecting websockets>=11 (from sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.8 kB) Collecting sphinx<9,>=7 (from myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading sphinx-7.4.7-py3-none-any.whl.metadata (6.1 kB) Collecting alabaster~=0.7.14 (from sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) Downloading alabaster-0.7.16-py3-none-any.whl.metadata (2.9 kB) Collecting GitPython (from sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading gitpython-3.1.46-py3-none-any.whl.metadata (13 kB) Collecting beautifulsoup4 (from sphinx-related-links>=0.1.1->-r docs/requirements.txt (line 18)) Downloading beautifulsoup4-4.14.3-py3-none-any.whl.metadata (3.8 kB) Collecting sphinx-copybutton>=0.5.2 (from sphinx-terminal>=1.0.2->-r docs/requirements.txt (line 20)) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl.metadata (3.2 kB) Collecting cairosvg>=1.0 (from sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cairosvg-2.9.0-py3-none-any.whl.metadata (2.7 kB) Collecting cairocffi (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cairocffi-1.7.1-py3-none-any.whl.metadata (3.3 kB) Collecting cssselect2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cssselect2-0.9.0-py3-none-any.whl.metadata (2.9 kB) Collecting defusedxml (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB) Collecting pillow (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting tinycss2 (from cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading tinycss2-1.5.1-py3-none-any.whl.metadata (3.0 kB) Requirement already satisfied: MarkupSafe>=2.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from jinja2->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (3.0.3) Requirement already satisfied: charset_normalizer<4,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (3.4.6) Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (3.11) Requirement already satisfied: urllib3<3,>=1.26 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2.6.3) Requirement already satisfied: certifi>=2023.5.7 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from requests>=2.30.0->sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (2026.2.25) Collecting anyio<5,>=3.6.2 (from starlette>=0.35->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading anyio-4.13.0-py3-none-any.whl.metadata (4.5 kB) Collecting typing-extensions>=4.10.0 (from starlette>=0.35->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB) Collecting click>=7.0 (from uvicorn>=0.25->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB) Collecting h11>=0.8 (from uvicorn>=0.25->sphinx-autobuild->-r docs/requirements.txt (line 6)) Downloading h11-0.16.0-py3-none-any.whl.metadata (8.3 kB) Collecting soupsieve>=1.6.1 (from beautifulsoup4->sphinx-related-links>=0.1.1->-r docs/requirements.txt (line 18)) Downloading soupsieve-2.8.3-py3-none-any.whl.metadata (4.6 kB) Collecting cffi>=1.1.0 (from cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.6 kB) Collecting pycparser (from cffi>=1.1.0->cairocffi->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading pycparser-3.0-py3-none-any.whl.metadata (8.2 kB) Collecting webencodings (from cssselect2->cairosvg>=1.0->sphinxcontrib-svg2pdfconverter[CairoSVG]->-r docs/requirements.txt (line 26)) Downloading webencodings-0.5.1-py2.py3-none-any.whl.metadata (2.1 kB) Collecting sphinx-basic-ng>=1.0.0.beta2 (from furo->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl.metadata (1.5 kB) Collecting accessible-pygments>=0.0.5 (from furo->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading accessible_pygments-0.0.5-py3-none-any.whl.metadata (10 kB) Collecting gitdb<5,>=4.0.1 (from GitPython->sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading gitdb-4.0.12-py3-none-any.whl.metadata (1.2 kB) Collecting smmap<6,>=3.0.1 (from gitdb<5,>=4.0.1->GitPython->sphinx-contributor-listing>=0.1.0->-r docs/requirements.txt (line 16)) Downloading smmap-5.0.3-py3-none-any.whl.metadata (4.6 kB) Collecting uc-micro-py (from linkify-it-py->canonical-sphinx>=0.5.1->-r docs/requirements.txt (line 2)) Downloading uc_micro_py-2.0.0-py3-none-any.whl.metadata (2.2 kB) Requirement already satisfied: roman-numerals==4.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages (from roman-numerals-py>=1.0.0->sphinx<9,>=7->myst-parser~=4.0->-r docs/requirements.txt (line 5)) (4.1.0) Downloading myst_parser-4.0.1-py3-none-any.whl (84 kB) Downloading docutils-0.21.2-py3-none-any.whl (587 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 587.4/587.4 kB 28.3 MB/s 0:00:00 Downloading markdown_it_py-3.0.0-py3-none-any.whl (87 kB) Downloading mdit_py_plugins-0.5.0-py3-none-any.whl (57 kB) Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB) Downloading canonical_sphinx-0.6.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 47.3 MB/s 0:00:00 Downloading sphinx_autobuild-2025.8.25-py3-none-any.whl (12 kB) Downloading sphinx_design-0.7.0-py3-none-any.whl (2.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 112.1 MB/s 0:00:00 Downloading sphinx_notfound_page-1.1.0-py3-none-any.whl (8.2 kB) Downloading sphinx_reredirects-1.1.0-py3-none-any.whl (6.4 kB) Downloading sphinx_tabs-3.5.0-py3-none-any.whl (9.9 kB) Downloading sphinxcontrib_jquery-4.1-py2.py3-none-any.whl (121 kB) Downloading sphinxext_opengraph-0.13.0-py3-none-any.whl (1.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 926.7 MB/s 0:00:00 Downloading sphinx_config_options-0.1.1-py3-none-any.whl (23 kB) Downloading sphinx-7.4.7-py3-none-any.whl (3.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 205.4 MB/s 0:00:00 Downloading alabaster-0.7.16-py3-none-any.whl (13 kB) Downloading sphinx_contributor_listing-0.1.0-py3-none-any.whl (19 kB) Downloading sphinx_filtered_toctree-0.1.0-py3-none-any.whl (16 kB) Downloading sphinx_related_links-0.1.2-py3-none-any.whl (19 kB) Downloading sphinx_roles-0.1.0-py3-none-any.whl (17 kB) Downloading sphinx_terminal-1.0.3-py3-none-any.whl (20 kB) Downloading sphinx_ubuntu_images-0.1.0-py3-none-any.whl (28 kB) Downloading sphinx_youtube_links-0.1.0-py3-none-any.whl (17 kB) Downloading sphinxcontrib_svg2pdfconverter-2.1.0-py3-none-any.whl (9.3 kB) Downloading sphinx_last_updated_by_git-0.3.8-py3-none-any.whl (8.6 kB) Downloading sphinx_sitemap-2.9.0-py3-none-any.whl (6.2 kB) Downloading vale-3.13.0.0-py3-none-any.whl (5.9 kB) Downloading cairosvg-2.9.0-py3-none-any.whl (45 kB) Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB) Downloading sphinx_copybutton-0.5.2-py3-none-any.whl (13 kB) Downloading starlette-1.0.0-py3-none-any.whl (72 kB) Downloading anyio-4.13.0-py3-none-any.whl (114 kB) Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB) Downloading uvicorn-0.42.0-py3-none-any.whl (68 kB) Downloading click-8.3.1-py3-none-any.whl (108 kB) Downloading h11-0.16.0-py3-none-any.whl (37 kB) Downloading watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (456 kB) Downloading websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (184 kB) Downloading beautifulsoup4-4.14.3-py3-none-any.whl (107 kB) Downloading soupsieve-2.8.3-py3-none-any.whl (37 kB) Downloading cairocffi-1.7.1-py3-none-any.whl (75 kB) Downloading cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (215 kB) Downloading cssselect2-0.9.0-py3-none-any.whl (15 kB) Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Downloading furo-2025.12.19-py3-none-any.whl (339 kB) Downloading accessible_pygments-0.0.5-py3-none-any.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 1.0 GB/s 0:00:00 Downloading sphinx_basic_ng-1.0.0b2-py3-none-any.whl (22 kB) Downloading gitpython-3.1.46-py3-none-any.whl (208 kB) Downloading gitdb-4.0.12-py3-none-any.whl (62 kB) Downloading smmap-5.0.3-py3-none-any.whl (24 kB) Downloading linkify_it_py-2.1.0-py3-none-any.whl (19 kB) Downloading pillow-12.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.0/7.0 MB 434.0 MB/s 0:00:00 Downloading pycparser-3.0-py3-none-any.whl (48 kB) Downloading pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (806 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 806.6/806.6 kB 922.2 MB/s 0:00:00 Downloading tinycss2-1.5.1-py3-none-any.whl (28 kB) Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB) Downloading uc_micro_py-2.0.0-py3-none-any.whl (6.4 kB) Building wheels for collected packages: rst2html Building wheel for rst2html (pyproject.toml): started Building wheel for rst2html (pyproject.toml): finished with status 'done' Created wheel for rst2html: filename=rst2html-2020.7.4-py3-none-any.whl size=1472 sha256=6468fac1112f266af2f20d45824964a8276135f08bc245146bbcbefb3b0a2a99 Stored in directory: /tmp/pip-ephem-wheel-cache-3tt0ifsv/wheels/39/db/0e/0697082eb1b53bdad9f5019b5a590c54e0ec7aac2ec19c6360 Successfully built rst2html Installing collected packages: webencodings, websockets, vale, uc-micro-py, typing-extensions, tinycss2, soupsieve, smmap, pyyaml, pycparser, pillow, mdurl, h11, docutils, defusedxml, colorama, click, alabaster, accessible-pygments, uvicorn, sphinx, rst2html, markdown-it-py, linkify-it-py, gitdb, cssselect2, cffi, beautifulsoup4, anyio, watchfiles, starlette, sphinxext-opengraph, sphinxcontrib-svg2pdfconverter, sphinxcontrib-jquery, sphinx-youtube-links, sphinx-ubuntu-images, sphinx-tabs, sphinx-roles, sphinx-reredirects, sphinx-related-links, sphinx-notfound-page, sphinx-last-updated-by-git, sphinx-filtered-toctree, sphinx-design, sphinx-copybutton, sphinx-config-options, sphinx-basic-ng, mdit-py-plugins, GitPython, cairocffi, sphinx-terminal, sphinx-sitemap, sphinx-contributor-listing, sphinx-autobuild, myst-parser, furo, cairosvg, canonical-sphinx Attempting uninstall: docutils Found existing installation: docutils 0.22.4 Uninstalling docutils-0.22.4: Successfully uninstalled docutils-0.22.4 Attempting uninstall: alabaster Found existing installation: alabaster 1.0.0 Uninstalling alabaster-1.0.0: Successfully uninstalled alabaster-1.0.0 Attempting uninstall: sphinx Found existing installation: Sphinx 9.0.4 Uninstalling Sphinx-9.0.4: Successfully uninstalled Sphinx-9.0.4 Successfully installed GitPython-3.1.46 accessible-pygments-0.0.5 alabaster-0.7.16 anyio-4.13.0 beautifulsoup4-4.14.3 cairocffi-1.7.1 cairosvg-2.9.0 canonical-sphinx-0.6.0 cffi-2.0.0 click-8.3.1 colorama-0.4.6 cssselect2-0.9.0 defusedxml-0.7.1 docutils-0.21.2 furo-2025.12.19 gitdb-4.0.12 h11-0.16.0 linkify-it-py-2.1.0 markdown-it-py-3.0.0 mdit-py-plugins-0.5.0 mdurl-0.1.2 myst-parser-4.0.1 pillow-12.1.1 pycparser-3.0 pyyaml-6.0.3 rst2html-2020.7.4 smmap-5.0.3 soupsieve-2.8.3 sphinx-7.4.7 sphinx-autobuild-2025.8.25 sphinx-basic-ng-1.0.0b2 sphinx-config-options-0.1.1 sphinx-contributor-listing-0.1.0 sphinx-copybutton-0.5.2 sphinx-design-0.7.0 sphinx-filtered-toctree-0.1.0 sphinx-last-updated-by-git-0.3.8 sphinx-notfound-page-1.1.0 sphinx-related-links-0.1.2 sphinx-reredirects-1.1.0 sphinx-roles-0.1.0 sphinx-sitemap-2.9.0 sphinx-tabs-3.5.0 sphinx-terminal-1.0.3 sphinx-ubuntu-images-0.1.0 sphinx-youtube-links-0.1.0 sphinxcontrib-jquery-4.1 sphinxcontrib-svg2pdfconverter-2.1.0 sphinxext-opengraph-0.13.0 starlette-1.0.0 tinycss2-1.5.1 typing-extensions-4.15.0 uc-micro-py-2.0.0 uvicorn-0.42.0 vale-3.13.0.0 watchfiles-1.1.1 webencodings-0.5.1 websockets-16.0 [rtd-command-info] start-time: 2026-03-31T01:29:15.598782Z, end-time: 2026-03-31T01:29:15.635876Z, duration: 0, exit-code: 0 cat docs/conf.py import datetime import ast import os import yaml # Configuration for the Sphinx documentation builder. # All configuration specific to your project should be done in this file. # # If you're new to Sphinx and don't want any advanced or custom features, # just go through the items marked 'TODO'. # # A complete list of built-in Sphinx configuration values: # https://www.sphinx-doc.org/en/master/usage/configuration.html # # Our starter pack uses the custom Canonical Sphinx extension # to keep all documentation based on it consistent and on brand: # https://github.com/canonical/canonical-sphinx ####################### # Project information # ####################### # Project name # # TODO: Update with the official name of your project or product project = "Ubuntu Kernel" author = "Canonical Kernel team" # Sidebar documentation title; best kept reasonably short # # TODO: To include a version number, add it here (hardcoded or automated). # # TODO: To disable the title, set to an empty string. html_title = project + " documentation" # Copyright string; shown at the bottom of the page # # Now, the starter pack uses CC-BY-SA as the license # and the current year as the copyright year. # # TODO: If your docs need another license, specify it instead of 'CC-BY-SA'. # # TODO: If your documentation is a part of the code repository of your project, # it inherits the code license instead; specify it instead of 'CC-BY-SA'. # # NOTE: For static works, it is common to provide the first publication year. # Another option is to provide both the first year of publication # and the current year, especially for docs that frequently change, # e.g. 2022–2023 (note the en-dash). # # A way to check a repo's creation date is to get a classic GitHub token # with 'repo' permissions; see https://github.com/settings/tokens # Next, use 'curl' and 'jq' to extract the date from the API's output: # # curl -H 'Authorization: token ' \ # -H 'Accept: application/vnd.github.v3.raw' \ # https://api.github.com/repos/canonical/ | jq '.created_at' copyright = "%s CC-BY-SA, %s" % (datetime.date.today().year, author) # Documentation website URL # # TODO: Update with the official URL of your docs or leave empty if unsure. # # NOTE: The Open Graph Protocol (OGP) enhances page display in a social graph # and is used by social media platforms; see https://ogp.me/ ogp_site_url = "https://canonical-kernel-docs.readthedocs-hosted.com/" # Preview name of the documentation website # # TODO: To use a different name for the project in previews, update as needed. ogp_site_name = project # Preview image URL # # TODO: To customise the preview image, update as needed. ogp_image = "https://assets.ubuntu.com/v1/253da317-image-document-ubuntudocs.svg" # Product favicon; shown in bookmarks, browser tabs, etc. # TODO: To customise the favicon, uncomment and update as needed. # html_favicon = '.sphinx/_static/favicon.png' # Dictionary of values to pass into the Sphinx context for all pages: # https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-html_context html_context = { # Product page URL; can be different from product docs URL # # TODO: Change to your product website URL, # dropping the 'https://' prefix, e.g. 'ubuntu.com/lxd'. # # TODO: If there's no such website, # remove the {{ product_page }} link from the page header template # (usually .sphinx/_templates/header.html; also, see README.rst). "product_page": "kernel.ubuntu.com", # Product tag image; the orange part of your logo, shown in the page header # # TODO: To add a tag image, uncomment and update as needed. # 'product_tag': '_static/tag.png', # Your Discourse instance URL # # TODO: Change to your Discourse instance URL or leave empty. # # NOTE: If set, adding ':discourse: 123' to an .rst file # will add a link to Discourse topic 123 at the bottom of the page. "discourse": "https://discourse.ubuntu.com/t/ask-us-anything-about-ubuntu-kernels/27664", # Your Mattermost channel URL # # TODO: Change to your Mattermost channel URL or leave empty. "mattermost": "https://chat.canonical.com/canonical/channels/kernel", # Your Matrix channel URL # # TODO: Change to your Matrix channel URL or leave empty. "matrix": "", # Your documentation GitHub repository URL # # TODO: Change to your documentation GitHub repository URL or leave empty. # # NOTE: If set, links for viewing the documentation source files # and creating GitHub issues are added at the bottom of each page. "github_url": "https://github.com/canonical/kernel-docs", # Docs branch in the repo; used in links for viewing the source files # # TODO: To customise the branch, uncomment and update as needed. 'repo_default_branch': 'main', # Docs location in the repo; used in links for viewing the source files # # TODO: To customise the directory, uncomment and update as needed. "repo_folder": "/docs/", # TODO: To enable or disable the Previous / Next buttons at the bottom of pages # Valid options: none, prev, next, both "sequential_nav": "both", # TODO: To enable listing contributors on individual pages, set to True "display_contributors": False, # Required for feedback button 'github_issues': 'enabled', } # Project slug; see https://meta.discourse.org/t/what-is-category-slug/87897 # # TODO: If your documentation is hosted on https://docs.ubuntu.com/, # uncomment and update as needed. # slug = '' ####################### # Sitemap configuration: https://sphinx-sitemap.readthedocs.io/ ####################### # Use RTD canonical URL to ensure duplicate pages have a specific canonical URL html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "/") # sphinx-sitemap uses html_baseurl to generate the full URL for each page: sitemap_url_scheme = '{link}' # Include `lastmod` dates in the sitemap: sitemap_show_lastmod = True # Exclude generated pages from the sitemap: sitemap_excludes = [ '404/', 'genindex/', 'search/', ] # Template and asset locations html_static_path = [".sphinx/_static"] templates_path = [".sphinx/_templates"] ############# # Redirects # ############# # To set up redirects: https://documatt.gitlab.io/sphinx-reredirects/usage.html # For example: 'explanation/old-name.html': '../how-to/prettify.html', # To set up redirects in the Read the Docs project dashboard: # https://docs.readthedocs.io/en/stable/guides/redirects.html # NOTE: If undefined, set to None, or empty, # the sphinx_reredirects extension will be disabled. redirects = { "reference/patch_acceptance_criteria/index.html": "../patch-acceptance-criteria/", "how-to/develop-customize/": "how-to/", "how-to/develop-customise/": "how-to/", "how-to/source-code/": "how-to/", "how-to/develop-customize/build-kernel/": "how-to/develop-customise/build-kernel/", "how-to/develop-customize/build-kernel-snap/": "how-to/develop-customise/build-kernel-snap/", } ########################### # Link checker exceptions # ########################### # A regex list of URLs that are ignored by 'make linkcheck' # # TODO: Remove or adjust the ACME entry after you update the contributing guide linkcheck_ignore = [ "http://127.0.0.1:8000", "https://github.com/canonical/ACME/*" ] # A regex list of URLs where anchors are ignored by 'make linkcheck' linkcheck_anchors_ignore_for_url = [ r"https://github\.com/.*", r"https://ubuntu.com/about/release-cycle", r"https://snapcraft.io/docs/", ] # give linkcheck multiple tries on failure # linkcheck_timeout = 30 linkcheck_retries = 3 ######################## # Configuration extras # ######################## # Custom MyST syntax extensions; see # https://myst-parser.readthedocs.io/en/latest/syntax/optional.html # # NOTE: By default, the following MyST extensions are enabled: # substitution, deflist, linkify # myst_enable_extensions = set() # Custom Sphinx extensions; see # https://www.sphinx-doc.org/en/master/usage/extensions/index.html # NOTE: The canonical_sphinx extension is required for the starter pack. # It automatically enables the following extensions: # - custom-rst-roles # - myst_parser # - notfound.extension # - related-links # - sphinx_copybutton # - sphinx_design # - sphinx_reredirects # - sphinx_tabs.tabs # - sphinxcontrib.jquery # - sphinxext.opengraph # - terminal-output # - youtube-links extensions = [ "canonical_sphinx", "notfound.extension", "sphinx_design", "sphinx_reredirects", "sphinx_tabs.tabs", "sphinxcontrib.jquery", "sphinxext.opengraph", "sphinx_config_options", "sphinx_contributor_listing", "sphinx_filtered_toctree", "sphinx_related_links", "sphinx_roles", "sphinx_terminal", "sphinx_ubuntu_images", "sphinx_youtube_links", "sphinxcontrib.cairosvgconverter", "sphinx_last_updated_by_git", "sphinx.ext.intersphinx", "sphinx_sitemap", ] # Excludes files or directories from processing #exclude_patterns = [""] # Adds custom CSS files, located under 'html_static_path' html_css_files = [ "cookie-banner.css", ] # Adds custom JavaScript files, located under 'html_static_path' html_js_files = [ "bundle.js", ] # Specifies a reST snippet to be appended to each .rst file rst_epilog = """ .. include:: /reuse/links.txt """ # Feedback button at the top; enabled by default # # TODO: To disable the button, uncomment this. # disable_feedback_button = True # Your manpage URL # # TODO: To enable manpage links, uncomment and update as needed. # # NOTE: If set, adding ':manpage:' to an .rst file # adds a link to the corresponding man section at the bottom of the page. manpages_url = ( "https://manpages.ubuntu.com/manpages/resolute/en/" + "man{section}/{page}.{section}.html" ) # Specifies a reST snippet to be prepended to each .rst file # This defines a :center: role that centers table cell content. # This defines a :h2: role that styles content for use with PDF generation. rst_prolog = """ .. role:: center :class: align-center .. role:: h2 :class: hclass2 .. role:: woke-ignore :class: woke-ignore .. role:: vale-ignore :class: vale-ignore """ # Workaround for https://github.com/canonical/canonical-sphinx/issues/34 if "discourse_prefix" not in html_context and "discourse" in html_context: html_context["discourse_prefix"] = html_context["discourse"] + "/t/" [rtd-command-info] start-time: 2026-03-31T01:29:15.732629Z, end-time: 2026-03-31T01:29:17.705069Z, duration: 1, exit-code: 0 python -m sphinx -T -W --keep-going -j auto -b dirhtml -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/html Running Sphinx v7.4.7 loading translations [en]... done sphinx_design found. sphinx_design is now configured. sphinx_tabs.tabs found. sphinx_tabs.tabs is now configured. sphinx_reredirects found. sphinx_reredirects is now configured. canonical.youtube-links not found. canonical.youtube-links will not be configured. canonical.related-links not found. canonical.related-links will not be configured. canonical.custom-rst-roles not found. canonical.custom-rst-roles will not be configured. canonical.terminal-output not found. canonical.terminal-output will not be configured. canonical.contributor-listing not found. canonical.contributor-listing will not be configured. sphinx_copybutton found. sphinx_copybutton is now configured. sphinxext.opengraph found. sphinxext.opengraph is now configured. sphinxcontrib.jquery found. sphinxcontrib.jquery is now configured. notfound.extension found. notfound.extension is now configured. sphinxcontrib.cairosvgconverter found. sphinxcontrib.cairosvgconverter is now configured. sphinx_last_updated_by_git found. sphinx_last_updated_by_git is now configured. matplotlib is not installed, social cards will not be generated making output directory... done myst v4.0.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'linkify', 'deflist', 'substitution'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) building [mo]: targets for 0 po files that are out of date writing output... building [dirhtml]: targets for 23 source files that are out of date updating environment: [new config] 23 added, 0 changed, 0 removed reading sources... [ 20%] explanation/index .. how-to/contribute reading sources... [ 40%] how-to/develop-customise/build-kernel .. how-to/source-code/obtain-kernel-source-git reading sources... [ 60%] how-to/source-code/send-patches .. reference/glossary reading sources... [ 80%] reference/hwe-kernels .. reference/patch-acceptance-criteria reading sources... [100%] reference/snap-lifecycle .. reference/ubuntu-kernels getting Git timestamps for source files... [ 14%] how-to/develop-customise getting Git timestamps for source files... [ 29%] how-to getting Git timestamps for source files... [ 43%] how-to/source-code getting Git timestamps for source files... [ 57%] reference getting Git timestamps for source files... [ 71%] how-to/testing-verification getting Git timestamps for source files... [ 86%] . getting Git timestamps for source files... [100%] explanation getting Git timestamps for dependencies... [ 50%] reuse getting Git timestamps for dependencies... [100%] _images looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done copying assets: done writing output... [ 25%] explanation/post-release-updates .. how-to/index writing output... [ 50%] how-to/source-code/enable-source-repositories .. reference/glossary writing output... [ 75%] reference/hwe-kernels .. reference/stable-patch-format writing output... [100%] reference/ubuntu-kernels generating indices... genindex done Creating redirect 'reference/patch_acceptance_criteria/index.html' to '../patch-acceptance-criteria/'. Creating redirect 'how-to/develop-customize/index.html' to 'how-to/'. Creating redirect 'how-to/develop-customise/index.html' to 'how-to/'. Creating redirect 'how-to/source-code/index.html' to 'how-to/'. Creating redirect 'how-to/develop-customize/build-kernel/index.html' to 'how-to/develop-customise/build-kernel/'. Creating redirect 'how-to/develop-customize/build-kernel-snap/index.html' to 'how-to/develop-customise/build-kernel-snap/'. writing additional pages... search done copying images... [ 50%] _images/exp-kernel-sru-lifecycle-stages.svg copying images... [100%] _images/ref-hwe-kernel-release-cycle-noble.svg dumping search index in English (code: en)... done dumping object inventory... done sphinx-sitemap: sitemap.xml was generated for URL https://canonical-kernel-docs.readthedocs-hosted.com/latest/ in /home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/checkouts/latest/_readthedocs/html/sitemap.xml build succeeded. The HTML pages are in ../_readthedocs/html. [rtd-command-info] start-time: 2026-03-31T01:29:17.788179Z, end-time: 2026-03-31T01:29:18.991588Z, duration: 1, exit-code: 2 python -m sphinx -T -b latex -d _build/doctrees -D language=en . $READTHEDOCS_OUTPUT/pdf Running Sphinx v7.4.7 loading translations [en]... done sphinx_design found. sphinx_design is now configured. sphinx_tabs.tabs found. sphinx_tabs.tabs is now configured. sphinx_reredirects found. sphinx_reredirects is now configured. canonical.youtube-links not found. canonical.youtube-links will not be configured. canonical.related-links not found. canonical.related-links will not be configured. canonical.custom-rst-roles not found. canonical.custom-rst-roles will not be configured. canonical.terminal-output not found. canonical.terminal-output will not be configured. canonical.contributor-listing not found. canonical.contributor-listing will not be configured. sphinx_copybutton found. sphinx_copybutton is now configured. sphinxext.opengraph found. sphinxext.opengraph is now configured. sphinxcontrib.jquery found. sphinxcontrib.jquery is now configured. notfound.extension found. notfound.extension is now configured. sphinxcontrib.cairosvgconverter found. sphinxcontrib.cairosvgconverter is now configured. sphinx_last_updated_by_git found. sphinx_last_updated_by_git is now configured. matplotlib is not installed, social cards will not be generated making output directory... done loading pickled environment... done myst v4.0.1: MdParserConfig(commonmark_only=False, gfm_only=False, enable_extensions={'deflist', 'substitution', 'linkify'}, disable_syntax=[], all_links_external=False, links_external_new_tab=False, url_schemes=('http', 'https', 'mailto', 'ftp'), ref_domains=None, fence_as_directive=set(), number_code_blocks=[], title_to_header=False, heading_anchors=0, heading_slug_func=None, html_meta={}, footnote_sort=True, footnote_transition=True, words_per_minute=200, substitutions={}, linkify_fuzzy_links=True, dmath_allow_labels=True, dmath_allow_space=True, dmath_allow_digits=True, dmath_double_inline=False, update_mathjax=True, mathjax_classes='tex2jax_process|mathjax_process|math|output_area', enable_checkboxes=False, suppress_warnings=[], highlight_code_blocks=True) building [mo]: targets for 0 po files that are out of date writing output... building [latex]: all documents updating environment: 0 added, 0 changed, 0 removed reading sources... getting Git timestamps for source files... getting Git timestamps for dependencies... looking for now-outdated files... none found copying TeX support files... copying TeX support files... done processing ubuntukernel.tex... index how-to/index how-to/source-code/enable-source-repositories how-to/source-code/obtain-kernel-source-git how-to/source-code/send-patches how-to/develop-customise/build-kernel how-to/develop-customise/build-kernel-snap how-to/testing-verification/test-kernel-in-proposed how-to/contribute reference/index reference/stable-patch-format reference/patch-acceptance-criteria reference/ubuntu-kernels reference/hwe-kernels reference/oem-kernels reference/snap-lifecycle reference/kernel-upload-rights reference/dkms-upload-rights reference/glossary explanation/index explanation/post-release-updates explanation/stable-release-updates explanation/ubuntu-linux-kernel-sources resolving references... failed sphinx-sitemap: No pages generated for sitemap.xml Traceback (most recent call last): File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/cmd/build.py", line 337, in build_main app.build(args.force_all, args.filenames) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/application.py", line 378, in build self.builder.build_update() File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 294, in build_update self.build(['__all__'], to_build) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/builders/__init__.py", line 367, in build self.write(docnames, list(updated_docnames), method) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/builders/latex/__init__.py", line 304, in write doctree = self.assemble_doctree( ^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/builders/latex/__init__.py", line 370, in assemble_doctree self.env.resolve_references(largetree, indexfile, self) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/environment/__init__.py", line 699, in resolve_references self.apply_post_transforms(doctree, fromdocname) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/environment/__init__.py", line 711, in apply_post_transforms transformer.apply_transforms() File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/transforms/__init__.py", line 93, in apply_transforms super().apply_transforms() # type: ignore[misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/docutils/transforms/__init__.py", line 182, in apply_transforms transform.apply(**kwargs) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/transforms/post_transforms/images.py", line 34, in apply self.handle(node) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinx/transforms/post_transforms/images.py", line 254, in handle if self.convert(abs_srcpath, destpath): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/sphinxcontrib/cairosvgconverter/cairosvgconverter.py", line 48, in convert cairosvg.svg2pdf(file_obj=open(_from, 'rb'), write_to=_to) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/__init__.py", line 66, in svg2pdf return surface.PDFSurface.convert( ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/surface.py", line 137, in convert instance = cls( ^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/surface.py", line 230, in __init__ self.draw(tree) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/surface.py", line 477, in draw self.draw(child) File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/surface.py", line 447, in draw *self.map_color(paint_color, fill_opacity)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/surface.py", line 283, in map_color rgba = color(string, opacity) ^^^^^^^^^^^^^^^^^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/colors.py", line 227, in color plain_color = tuple( ^^^^^^ File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/colors.py", line 228, in int(value, 16) / 255 for value in ( ^^^^^^^^^^^^^^ ValueError: invalid literal for int() with base 16: 'ig' Exception occurred: File "/home/docs/checkouts/readthedocs.org/user_builds/canonical-kernel-docs/envs/latest/lib/python3.11/site-packages/cairosvg/colors.py", line 228, in int(value, 16) / 255 for value in ( ^^^^^^^^^^^^^^ ValueError: invalid literal for int() with base 16: 'ig' The full traceback has been saved in /tmp/sphinx-err-0azd91xa.log, if you want to report the issue to the developers. Please also report this if it was a user error, so that a better error message can be provided next time. A bug report can be filed in the tracker at . Thanks!