($INBOX_DIR/description missing)
 help / color / mirror / Atom feed
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



             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).