poky/bitbake/doc
Alexander Kanavin 941ac7d256 bitbake: parse/ast: add support for 'built-in' fragments
When reviewing proposed fragments to add settings for DISTRO and MACHINE,
RP noted that such fragments only add clutter and overhead, and there's
no need to maintain them as separate files.

Rather when bitbake sees 'fragmentvar/fragmentvalue' it can expand that into
FRAGMENTVAR = "fragmentvalue".

To achieve that, 'addfragments' directive is extended with a parameter
that sets the name of the variable that holds definitions of such
built-in fragments, for example like this:

"machine:MACHINE distro:DISTRO"

Then each enabled fragment name is matched against these definitions and the
respective variable is set, e.g. 'machine/qemuarm' would match
'machine:MACHINE' and result in MACHINE set to 'qemuarm'.

This happens before any fragment files are looked up on disk,
and no such lookup happens if there was a match, which should prevent
possible misuse of the feature. So the builtin fragment definition
is also an allowlist for them.

Please also see the patches for oe-core that show an application of the feature.

(Bitbake rev: 3b9d7bea915dc7f10e845854f1dae325743f9456)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-06-20 12:03:37 +01:00
..
_templates bitbake: bitbake-user-manual: add reference to bitbake git repository 2022-12-09 13:22:11 +00:00
bitbake-user-manual bitbake: parse/ast: add support for 'built-in' fragments 2025-06-20 12:03:37 +01:00
sphinx-static bitbake: docs: static: theme_overrides.css: fix responsive design on <640px screens 2020-10-06 13:52:25 +01:00
template bitbake: sphinx: remove DocBook files 2020-10-06 13:52:25 +01:00
.gitignore bitbake: sphinx: add initial build infrastructure 2020-09-16 18:14:07 +01:00
bitbake.1 bitbake: doc: Replace depexp UI with taskexp and cleanup UI lists 2017-02-19 06:28:46 -08:00
conf.py bitbake: doc: add a new Library Functions document 2025-04-24 11:53:00 +01:00
COPYING.GPL
COPYING.MIT
genindex.rst bitbake: sphinx: add initial build infrastructure 2020-09-16 18:14:07 +01:00
index.rst bitbake: doc: add a new Library Functions document 2025-04-24 11:53:00 +01:00
Makefile bitbake: doc: Makefile: turn warnings into errors by default 2021-07-26 22:34:13 +01:00
README Makefile: remove from top-level directory 2023-09-03 10:31:11 +01:00
releases.rst bitbake: doc: update releases.rst 2025-06-12 09:56:42 +01:00

Documentation

This is the directory that contains the BitBake documentation.

Manual Organization

Folders exist for individual manuals as follows:

  • bitbake-user-manual --- The BitBake User Manual

Each folder is self-contained regarding content and figures.

If you want to find HTML versions of the BitBake manuals on the web, go to https://www.openembedded.org/wiki/Documentation.

Sphinx

The BitBake documentation was migrated from the original DocBook format to Sphinx based documentation for the Yocto Project 3.2 release.

Additional information related to the Sphinx migration, and guidelines for developers willing to contribute to the BitBake documentation can be found in the Yocto Project Documentation README file:

https://git.yoctoproject.org/cgit/cgit.cgi/yocto-docs/tree/documentation/README

How to build the Yocto Project documentation

Sphinx is written in Python. While it might work with Python2, for obvious reasons, we will only support building the BitBake documentation with Python3.

Sphinx might be available in your Linux distro packages repositories, however it is not recommend using distro packages, as they might be old versions, especially if you are using an LTS version of your distro. The recommended method to install Sphinx and all required dependencies is to use the Python Package Index (pip).

To install all required packages run:

$ pip3 install sphinx sphinx_rtd_theme pyyaml

To build the documentation locally, run:

$ cd doc $ make html

The resulting HTML index page will be _build/html/index.html, and you can browse your own copy of the locally generated documentation with your browser.