docs: add new configuration for generating docs using sphinx (MR 2266)

This commit is contained in:
Robert Eckelmann 2024-05-08 14:40:12 -07:00 committed by Newbyte
parent 044d3b5a6a
commit 974b76c00a
No known key found for this signature in database
GPG Key ID: 8A700086A9FE41FD
19 changed files with 1058 additions and 0 deletions

9
docs/api/modules.rst Normal file
View File

@ -0,0 +1,9 @@
pmboostrap code documentation
=============================
.. note:: This is the internal API, not a public one.
.. toctree::
:maxdepth: 4
pmb

69
docs/api/pmb.aportgen.rst Normal file
View File

@ -0,0 +1,69 @@
pmb.aportgen package
====================
Submodules
----------
pmb.aportgen.busybox\_static module
-----------------------------------
.. automodule:: pmb.aportgen.busybox_static
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.core module
------------------------
.. automodule:: pmb.aportgen.core
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.device module
--------------------------
.. automodule:: pmb.aportgen.device
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.gcc module
-----------------------
.. automodule:: pmb.aportgen.gcc
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.grub\_efi module
-----------------------------
.. automodule:: pmb.aportgen.grub_efi
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.linux module
-------------------------
.. automodule:: pmb.aportgen.linux
:members:
:undoc-members:
:show-inheritance:
pmb.aportgen.musl module
------------------------
.. automodule:: pmb.aportgen.musl
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.aportgen
:members:
:undoc-members:
:show-inheritance:

69
docs/api/pmb.build.rst Normal file
View File

@ -0,0 +1,69 @@
pmb.build package
=================
Submodules
----------
pmb.build.autodetect module
---------------------------
.. automodule:: pmb.build.autodetect
:members:
:undoc-members:
:show-inheritance:
pmb.build.checksum module
-------------------------
.. automodule:: pmb.build.checksum
:members:
:undoc-members:
:show-inheritance:
pmb.build.envkernel module
--------------------------
.. automodule:: pmb.build.envkernel
:members:
:undoc-members:
:show-inheritance:
pmb.build.init module
---------------------
.. automodule:: pmb.build.init
:members:
:undoc-members:
:show-inheritance:
pmb.build.kconfig module
------------------------
.. automodule:: pmb.build.kconfig
:members:
:undoc-members:
:show-inheritance:
pmb.build.newapkbuild module
----------------------------
.. automodule:: pmb.build.newapkbuild
:members:
:undoc-members:
:show-inheritance:
pmb.build.other module
----------------------
.. automodule:: pmb.build.other
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.build
:members:
:undoc-members:
:show-inheritance:

109
docs/api/pmb.chroot.rst Normal file
View File

@ -0,0 +1,109 @@
pmb.chroot package
==================
Submodules
----------
pmb.chroot.apk module
---------------------
.. automodule:: pmb.chroot.apk
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.apk\_static module
-----------------------------
.. automodule:: pmb.chroot.apk_static
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.binfmt module
------------------------
.. automodule:: pmb.chroot.binfmt
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.init module
----------------------
.. automodule:: pmb.chroot.init
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.initfs module
------------------------
.. automodule:: pmb.chroot.initfs
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.initfs\_hooks module
-------------------------------
.. automodule:: pmb.chroot.initfs_hooks
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.mount module
-----------------------
.. automodule:: pmb.chroot.mount
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.other module
-----------------------
.. automodule:: pmb.chroot.other
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.root module
----------------------
.. automodule:: pmb.chroot.root
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.shutdown module
--------------------------
.. automodule:: pmb.chroot.shutdown
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.user module
----------------------
.. automodule:: pmb.chroot.user
:members:
:undoc-members:
:show-inheritance:
pmb.chroot.zap module
---------------------
.. automodule:: pmb.chroot.zap
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.chroot
:members:
:undoc-members:
:show-inheritance:

10
docs/api/pmb.ci.rst Normal file
View File

@ -0,0 +1,10 @@
pmb.ci package
==============
Module contents
---------------
.. automodule:: pmb.ci
:members:
:undoc-members:
:show-inheritance:

70
docs/api/pmb.config.rst Normal file
View File

@ -0,0 +1,70 @@
pmb.config package
==================
Submodules
----------
pmb.config.init module
----------------------
.. automodule:: pmb.config.init
:members:
:undoc-members:
:show-inheritance:
pmb.config.load module
----------------------
.. automodule:: pmb.config.load
:members:
:undoc-members:
:show-inheritance:
pmb.config.merge\_with\_args module
-----------------------------------
.. automodule:: pmb.config.merge_with_args
:members:
:undoc-members:
:show-inheritance:
pmb.config.pmaports module
--------------------------
.. automodule:: pmb.config.pmaports
:members:
:undoc-members:
:show-inheritance:
pmb.config.save module
----------------------
.. automodule:: pmb.config.save
:members:
:undoc-members:
:show-inheritance:
pmb.config.sudo module
----------------------
.. automodule:: pmb.config.sudo
:members:
:undoc-members:
:show-inheritance:
:noindex:
pmb.config.workdir module
-------------------------
.. automodule:: pmb.config.workdir
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.config
:members:
:undoc-members:
:show-inheritance:

37
docs/api/pmb.export.rst Normal file
View File

@ -0,0 +1,37 @@
pmb.export package
==================
Submodules
----------
pmb.export.frontend module
--------------------------
.. automodule:: pmb.export.frontend
:members:
:undoc-members:
:show-inheritance:
pmb.export.odin module
----------------------
.. automodule:: pmb.export.odin
:members:
:undoc-members:
:show-inheritance:
pmb.export.symlinks module
--------------------------
.. automodule:: pmb.export.symlinks
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.export
:members:
:undoc-members:
:show-inheritance:

45
docs/api/pmb.flasher.rst Normal file
View File

@ -0,0 +1,45 @@
pmb.flasher package
===================
Submodules
----------
pmb.flasher.frontend module
---------------------------
.. automodule:: pmb.flasher.frontend
:members:
:undoc-members:
:show-inheritance:
pmb.flasher.init module
-----------------------
.. automodule:: pmb.flasher.init
:members:
:undoc-members:
:show-inheritance:
pmb.flasher.run module
----------------------
.. automodule:: pmb.flasher.run
:members:
:undoc-members:
:show-inheritance:
pmb.flasher.variables module
----------------------------
.. automodule:: pmb.flasher.variables
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.flasher
:members:
:undoc-members:
:show-inheritance:

189
docs/api/pmb.helpers.rst Normal file
View File

@ -0,0 +1,189 @@
pmb.helpers package
===================
Submodules
----------
pmb.helpers.apk module
----------------------
.. automodule:: pmb.helpers.apk
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.aportupgrade module
-------------------------------
.. automodule:: pmb.helpers.aportupgrade
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.args module
-----------------------
.. automodule:: pmb.helpers.args
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.cli module
----------------------
.. automodule:: pmb.helpers.cli
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.devices module
--------------------------
.. automodule:: pmb.helpers.devices
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.file module
-----------------------
.. automodule:: pmb.helpers.file
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.frontend module
---------------------------
.. automodule:: pmb.helpers.frontend
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.git module
----------------------
.. automodule:: pmb.helpers.git
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.http module
-----------------------
.. automodule:: pmb.helpers.http
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.lint module
-----------------------
.. automodule:: pmb.helpers.lint
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.logging module
--------------------------
.. automodule:: pmb.helpers.logging
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.mount module
------------------------
.. automodule:: pmb.helpers.mount
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.other module
------------------------
.. automodule:: pmb.helpers.other
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.package module
--------------------------
.. automodule:: pmb.helpers.package
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.pkgrel\_bump module
-------------------------------
.. automodule:: pmb.helpers.pkgrel_bump
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.pmaports module
---------------------------
.. automodule:: pmb.helpers.pmaports
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.repo module
-----------------------
.. automodule:: pmb.helpers.repo
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.repo\_missing module
--------------------------------
.. automodule:: pmb.helpers.repo_missing
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.run module
----------------------
.. automodule:: pmb.helpers.run
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.run\_core module
----------------------------
.. automodule:: pmb.helpers.run_core
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.status module
-------------------------
.. automodule:: pmb.helpers.status
:members:
:undoc-members:
:show-inheritance:
pmb.helpers.ui module
---------------------
.. automodule:: pmb.helpers.ui
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.helpers
:members:
:undoc-members:
:show-inheritance:

61
docs/api/pmb.install.rst Normal file
View File

@ -0,0 +1,61 @@
pmb.install package
===================
Submodules
----------
pmb.install.blockdevice module
------------------------------
.. automodule:: pmb.install.blockdevice
:members:
:undoc-members:
:show-inheritance:
pmb.install.format module
-------------------------
.. automodule:: pmb.install.format
:members:
:undoc-members:
:show-inheritance:
pmb.install.losetup module
--------------------------
.. automodule:: pmb.install.losetup
:members:
:undoc-members:
:show-inheritance:
pmb.install.partition module
----------------------------
.. automodule:: pmb.install.partition
:members:
:undoc-members:
:show-inheritance:
pmb.install.recovery module
---------------------------
.. automodule:: pmb.install.recovery
:members:
:undoc-members:
:show-inheritance:
pmb.install.ui module
---------------------
.. automodule:: pmb.install.ui
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.install
:members:
:undoc-members:
:show-inheritance:

10
docs/api/pmb.netboot.rst Normal file
View File

@ -0,0 +1,10 @@
pmb.netboot package
===================
Module contents
---------------
.. automodule:: pmb.netboot
:members:
:undoc-members:
:show-inheritance:

93
docs/api/pmb.parse.rst Normal file
View File

@ -0,0 +1,93 @@
pmb.parse package
=================
Submodules
----------
pmb.parse.apkindex module
-------------------------
.. automodule:: pmb.parse.apkindex
:members:
:undoc-members:
:show-inheritance:
pmb.parse.arch module
---------------------
.. automodule:: pmb.parse.arch
:members:
:undoc-members:
:show-inheritance:
pmb.parse.arguments module
--------------------------
.. automodule:: pmb.parse.arguments
:members:
:undoc-members:
:show-inheritance:
pmb.parse.binfmt\_info module
-----------------------------
.. automodule:: pmb.parse.binfmt_info
:members:
:undoc-members:
:show-inheritance:
pmb.parse.bootimg module
------------------------
.. automodule:: pmb.parse.bootimg
:members:
:undoc-members:
:show-inheritance:
pmb.parse.cpuinfo module
------------------------
.. automodule:: pmb.parse.cpuinfo
:members:
:undoc-members:
:show-inheritance:
pmb.parse.depends module
------------------------
.. automodule:: pmb.parse.depends
:members:
:undoc-members:
:show-inheritance:
pmb.parse.deviceinfo module
---------------------------
.. automodule:: pmb.parse.deviceinfo
:members:
:undoc-members:
:show-inheritance:
pmb.parse.kconfig module
------------------------
.. automodule:: pmb.parse.kconfig
:members:
:undoc-members:
:show-inheritance:
pmb.parse.version module
------------------------
.. automodule:: pmb.parse.version
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.parse
:members:
:undoc-members:
:show-inheritance:

21
docs/api/pmb.qemu.rst Normal file
View File

@ -0,0 +1,21 @@
pmb.qemu package
================
Submodules
----------
pmb.qemu.run module
-------------------
.. automodule:: pmb.qemu.run
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------
.. automodule:: pmb.qemu
:members:
:undoc-members:
:show-inheritance:

31
docs/api/pmb.rst Normal file
View File

@ -0,0 +1,31 @@
pmb package
===========
Subpackages
-----------
.. toctree::
:maxdepth: 4
pmb.aportgen
pmb.build
pmb.chroot
pmb.ci
pmb.config
pmb.export
pmb.flasher
pmb.helpers
pmb.install
pmb.netboot
pmb.parse
pmb.qemu
pmb.sideload
Module contents
---------------
.. automodule:: pmb
:members:
:undoc-members:
:show-inheritance:
:noindex:

10
docs/api/pmb.sideload.rst Normal file
View File

@ -0,0 +1,10 @@
pmb.sideload package
====================
Module Contents
---------------
.. automodule:: pmb.sideload
:members:
:undoc-members:
:show-inheritance:

61
docs/conf.py Normal file
View File

@ -0,0 +1,61 @@
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
import sys
import os
import datetime
sys.path.insert(0, os.path.abspath('..')) # Allow modules to be found
from pmb import __version__
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd: # only import and set the theme if we're building docs locally
import sphinx_rtd_theme
html_theme = 'sphinx_rtd_theme'
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'pmbootstrap'
copyright = str(datetime.date.today().year) + ', postmarketOS developers'
author = 'postmarketOS developers'
release = __version__
version = '.'.join(release.split('.')[:3])
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.doctest', 'sphinxcontrib.autoprogram']
templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# -- Options for HTML output -------------------------------------------------
html_theme = 'sphinx_rtd_theme'
html_favicon = 'https://wiki.postmarketos.org/favicon.ico'
html_theme_options = {'style_nav_header_background': '008b69',}
# Output file base name for HTML help builder.
htmlhelp_basename = 'pmboostrapdoc'
html_theme_options = {
'display_version': True,
'style_external_links': True,
}
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'pmbootstrap', 'pmbootstrap Documentation',
['postmarketOS Developers'], 1)
]

38
docs/index.rst Normal file
View File

@ -0,0 +1,38 @@
Welcome to pmbootstrap's documentation!
=======================================
pmboostrap is the central command-line application for postmarketOS development. Among other things,
it allows building packages, creating installation images and flashing themx to your device. If you just want to install
postmarketOS, read the `Installation`_ wiki article first since you might not need pmbootstrap depeing on the method.
For the latest releases please check the `repository`_.
In case of any problems that is also the place to check the `issue-tracker`_.
For further information, please check out the `postmarketOS-wiki`_.
.. toctree::
:maxdepth: 3
:caption: Contents:
installation
usage
api/modules
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
*Note:* This documentation is currently a work-in-progress, your feedback and contributions are very welcome!
.. _postmarketOS-wiki: https://wiki.postmarketos.org/wiki/Main_Page
.. _issue-tracker: https://gitlab.com/postmarketOS/pmbootstrap/-/issues
.. _repository: https://gitlab.com/postmarketOS/pmbootstrap/
.. _Installation: https://wiki.postmarketos.org/wiki/Installation

67
docs/installation.rst Normal file
View File

@ -0,0 +1,67 @@
Installation
============
pmbootstrap runs on pretty much any Linux distribution with python3, openssl and git installed. It uses Alpine Linux chroots internally to avoid installing software on the host machine. If you don't run Linux on your PC, see :ref:`other-os`.
On Linux
--------
From package manager
^^^^^^^^^^^^^^^^^^^^
.. code-block::
Alpine Linux, postmarketOS:
# apk add pmbootstrap
Arch Linux:
# pacman -S pmbootstrap
Debian:
# apt install pmbootstrap
Fedora:
# dnf install pmbootstrap
Void Linux:
# xbps-install -S pmbootstrap
Gentoo:
# emerge -va app-eselect/eselect-repository
# eselect repository enable guru
# emaint -r guru sync
# emerge -va dev-util/pmbootstrap
Nix/NixOS
# nix run nixpkgs#pmbootstrap
.. note::
Fixed release distributions, i.e. Debian, may freeze pmbootstrap version. Consider installing it from git if you want the latest features and bug fixes.
From git
^^^^^^^^
Follow this section if your Linux distribution doesn't have pmbootstrap packaged, or its version of pmbootstrap is too old, or you would like to change the code. Run the following to clone and install pmbootstrap from git.
.. code-block::
$ git clone --depth=1 https://gitlab.com/postmarketOS/pmbootstrap.git
$ mkdir -p ~/.local/bin
$ ln -s "$PWD/pmbootstrap/pmbootstrap.py" ~/.local/bin/pmbootstrap
$ pmbootstrap --version
2.1.0
If this returns something like `pmbootstrap: command not found instead` of a version number, ensure that `~/.local/bin` is in your `PATH`. For example by adding the following to your `~/.profile` (zsh: `~/.zprofile`) followed by `source ~/.profile` to update your environment.
.. code-block::
PATH="$HOME/.local/bin:$PATH"
Then open a new terminal and try again.
.. _other-os:
On other operating systems
--------------------------
Running pmbootstrap on other operating systems than Linux is not supported. If you run another OS, consider setting up a virtual machine with Linux.
Some people also made it work with WSL, see the `Windows FAQ`_ in the pmOS-Wiki.
But again, it's not officially supported - we recommend getting some sort of Linux install instead and running it there.
.. _Windows FAQ: https://wiki.postmarketos.org/wiki/Windows_FAQ

59
docs/usage.rst Normal file
View File

@ -0,0 +1,59 @@
#####
Usage
#####
pmbootstrap offers many options and actions and is normally ran from a shell.
Before pmbootstrap can be used, a number of configuration questions need to be answered. The sections below go into detail for the various questions.
.. code-block:: shell
$ pmboostrap init
If you already ran this before, run the following to update your local clone of pmaports.git instead, before moving straight onto the installation step:
.. code-block:: shell
$ pmbootstrap pull
For further details on the different actions please see below and refer to the wiki-arcticle on `pmbootstrap`_.
.. autoprogram:: pmb.parse:get_parser()
:prog: pmbootstrap
:groups:
Requirements
============
pmbootstrap requires the following:
* Linux distribution on the host system (`x86`, `x86_64`, `aarch64` or `armv7`)
.. note::
Windows subsystem for `Linux (WSL)`_ does **not** work! Please use `VirtualBox`_ instead.
* Linux kernel 3.17 or higher (`oldkernel`_)
.. note::
Kernel version 5.8 - 6.0 might have issues with loop-devices
* Python 3.7+
* OpenSSL
* git
* ps
* tar
* sudo or doas
.. _pmbootstrap: https://wiki.postmarketos.org/wiki/Pmbootstrap#Using_pmbootstrap
.. _Linux (WSL): https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
.. _virtualbox: https://www.virtualbox.org/
.. _oldkernel: https://postmarketos.org/oldkernel