summaryrefslogtreecommitdiffstats
path: root/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'documentation')
-rw-r--r--documentation/dev-manual/building.rst5
-rw-r--r--documentation/dev-manual/creating-fragments.rst146
-rw-r--r--documentation/dev-manual/index.rst1
-rw-r--r--documentation/kernel-dev/common.rst10
-rw-r--r--documentation/ref-manual/fragments.rst258
-rw-r--r--documentation/ref-manual/index.rst1
-rw-r--r--documentation/ref-manual/structure.rst9
-rw-r--r--documentation/ref-manual/system-requirements.rst5
-rw-r--r--documentation/ref-manual/terms.rst92
-rw-r--r--documentation/ref-manual/variables.rst44
-rwxr-xr-xdocumentation/set_versions.py2
-rwxr-xr-xdocumentation/tools/build-docs-container25
-rw-r--r--documentation/tools/host_packages_scripts/fedora_essential.sh2
13 files changed, 575 insertions, 25 deletions
diff --git a/documentation/dev-manual/building.rst b/documentation/dev-manual/building.rst
index 04c1500943..60ad11f52f 100644
--- a/documentation/dev-manual/building.rst
+++ b/documentation/dev-manual/building.rst
@@ -757,6 +757,11 @@ to point to that directory::
757 757
758 EXTERNALSRC_BUILD:pn-myrecipe = "path-to-your-source-tree" 758 EXTERNALSRC_BUILD:pn-myrecipe = "path-to-your-source-tree"
759 759
760.. note::
761
762 The values of :term:`EXTERNALSRC` and :term:`EXTERNALSRC_BUILD`
763 must be absolute paths.
764
760Replicating a Build Offline 765Replicating a Build Offline
761=========================== 766===========================
762 767
diff --git a/documentation/dev-manual/creating-fragments.rst b/documentation/dev-manual/creating-fragments.rst
new file mode 100644
index 0000000000..7f437d7c94
--- /dev/null
+++ b/documentation/dev-manual/creating-fragments.rst
@@ -0,0 +1,146 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3Creating New Configuration Fragments In Your Build
4**************************************************
5
6:term:`Configuration Fragments <Configuration Fragment>` define top level build
7configuration features that can be independently enabled and disabled using
8standard tooling. Such features are made of one or several build configuration
9statements that are either contained in a fragment file, or are set indirectly
10using the :term:`Built-in Fragment` mechanism.
11
12This section will describe how to create new fragments for your builds.
13
14There are two kinds of configuration fragments:
15
16- Standard :term:`Configuration Fragments <Configuration Fragment>` which a
17 stored in a file. These fragments include a summary and a description,
18 following by configuration statements.
19
20- :term:`Built-in Fragments <Built-in Fragment>` which can be used to assign a
21 value to a single variable and do not require a separate definition file.
22 They are especially useful when a list of possible values is very long (or
23 infinite).
24
25Creating A Standard Configuration Fragment
26==========================================
27
28By default, all configuration fragments are located within the
29``conf/fragments`` directory of a :term:`layer`. This location is defined by the
30:term:`OE_FRAGMENTS_PREFIX` variable which, in turn, is used as a parameter in an
31:ref:`addfragments <bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
32directive>` directive in :oe_git:`bitbake.conf </openembedded-core/tree/meta/conf/bitbake.conf>`.
33
34You can create one or more :term:`configuration fragment` files in your
35:term:`layer` in this directory. Let's take the following example, where
36``custom-fragment.conf`` is our custom fragment file::
37
38 meta-custom
39 ├── conf
40 │   ├── fragments
41 │   │   └── custom-fragment.conf
42 │   └── layer.conf
43 ...
44
45For our ``custom-fragment.conf`` file, the following variables **must** be set
46for our fragment to be considered a valid fragment by the :term:`OpenEmbedded
47Build System`:
48
49- :term:`BB_CONF_FRAGMENT_SUMMARY`: a one-line summary of this fragment.
50
51- :term:`BB_CONF_FRAGMENT_DESCRIPTION`: a description of this fragment.
52
53.. note::
54
55 The :term:`BB_CONF_FRAGMENT_SUMMARY` and :term:`BB_CONF_FRAGMENT_DESCRIPTION`
56 variables are also passed as parameters in an :ref:`addfragments
57 <bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
58 directive>` directive in :oe_git:`bitbake.conf
59 </openembedded-core/tree/meta/conf/bitbake.conf>`.
60
61After creating these variables, our custom fragment should look like the
62following:
63
64.. code-block::
65 :caption: custom-fragment.conf
66
67 BB_CONF_FRAGMENT_SUMMARY = "This fragment sets a limit of 4 bitbake threads and 4 parsing threads"
68 BB_CONF_FRAGMENT_DESCRIPTION = "This fragment is useful to constrain resource consumption when the Yocto default \
69 is causing an overload of host machine's memory and CPU resources."
70
71For now, our fragment does not have any additional configuration statement.
72Let's add the following assignments to our fragment:
73
74.. code-block::
75 :caption: custom-fragment.conf (continued)
76
77 BB_NUMBER_THREADS = "4"
78 BB_NUMBER_PARSE_THREADS = "4"
79
80This means that our fragment can be enabled to set a limit on the number of
81threads :term:`BitBake` will use with the :term:`BB_NUMBER_THREADS` and
82:term:`BB_NUMBER_PARSE_THREADS` variables.
83
84For now, our fragment exists and is listed by the
85:ref:`ref-bitbake-config-build-list-fragments` command, but is not enabled. To
86enable this fragment, use the :ref:`ref-bitbake-config-build-enable-fragment`
87command::
88
89 bitbake-config-build enable-fragment meta-custom/custom-fragment
90
91.. note::
92
93 The ``meta-custom`` prefix in the above command depends on the name of your
94 layer. This name is defined by the :term:`BBFILE_COLLECTIONS` variable in
95 the ``conf/layer.conf`` file of your layer.
96
97Standard Configuration fragments can be organized in a more complex way. For
98example, it's possible to create sub-directories to organize your fragments::
99
100 meta-custom
101 ├── conf
102 │   ├── fragments
103 │   │   ├── networking
104 │   │   │   └── mirrors.conf
105 │   │   └── resources
106 │   │   └── numberthreads.conf
107 │   └── layer.conf
108 ...
109
110In the above example, the ``meta-custom/networking/mirrors`` and
111``meta-custom/resources/numberthreads`` fragments will be available in your
112build.
113
114Creating A Built-in Fragment
115============================
116
117Within the :term:`OpenEmbedded Build System`, Built-in Fragments are defined
118with the :term:`OE_FRAGMENTS_BUILTIN` variable, which is passed as a
119parameter in an :ref:`addfragments <bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
120directive>` directive in :oe_git:`bitbake.conf </openembedded-core/tree/meta/conf/bitbake.conf>`.
121
122Adding new :term:`Built-in Fragments <Built-in Fragment>` can be done by
123appending the :term:`OE_FRAGMENTS_BUILTIN` variable from your :term:`layer`
124configuration file:
125
126.. code-block::
127 :caption: layer.conf
128
129 OE_FRAGMENTS_BUILTIN:append = " custom-builtin-fragment:CUSTOM_VARIABLE"
130
131.. warning::
132
133 Make sure to use the ``:append`` override in the above assignment, as using
134 ``+=`` can lead to unexpected behavior.
135
136.. warning::
137
138 Due to the way :term:`BitBake` parses files, it is not possible to modify
139 :term:`OE_FRAGMENTS_BUILTIN` from any kind of :term:`configuration file`.
140 Setting it from the :term:`layer` configuration file (``conf/layer.conf``) is
141 the retained solution to create new built-in fragments.
142
143You can then use the :ref:`ref-bitbake-config-build-enable-fragment` command to
144set a value to the ``CUSTOM_VARIABLE`` variable::
145
146 bitbake-config-build enable-fragment custom-builtin-fragment/somevalue
diff --git a/documentation/dev-manual/index.rst b/documentation/dev-manual/index.rst
index ea528855a8..7a581236a9 100644
--- a/documentation/dev-manual/index.rst
+++ b/documentation/dev-manual/index.rst
@@ -16,6 +16,7 @@ Yocto Project Development Tasks Manual
16 new-machine 16 new-machine
17 upgrading-recipes 17 upgrading-recipes
18 temporary-source-code 18 temporary-source-code
19 creating-fragments
19 quilt.rst 20 quilt.rst
20 development-shell 21 development-shell
21 python-development-shell 22 python-development-shell
diff --git a/documentation/kernel-dev/common.rst b/documentation/kernel-dev/common.rst
index 654c4e0a01..bd6c3fb2cf 100644
--- a/documentation/kernel-dev/common.rst
+++ b/documentation/kernel-dev/common.rst
@@ -650,13 +650,9 @@ the Broadcom 2708/2709 chipset::
650 650
651 KBUILD_DEFCONFIG:raspberrypi2 ?= "bcm2709_defconfig" 651 KBUILD_DEFCONFIG:raspberrypi2 ?= "bcm2709_defconfig"
652 652
653Aside from modifying your kernel recipe and providing your own 653If the build system detects a statement that identifies an "out-of-tree"
654``defconfig`` file, you need to be sure no files or statements set 654``defconfig`` file, your :term:`KBUILD_DEFCONFIG` variable will take precedence
655:term:`SRC_URI` to use a ``defconfig`` other than your "in-tree" file (e.g. 655over it.
656a kernel's ``linux-``\ `machine`\ ``.inc`` file). In other words, if the
657build system detects a statement that identifies an "out-of-tree"
658``defconfig`` file, that statement will override your
659:term:`KBUILD_DEFCONFIG` variable.
660 656
661See the 657See the
662:term:`KBUILD_DEFCONFIG` 658:term:`KBUILD_DEFCONFIG`
diff --git a/documentation/ref-manual/fragments.rst b/documentation/ref-manual/fragments.rst
new file mode 100644
index 0000000000..c0118876c8
--- /dev/null
+++ b/documentation/ref-manual/fragments.rst
@@ -0,0 +1,258 @@
1.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
2
3*****************************
4Using Configuration Fragments
5*****************************
6
7:term:`Configuration Fragments <Configuration Fragment>` define top level build
8configuration features that can be independently enabled and disabled using
9standard tooling. Such features are made of one or several build configuration
10statements that are either contained in a fragment file, or are set indirectly
11using the :term:`Built-in Fragment` mechanism.
12
13This document provides a quick reference of the :oe_git:`bitbake-config-build
14</bitbake/tree/bin/bitbake-config-build>` tool and lists the
15:term:`Configuration Fragments <Configuration Fragment>` and :term:`Built-in
16Fragments <Built-in Fragment>` available in the :term:`OpenEmbedded Build
17System` core repositories.
18
19.. note::
20
21 For details on how to define new fragments in your build, see the
22 :doc:`/dev-manual/creating-fragments` section of the Yocto Project Development
23 Tasks Manual.
24
25``bitbake-config-build`` Quick Reference
26========================================
27
28:term:`Configuration Fragments <Configuration Fragment>` are managed with the
29:oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`
30command-line tool, which is available after :ref:`dev-manual/start:Initializing
31the Build Environment`.
32
33The ``bitbake-config-build`` command-line tool uses sub-commands to manage
34fragments, which are detailed in the sections below. For each sub-command, the
35``--help`` flag can be passed to get more information on the sub-command.
36
37.. _ref-bitbake-config-build-list-fragments:
38
39``bitbake-config-build list-fragments``
40---------------------------------------
41
42The :ref:`ref-bitbake-config-build-list-fragments` command will list the :term:`Built-in
43Fragments <Built-in Fragment>` and :term:`Configuration Fragments <Configuration
44Fragment>` that are currently available, and will also print which fragments are
45enabled or disabled.
46
47.. _ref-bitbake-config-build-show-fragment:
48
49``bitbake-config-build show-fragment``
50--------------------------------------
51
52The :ref:`ref-bitbake-config-build-show-fragment` command is used to show the
53location and value of a fragment. For example, running ``bitbake-config-build
54show-fragment core/yocto/sstate-mirror-cdn`` will show the content of the
55:ref:`ref-fragments-core-yocto-sstate-mirror-cdn` fragment.
56
57.. _ref-bitbake-config-build-enable-fragment:
58
59``bitbake-config-build enable-fragment``
60----------------------------------------
61
62The :ref:`ref-bitbake-config-build-enable-fragment` command is used to enable a
63fragment. When a fragment is enabled, the configuration variables of this
64fragment are parsed by :term:`BitBake` and their values are available globally
65in your build.
66
67From the list obtained with the :ref:`ref-bitbake-config-build-list-fragments`
68command, you can determine which fragments can be enabled for your build.
69
70For example, the following command would enable the
71:ref:`ref-fragments-core-yocto-sstate-mirror-cdn` fragment::
72
73 bitbake-config-build enable-fragment core/yocto/sstate-mirror-cdn
74
75.. note::
76
77 Multiple fragments can be enabled at once with the same command::
78
79 bitbake-config-build enable-fragment <fragment1> <fragment2> ...
80
81:term:`Built-in fragments <Built-in Fragment>` are enabled the same way, and
82their values are defined from the command-line directly. For example, the
83following command sets the ``qemuarm64`` :term:`MACHINE` through the
84:ref:`ref-fragments-builtin-core-machine` fragment::
85
86 bitbake-config-build enable-fragment machine/qemuarm64
87
88This fragment can be overridden from the command-line by setting it to another
89value, for example::
90
91 bitbake-config-build enable-fragment machine/qemux86-64
92
93Note that in this case, the fragment will be defined twice in
94:term:`OE_FRAGMENTS`, and the last value is taken into account:
95
96.. code-block::
97 :caption: build/conf/auto.conf
98
99 OE_FRAGMENTS += " ... machine/qemuarm64 machine/qemux86-64"
100
101In the above example, the value of :term:`MACHINE` is thus equal to
102``qemux86-64``.
103
104When a fragment is enabled with :ref:`ref-bitbake-config-build-enable-fragment`,
105its name is automatically appended to the :term:`OE_FRAGMENTS` variable in
106:ref:`structure-build-conf-auto.conf`.
107
108.. note::
109
110 It is also possible to manually remove or add fragments by modifying the
111 :term:`OE_FRAGMENTS` variable in a configuration file such as
112 :ref:`structure-build-conf-local.conf`.
113
114.. _ref-bitbake-config-build-disable-fragment:
115
116``bitbake-config-build disable-fragment``
117-----------------------------------------
118
119Any fragment enabled with the :ref:`ref-bitbake-config-build-enable-fragment`
120command can be disabled with the :ref:`ref-bitbake-config-build-disable-fragment`
121command. The list of enabled fragments can be obtained with
122:ref:`ref-bitbake-config-build-list-fragments`.
123
124For example, the following command disables the
125:ref:`ref-fragments-core-yocto-sstate-mirror-cdn` fragment::
126
127 bitbake-config-build disable-fragment core/yocto/sstate-mirror-cdn
128
129Likewise, :term:`Built-in Fragments <Built-in Fragment>` are disabled the
130same way. For example, this would disable the ``machine/qemuarm64`` fragment::
131
132 bitbake-config-build disable-fragment machine/qemuarm64
133
134.. note::
135
136 Multiple fragments can be disabled at once with the same command::
137
138 bitbake-config-build disable-fragment <fragment1> <fragment2>
139
140.. _ref-bitbake-config-build-disable-all-fragments:
141
142``bitbake-config-build disable-all-fragments``
143----------------------------------------------
144
145The :ref:`ref-bitbake-config-build-disable-all-fragments` command disables all of the
146currently enabled fragments. The list of enabled fragments can be obtained with
147:ref:`ref-bitbake-config-build-list-fragments`.
148
149This command is run without arguments::
150
151 bitbake-config-build disable-all-fragments
152
153Core Fragments
154==============
155
156Core Built-in Fragments
157-----------------------
158
159:term:`Built-in Fragments <Built-in Fragment>` are used to assign a single
160variable globally. The :term:`OpenEmbedded Build System` defines multiple
161built-in fragments that are detailed in this section.
162
163.. _ref-fragments-builtin-core-machine:
164
165``machine/``
166~~~~~~~~~~~~
167
168The ``machine/`` :term:`built-in fragment` can be used to assign the value of
169the :term:`MACHINE` variable globally.
170
171.. _ref-fragments-builtin-core-distro:
172
173``distro/``
174~~~~~~~~~~~
175
176The ``distro/`` :term:`built-in fragment` can be used to assign the value of
177the :term:`DISTRO` variable globally.
178
179Core Configuration Fragments
180----------------------------
181
182Yocto Project Fragments
183~~~~~~~~~~~~~~~~~~~~~~~
184
185This group defines fragments related to the Yocto Project infrastructure in
186general.
187
188.. _ref-fragments-core-yocto-sstate-mirror-cdn:
189
190``core/yocto/sstate-mirror-cdn``
191^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
192
193The ``core/yocto/sstate-mirror-cdn`` :term:`configuration fragment` can be used
194to set up :term:`BB_HASHSERVE_UPSTREAM` and :term:`SSTATE_MIRRORS` to use
195pre-built :ref:`shared state cache <overview-manual/concepts:shared state
196cache>` artifacts for standard Yocto build configurations.
197
198This will mean the build will query the Yocto Project mirrors to check for
199artifacts at the start of builds, which does slow it down initially but it will
200then speed up the builds by not having to build things if they are present in
201the cache. It assumes you can download something faster than you can build it
202which will depend on your network configuration.
203
204Yocto Project Autobuilder Fragments
205~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
206
207This group defines fragment used for the Yocto Project Autobuilder. For details,
208see the :ref:`test-manual/intro:Yocto Project Autobuilder Overview` section of
209the Yocto Project Test Environment Manual.
210
211.. _ref-fragment-core-yocto-autobuilder-autobuilder:
212
213``core/yocto-autobuilder/autobuilder``
214^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
215
216The ``core/yocto-autobuilder/autobuilder`` fragment defines common variables
217used in builds started by the Yocto Project Autobuilder.
218
219.. _ref-fragment-core-yocto-autobuilder-autobuilder-resource-constraints:
220
221``core/yocto-autobuilder/autobuilder-resource-constraints``
222^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
223
224The ``core/yocto-autobuilder/autobuilder`` fragment defines variables for
225limiting the resources used by the Yocto Project Autobuilder during builds. For
226more details on how to limit resources, see the :doc:`/dev-manual/limiting-resources`
227section of the Yocto Project Development Tasks Manual.
228
229.. _ref-fragment-core-yocto-autobuilder-multilib-mips64-n32:
230
231``core/yocto-autobuilder/multilib-mips64-n32``
232^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
233
234The ``core/yocto-autobuilder/multilib-mips64-n32`` fragment enables
235tri-architecture :ref:`multilib <dev-manual/libraries:Combining Multiple
236Versions of Library Files into One Image>` configurations for :wikipedia:`MIPS64
237<MIPS_architecture>` machines, which includes ``mips64-n32``, ``mips64``, and
238``mips32r2``.
239
240.. _ref-fragment-core-yocto-autobuilder-multilib-x86-lib32:
241
242``core/yocto-autobuilder/multilib-x86-lib32``
243^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
244
245The ``core/yocto-autobuilder/multilib-x86-lib32`` fragment enables
246:ref:`multilib <dev-manual/libraries:Combining Multiple Versions of Library
247Files into One Image>` configurations for supporting 32-bit libraries on 64-bit
248:wikipedia:`X86 <X86>` builds.
249
250.. _ref-fragment-core-yocto-autobuilder-multilib-x86-lib64:
251
252``core/yocto-autobuilder/multilib-x86-lib64``
253^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
254
255The ``core/yocto-autobuilder/multilib-x86-lib64`` fragment enables
256:ref:`multilib <dev-manual/libraries:Combining Multiple Versions of Library
257Files into One Image>` configurations for supporting 64-bit libraries on 32-bit
258:wikipedia:`X86 <X86>` builds.
diff --git a/documentation/ref-manual/index.rst b/documentation/ref-manual/index.rst
index 53fa98cc99..aa1a63e050 100644
--- a/documentation/ref-manual/index.rst
+++ b/documentation/ref-manual/index.rst
@@ -17,6 +17,7 @@ Yocto Project Reference Manual
17 structure 17 structure
18 classes 18 classes
19 tasks 19 tasks
20 fragments
20 devtool-reference 21 devtool-reference
21 kickstart 22 kickstart
22 qa-checks 23 qa-checks
diff --git a/documentation/ref-manual/structure.rst b/documentation/ref-manual/structure.rst
index 660cc9be1b..1aaafcf79b 100644
--- a/documentation/ref-manual/structure.rst
+++ b/documentation/ref-manual/structure.rst
@@ -356,6 +356,15 @@ This configuration file is generated by :doc:`bblock </dev-manual/bblock>` and
356contains the signatures locked by ``bblock``. By default, it does not exist 356contains the signatures locked by ``bblock``. By default, it does not exist
357and will be created upon the first invocation of ``bblock``. 357and will be created upon the first invocation of ``bblock``.
358 358
359.. _structure-build-conf-auto.conf:
360
361``build/conf/auto.conf``
362------------------------
363
364This file contains configuration variables that are automatically modified by
365tools such as :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`.
366This file should not be modified manually.
367
359.. _structure-build-downloads: 368.. _structure-build-downloads:
360 369
361``build/downloads/`` 370``build/downloads/``
diff --git a/documentation/ref-manual/system-requirements.rst b/documentation/ref-manual/system-requirements.rst
index 0ea52ae951..fcefd6c7a0 100644
--- a/documentation/ref-manual/system-requirements.rst
+++ b/documentation/ref-manual/system-requirements.rst
@@ -67,16 +67,18 @@ supported on the following distributions:
67- CentOS Stream 9 67- CentOS Stream 9
68- Debian GNU/Linux 11 (Bullseye) 68- Debian GNU/Linux 11 (Bullseye)
69- Debian GNU/Linux 12 (Bookworm) 69- Debian GNU/Linux 12 (Bookworm)
70- Debian GNU/Linux 13 (Trixie)
70- Fedora 39 71- Fedora 39
71- Fedora 40 72- Fedora 40
72- Fedora 41 73- Fedora 41
74- Fedora 42
73- OpenSUSE Leap 15.5 75- OpenSUSE Leap 15.5
74- OpenSUSE Leap 15.6 76- OpenSUSE Leap 15.6
75- Rocky Linux 8 77- Rocky Linux 8
76- Rocky Linux 9 78- Rocky Linux 9
77- Ubuntu 22.04 (LTS) 79- Ubuntu 22.04 (LTS)
78- Ubuntu 24.04 (LTS) 80- Ubuntu 24.04 (LTS)
79- Ubuntu 24.10 81- Ubuntu 25.04
80 82
81The following distribution versions are still tested, even though the 83The following distribution versions are still tested, even though the
82organizations publishing them no longer make updates publicly available: 84organizations publishing them no longer make updates publicly available:
@@ -89,7 +91,6 @@ organizations publishing them no longer make updates publicly available:
89- Fedora 39 91- Fedora 39
90- Fedora 40 92- Fedora 40
91- OpenSUSE Leap 15.5 93- OpenSUSE Leap 15.5
92- Ubuntu 24.10
93 94
94Note that the Yocto Project doesn't have access to private updates 95Note that the Yocto Project doesn't have access to private updates
95that some of these versions may have. Therefore, our testing has 96that some of these versions may have. Therefore, our testing has
diff --git a/documentation/ref-manual/terms.rst b/documentation/ref-manual/terms.rst
index f3d3d059d1..e25c714d9b 100644
--- a/documentation/ref-manual/terms.rst
+++ b/documentation/ref-manual/terms.rst
@@ -131,6 +131,53 @@ universal, the list includes them just in case:
131 A variant of :term:`buildtools`, just providing the required 131 A variant of :term:`buildtools`, just providing the required
132 version of ``make`` to run the OpenEmbedded build system. 132 version of ``make`` to run the OpenEmbedded build system.
133 133
134 :term:`Built-in Fragment`
135 A built-in fragment is a specific kind of :term:`Configuration Fragment`
136 that affects the value of a single variable globally. :term:`Built-in
137 Fragments <Built-in Fragment>` do not require a separate configuration
138 file, but like a standard :term:`Configuration Fragment`, Built-in
139 Fragments can be enabled or disabled using the :oe_git:`bitbake-config-build
140 </bitbake/tree/bin/bitbake-config-build>` command-line utility.
141
142 When declared, a built-in fragment follows the following naming
143 convention::
144
145 <fragment>:<variable name>
146
147 Where:
148
149 - ``<fragment>`` is the name of the built-in fragment.
150 - ``<variable name>`` is the name of the variable to be modified by this
151 fragment.
152
153 For example::
154
155 machine:MACHINE
156
157 Will setup the ``machine`` Built-in Fragment for modifying the value of
158 the :term:`MACHINE` variable.
159
160 Setting the :term:`MACHINE` variable through this fragment must follow
161 this syntax::
162
163 machine/qemux86-64
164
165 This sets the value of :term:`MACHINE` to ``qemux86-64``.
166
167 In :term:`OpenEmbedded-Core (OE-Core)`, the list of available
168 :term:`Built-in Fragments <Built-in Fragment>` can be obtained from the
169 :term:`OE_FRAGMENTS_BUILTIN` variable.
170
171 For more details on fragments, see:
172
173 - The :doc:`/ref-manual/fragments` section of the Yocto Project Reference
174 Manual for a list of fragments the :term:`OpenEmbedded Build System`
175 supports, and a quick reference guide on how to manage fragments.
176
177 - The :doc:`/dev-manual/creating-fragments` section of the Yocto Project
178 Development Tasks Manual for details on how to create new fragments
179 in your build.
180
134 :term:`Classes` 181 :term:`Classes`
135 Files that provide for logic encapsulation and inheritance so that 182 Files that provide for logic encapsulation and inheritance so that
136 commonly used patterns can be defined once and then easily used in 183 commonly used patterns can be defined once and then easily used in
@@ -154,6 +201,51 @@ universal, the list includes them just in case:
154 only used when building for that target (e.g. the 201 only used when building for that target (e.g. the
155 :file:`machine/beaglebone.conf` configuration file defines variables for 202 :file:`machine/beaglebone.conf` configuration file defines variables for
156 the Texas Instruments ARM Cortex-A8 development board). 203 the Texas Instruments ARM Cortex-A8 development board).
204 :term:`Configuration Fragments <Configuration Fragment>` such as
205 :ref:`ref-fragments-core-yocto-sstate-mirror-cdn` define snippets of
206 configuration that can be enabled from the command-line.
207
208 :term:`Configuration Fragment`
209 A :term:`Configuration Fragment` (also called Standard :term:`Configuration
210 Fragment`) is a :term:`configuration file` that contains configuration
211 statements such as variable assignments, affecting the build at a
212 global-level when the fragment is enabled. By default, configuration
213 fragments are located in the :file:`conf/fragments/` directory of a
214 :term:`Layer`.
215
216 .. note::
217
218 Another form of fragment not to be confounded with Standard
219 :term:`Configuration Fragments <Configuration Fragment>` are
220 :term:`Built-in Fragments <Built-in Fragment>` which are used to assign
221 a single variable value globally.
222
223 A fragment :term:`configuration file` must contain a summary
224 (:term:`BB_CONF_FRAGMENT_SUMMARY`) and a description
225 (:term:`BB_CONF_FRAGMENT_DESCRIPTION`) explaining the purpose of the
226 fragment.
227
228 In :term:`OpenEmbedded-Core (OE-Core)`, the location of fragments and what
229 variables are required in a fragment is specified in :oe_git:`bitbake.conf
230 </openembedded-core/tree/meta/conf/bitbake.conf>` thanks to the
231 :ref:`addfragments <bitbake-user-manual/bitbake-user-manual-metadata:\`\`addfragments\`\`
232 directive>` directive and the :term:`OE_FRAGMENTS`,
233 :term:`OE_FRAGMENTS_METADATA_VARS` and :term:`OE_FRAGMENTS_BUILTIN`
234 variables.
235
236 Fragments can be listed, enabled and disabled with the
237 :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`
238 command-line utility.
239
240 For more details on fragments, see:
241
242 - The :doc:`/ref-manual/fragments` section of the Yocto Project Reference
243 Manual for a list of fragments the :term:`OpenEmbedded Build System`
244 supports, and a quick reference guide on how to manage fragments.
245
246 - The :doc:`/dev-manual/creating-fragments` section of the Yocto Project
247 Development Tasks Manual for details on how to create new fragments
248 in your build.
157 249
158 :term:`Container Layer` 250 :term:`Container Layer`
159 A flexible definition that typically refers to a single Git checkout 251 A flexible definition that typically refers to a single Git checkout
diff --git a/documentation/ref-manual/variables.rst b/documentation/ref-manual/variables.rst
index 18ead7d046..1d4ec413ca 100644
--- a/documentation/ref-manual/variables.rst
+++ b/documentation/ref-manual/variables.rst
@@ -397,6 +397,18 @@ system and gives an overview of their function and contents.
397 :term:`BB_CHECK_SSL_CERTS` 397 :term:`BB_CHECK_SSL_CERTS`
398 See :term:`bitbake:BB_CHECK_SSL_CERTS` in the BitBake manual. 398 See :term:`bitbake:BB_CHECK_SSL_CERTS` in the BitBake manual.
399 399
400 :term:`BB_CONF_FRAGMENT_DESCRIPTION`
401 The :term:`BB_CONF_FRAGMENT_DESCRIPTION` variable defines the textual
402 description of a :term:`Configuration Fragment`. For details on how to use
403 fragments, see the :doc:`/ref-manual/fragments` section of the Yocto
404 Project Reference Manual.
405
406 :term:`BB_CONF_FRAGMENT_SUMMARY`
407 The :term:`BB_CONF_FRAGMENT_SUMMARY` variable defines the one-line textual
408 summary of a :term:`Configuration Fragment`. For details on how to use
409 fragments, see the :doc:`/ref-manual/fragments` section of the Yocto
410 Project Reference Manual.
411
400 :term:`BB_CONSOLELOG` 412 :term:`BB_CONSOLELOG`
401 See :term:`bitbake:BB_CONSOLELOG` in the BitBake manual. 413 See :term:`bitbake:BB_CONSOLELOG` in the BitBake manual.
402 414
@@ -4892,8 +4904,7 @@ system and gives an overview of their function and contents.
4892 would place patch files and configuration fragment files (i.e. 4904 would place patch files and configuration fragment files (i.e.
4893 "out-of-tree"). However, if you want to use a ``defconfig`` file that 4905 "out-of-tree"). However, if you want to use a ``defconfig`` file that
4894 is part of the kernel tree (i.e. "in-tree"), you can use the 4906 is part of the kernel tree (i.e. "in-tree"), you can use the
4895 :term:`KBUILD_DEFCONFIG` variable and append the 4907 :term:`KBUILD_DEFCONFIG` variable to point to the
4896 :term:`KMACHINE` variable to point to the
4897 ``defconfig`` file. 4908 ``defconfig`` file.
4898 4909
4899 To use the variable, set it in the append file for your kernel recipe 4910 To use the variable, set it in the append file for your kernel recipe
@@ -6231,6 +6242,33 @@ system and gives an overview of their function and contents.
6231 :term:`Source Directory` for details on how this class 6242 :term:`Source Directory` for details on how this class
6232 applies these additional sed command arguments. 6243 applies these additional sed command arguments.
6233 6244
6245 :term:`OE_FRAGMENTS`
6246 The :term:`OE_FRAGMENTS` variable holds the list of :term:`Configuration
6247 Fragments <Configuration Fragment>` currently enabled for the build. For
6248 details on how to use fragments, see the :doc:`/ref-manual/fragments`
6249 section of the Yocto Project Reference Manual.
6250
6251 :term:`OE_FRAGMENTS_BUILTIN`
6252 The :term:`OE_FRAGMENTS_BUILTIN` variable holds the list of
6253 :term:`Built-in Fragments <Built-in Fragment>` available for being set with
6254 :oe_git:`bitbake-config-build </bitbake/tree/bin/bitbake-config-build>`.
6255 For details on how to use fragments, see the :doc:`/ref-manual/fragments`
6256 section of the Yocto Project Reference Manual.
6257
6258 :term:`OE_FRAGMENTS_METADATA_VARS`
6259 The :term:`OE_FRAGMENTS_METADATA_VARS` variable holds the list of
6260 variables that are required to set in a standard :term:`Configuration
6261 Fragment` file. In :term:`OpenEmbedded-Core (OE-Core)`, these variables
6262 are :term:`BB_CONF_FRAGMENT_SUMMARY` and
6263 :term:`BB_CONF_FRAGMENT_DESCRIPTION`.
6264
6265 :term:`OE_FRAGMENTS_PREFIX`
6266 The :term:`OE_FRAGMENTS_PREFIX` variable defines the prefix where
6267 :term:`BitBake` tries to locate :term:`Configuration Fragments
6268 <Configuration Fragment>` in :term:`layers <Layer>`. For details on how to
6269 use fragments, see the :doc:`/ref-manual/fragments` section of the Yocto
6270 Project Reference Manual.
6271
6234 :term:`OE_INIT_ENV_SCRIPT` 6272 :term:`OE_INIT_ENV_SCRIPT`
6235 The name of the build environment setup script for the purposes of 6273 The name of the build environment setup script for the purposes of
6236 setting up the environment within the extensible SDK. The default 6274 setting up the environment within the extensible SDK. The default
@@ -9273,7 +9311,7 @@ system and gives an overview of their function and contents.
9273 directory for the build host. 9311 directory for the build host.
9274 9312
9275 :term:`STAGING_DIR` 9313 :term:`STAGING_DIR`
9276 Helps construct the ``recipe-sysroots`` directory, which is used 9314 Helps construct the ``recipe-sysroot*`` directories, which are used
9277 during packaging. 9315 during packaging.
9278 9316
9279 For information on how staging for recipe-specific sysroots occurs, 9317 For information on how staging for recipe-specific sysroots occurs,
diff --git a/documentation/set_versions.py b/documentation/set_versions.py
index b8dd4b1b90..be05ef323f 100755
--- a/documentation/set_versions.py
+++ b/documentation/set_versions.py
@@ -172,7 +172,7 @@ series = [k for k in release_series]
172previousseries = series[series.index(ourseries)+1:] or [""] 172previousseries = series[series.index(ourseries)+1:] or [""]
173lastlts = [k for k in previousseries if k in ltsseries] or "dunfell" 173lastlts = [k for k in previousseries if k in ltsseries] or "dunfell"
174 174
175latestreltag = subprocess.run(["git", "describe", "--abbrev=0", "--tags", "--match", "yocto-*"], capture_output=True, text=True).stdout 175latestreltag = subprocess.run(["git", "describe", "--abbrev=0", "--tags", "--match", "yocto-*"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).stdout
176latestreltag = latestreltag.strip() 176latestreltag = latestreltag.strip()
177if latestreltag: 177if latestreltag:
178 if latestreltag.startswith("yocto-"): 178 if latestreltag.startswith("yocto-"):
diff --git a/documentation/tools/build-docs-container b/documentation/tools/build-docs-container
index 6b4d425434..70e05f295f 100755
--- a/documentation/tools/build-docs-container
+++ b/documentation/tools/build-docs-container
@@ -34,13 +34,16 @@ $0 OCI_IMAGE [make arguments...]
34 OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one 34 OCI_IMAGE is an image:tag of an OCI image hosted on hub.docker.com. It is one
35 of: 35 of:
36 - debian:12 36 - debian:12
37 - fedora:38 37 - debian:13
38 - fedora:39 38 - fedora:39
39 - fedora:40 39 - fedora:40
40 - leap:15.4 40 - fedora:41
41 - fedora:42
41 - leap:15.5 42 - leap:15.5
43 - leap:15.6
42 - ubuntu:22.04 44 - ubuntu:22.04
43 - ubuntu:24.04 45 - ubuntu:24.04
46 - ubuntu:25.04
44 47
45 [make arguments] is one or more argument to pass to the make command of 48 [make arguments] is one or more argument to pass to the make command of
46 documentation/Makefile, see that file for what's supported. This is typically 49 documentation/Makefile, see that file for what's supported. This is typically
@@ -79,21 +82,23 @@ main ()
79 # ;; 82 # ;;
80 # Missing python3-saneyaml 83 # Missing python3-saneyaml
81 # "debian:11"*|\ 84 # "debian:11"*|\
82 "debian:12"*) 85 "debian:12"*|\
86 "debian:13"*)
83 containerfile=Containerfile.debian 87 containerfile=Containerfile.debian
84 docs=ubuntu_docs.sh 88 docs=ubuntu_docs.sh
85 docs_pdf=ubuntu_docs_pdf.sh 89 docs_pdf=ubuntu_docs_pdf.sh
86 ;; 90 ;;
87 "fedora:38"*|\
88 "fedora:39"*|\ 91 "fedora:39"*|\
89 "fedora:40"*) 92 "fedora:40"*|\
93 "fedora:41"*|\
94 "fedora:42"*)
90 containerfile=Containerfile.fedora 95 containerfile=Containerfile.fedora
91 docs=fedora_docs.sh 96 docs=fedora_docs.sh
92 docs_pdf=fedora_docs_pdf.sh 97 docs_pdf=fedora_docs_pdf.sh
93 pip3=pip3_docs.sh 98 pip3=pip3_docs.sh
94 ;; 99 ;;
95 "leap:15.4"*|\ 100 "leap:15.5"*|\
96 "leap:15.5"*) 101 "leap:15.6"*)
97 # Seems like issue with permissions package, c.f. 102 # Seems like issue with permissions package, c.f.
98 # 103 #
99 # Updating /etc/sysconfig/security ... 104 # Updating /etc/sysconfig/security ...
@@ -118,13 +123,11 @@ main ()
118 docs_pdf=opensuse_docs_pdf.sh 123 docs_pdf=opensuse_docs_pdf.sh
119 pip3=pip3_docs.sh 124 pip3=pip3_docs.sh
120 ;; 125 ;;
121 # Missing python3-saneyaml
122 # "ubuntu:18.04"*|\
123 # "ubuntu:20.04"*|\
124 # Cannot fetch packages anymore 126 # Cannot fetch packages anymore
125 # "ubuntu:23.04"*|\ 127 # "ubuntu:23.04"*|\
126 "ubuntu:22.04"*|\ 128 "ubuntu:22.04"*|\
127 "ubuntu:24.04"*) 129 "ubuntu:24.04"*|\
130 "ubuntu:25.04"*)
128 containerfile=Containerfile.ubuntu 131 containerfile=Containerfile.ubuntu
129 docs=ubuntu_docs.sh 132 docs=ubuntu_docs.sh
130 docs_pdf=ubuntu_docs_pdf.sh 133 docs_pdf=ubuntu_docs_pdf.sh
diff --git a/documentation/tools/host_packages_scripts/fedora_essential.sh b/documentation/tools/host_packages_scripts/fedora_essential.sh
index ea14134398..99e5d2c0b0 100644
--- a/documentation/tools/host_packages_scripts/fedora_essential.sh
+++ b/documentation/tools/host_packages_scripts/fedora_essential.sh
@@ -1 +1 @@
sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd sudo dnf install bzip2 ccache chrpath cpio cpp diffstat diffutils file findutils gawk gcc gcc-c++ git glibc-devel glibc-langpack-en gzip hostname libacl make patch perl perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin perl-Text-ParseWords perl-Thread-Queue perl-bignum perl-locale python python3 python3-GitPython python3-jinja2 python3-pexpect python3-pip rpcgen socat tar texinfo unzip wget which xz zstd $([ $(rpm -E %fedora) -ge 42 ] && echo "util-linux-script")