From: simone.p.weiss@posteo.com
To: bitbake-devel@lists.openembedded.org
Cc: docs@lists.yoctoproject.org, "Simone Weiß" <simone.p.weiss@posteo.com>
Subject: [PATCH] bitbake: doc: Add section for variable context
Date: Sun, 11 Feb 2024 10:40:56 +0000 [thread overview]
Message-ID: <20240211104056.85709-1-simone.p.weiss@posteo.com> (raw)
From: Simone Weiß <simone.p.weiss@posteo.com>
This is inspired by the same section in the yocto-docs. It aims to provide
information in what contexts(recipes, .conf, bbclass,...) a variable is usually
used. For that I tried to group similar variables, so that a short overview is
given. This was inspired by [YOCTO #14072], but of course does not implement a
warning if a variable is used in an unintended context.
Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
---
...bake-user-manual-ref-variables-context.rst | 77 +++++++++++++++++++
bitbake/doc/index.rst | 1 +
2 files changed, 78 insertions(+)
create mode 100644 bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables-context.rst
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables-context.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables-context.rst
new file mode 100644
index 0000000000..9b94e09299
--- /dev/null
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-ref-variables-context.rst
@@ -0,0 +1,77 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+****************
+Variable Context
+****************
+
+Variables might only have an impact or can be used in certain contexts. Some
+should only be used in global files like ``.conf``, while others are intended only
+for local files like ``.bb``. This chapter aims to describe some important variable
+contexts.
+
+.. _ref-varlcontext-configuration:
+
+#. **BitBakes own configuration**: Variables starting with `BB_` usually
+ configure the behaviour of BitBake itself. For example, one could configure:
+
+ - system resources, like disk space to be used (:term:`BB_DISKMON_DIRS`),
+ or number of tasks to be run in parallel by BitBake (:term:`BB_NUMBER_THREADS`).
+
+ - how the fetchers shall behave, e.g., :term:`BB_FETCH_PREMIRRORONLY` is used
+ by BitBake to determine if BitBake's fetcher shall search only
+ :term:`PREMIRRORS` for files.
+
+ Those variables are usually configured globally.
+
+#. **BitBake configuration**: There are variables:
+
+ - like :term:`B` or :term:`T`, that are used to specify directories used by
+ BitBake during the build of a particular recipe. Those variables are
+ specified in ``bitbake.conf``. Some, like :term:`B`, are quite often
+ overwritten in recipes.
+
+ - starting with `FAKEROOT` configure how the fakeroot command is handled.
+ Those are usually set by ``bitbake.conf`` and might get adapted in a
+ ``bbclass``.
+
+ - detailing where BitBake will store and fetch information from for
+ preservation between build runs like :term:`CACHE`, :term:`DL_DIR` or
+ :term:`PERSISTENT_DIR`. Those are usually global.
+
+
+#. **Layers and files**: Variables starting with `LAYER` configure how
+ BitBake handles layers. Additionally, variables starting with `BB` configure
+ how layers and files are handled. For example:
+
+ - :term:`LAYERDEPENDS` is used to configure on which layers a given layer
+ depends.
+
+ - the configured layers are contained in :term:`BBLAYERS` and files in
+ :term:`BBFILES`.
+
+ Those variables are often used in the files ``layer.conf`` and ``bblayers.conf``.
+
+#. **Recipes and packages**: Variables handling recipes and packages can be split into:
+
+ - :term:`PN`, :term:`PV` or :term:`PF` for example, contain information about the
+ name or revision of a recipe or package. Usually, the default set in
+ ``bitbake.conf`` is used, but those are from time to time overwritten in recipes.
+
+ - :term:`SUMMARY`, :term:`DESCRIPTION`, :term:`LICENSE` or :term:`HOMEPAGE`
+ contain the expected information and should be set specifically for every
+ recipe.
+
+ - In recipes, variables are also used to control build and runtime
+ dependencies between recipes/packages with other recipes/packages. The
+ most common should be: :term:`PROVIDES`, :term:`RPROVIDES`, :term:`DEPENDS`,
+ and :term:`RDEPENDS`.
+
+ - There are further variables starting with `SRC` that specify the sources in
+ a recipe like :term:`SRC_URI` or :term:`SRCDATE`. Those are also usually set
+ in recipes.
+
+ - Which version or provider of a recipe should be given preference when
+ multiple recipes would provide the same item, is controlled by variables
+ starting with ``PREFERRED_``. Those are normally set in the configuration
+ files of a ``MACHINE`` or ``DISTRO``.
+
diff --git a/bitbake/doc/index.rst b/bitbake/doc/index.rst
index 3ff8b1580f..30d2a5e3c7 100644
--- a/bitbake/doc/index.rst
+++ b/bitbake/doc/index.rst
@@ -15,6 +15,7 @@ BitBake User Manual
bitbake-user-manual/bitbake-user-manual-metadata
bitbake-user-manual/bitbake-user-manual-fetching
bitbake-user-manual/bitbake-user-manual-ref-variables
+ bitbake-user-manual/bitbake-user-manual-ref-variables-context
bitbake-user-manual/bitbake-user-manual-hello
.. toctree::
--
2.39.2
next reply other threads:[~2024-02-11 10:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-11 10:40 simone.p.weiss [this message]
2024-02-13 9:32 ` [bitbake-devel] [PATCH] bitbake: doc: Add section for variable context Michael Opdenacker
2024-02-14 11:57 ` [docs] " Quentin Schulz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240211104056.85709-1-simone.p.weiss@posteo.com \
--to=simone.p.weiss@posteo.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=docs@lists.yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).