blob: 899e584f91b033d201ff136ef0ee8f7103fecaea [file] [log] [blame]
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001.. SPDX-License-Identifier: CC-BY-2.5
2
3==================
4Variables Glossary
5==================
6
7|
8
9This chapter lists common variables used by BitBake and gives an
10overview of their function and contents.
11
12.. note::
13
14 Following are some points regarding the variables listed in this
15 glossary:
16
17 - The variables listed in this glossary are specific to BitBake.
18 Consequently, the descriptions are limited to that context.
19
20 - Also, variables exist in other systems that use BitBake (e.g. The
21 Yocto Project and OpenEmbedded) that have names identical to those
22 found in this glossary. For such cases, the variables in those
23 systems extend the functionality of the variable as it is
24 described here in this glossary.
25
Andrew Geisslerc9f78652020-09-18 14:11:35 -050026.. glossary::
Patrick Williams213cb262021-08-07 19:21:33 -050027 :sorted:
Andrew Geisslerc9f78652020-09-18 14:11:35 -050028
Andrew Geisslerf0343792020-11-18 10:42:21 -060029 :term:`ASSUME_PROVIDED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050030 Lists recipe names (:term:`PN` values) BitBake does not
31 attempt to build. Instead, BitBake assumes these recipes have already
32 been built.
33
Patrick Williams213cb262021-08-07 19:21:33 -050034 In OpenEmbedded-Core, :term:`ASSUME_PROVIDED` mostly specifies native
Andrew Geisslerc9f78652020-09-18 14:11:35 -050035 tools that should not be built. An example is ``git-native``, which
36 when specified allows for the Git binary from the host to be used
37 rather than building ``git-native``.
38
Andrew Geissler95ac1b82021-03-31 14:34:31 -050039 :term:`AZ_SAS`
40 Azure Storage Shared Access Signature, when using the
41 :ref:`Azure Storage fetcher <bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
42 This variable can be defined to be used by the fetcher to authenticate
Andrew Geissler517393d2023-01-13 08:55:19 -060043 and gain access to non-public artifacts::
Andrew Geissler95ac1b82021-03-31 14:34:31 -050044
45 AZ_SAS = ""se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>""
46
47 For more information see Microsoft's Azure Storage documentation at
48 https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
49
50
Andrew Geisslerf0343792020-11-18 10:42:21 -060051 :term:`B`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050052 The directory in which BitBake executes functions during a recipe's
53 build process.
54
Andrew Geisslerf0343792020-11-18 10:42:21 -060055 :term:`BB_ALLOWED_NETWORKS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050056 Specifies a space-delimited list of hosts that the fetcher is allowed
57 to use to obtain the required source code. Following are
58 considerations surrounding this variable:
59
60 - This host list is only used if
61 :term:`BB_NO_NETWORK` is either not set or
62 set to "0".
63
64 - Limited support for the "``*``" wildcard character for matching
65 against the beginning of host names exists. For example, the
66 following setting matches ``git.gnu.org``, ``ftp.gnu.org``, and
67 ``foo.git.gnu.org``. ::
68
69 BB_ALLOWED_NETWORKS = "\*.gnu.org"
70
71 .. important::
72
73 The use of the "``*``" character only works at the beginning of
74 a host name and it must be isolated from the remainder of the
75 host name. You cannot use the wildcard character in any other
76 location of the name or combined with the front part of the
77 name.
78
79 For example, ``*.foo.bar`` is supported, while ``*aa.foo.bar``
80 is not.
81
82 - Mirrors not in the host list are skipped and logged in debug.
83
84 - Attempts to access networks not in the host list cause a failure.
85
Patrick Williams213cb262021-08-07 19:21:33 -050086 Using :term:`BB_ALLOWED_NETWORKS` in conjunction with
Andrew Geisslerc9f78652020-09-18 14:11:35 -050087 :term:`PREMIRRORS` is very useful. Adding the
Patrick Williams213cb262021-08-07 19:21:33 -050088 host you want to use to :term:`PREMIRRORS` results in the source code
Andrew Geisslerc9f78652020-09-18 14:11:35 -050089 being fetched from an allowed location and avoids raising an error
90 when a host that is not allowed is in a
91 :term:`SRC_URI` statement. This is because the
Patrick Williams213cb262021-08-07 19:21:33 -050092 fetcher does not attempt to use the host listed in :term:`SRC_URI` after
93 a successful fetch from the :term:`PREMIRRORS` occurs.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050094
Andrew Geissler9aee5002022-03-30 16:27:02 +000095 :term:`BB_BASEHASH_IGNORE_VARS`
96 Lists variables that are excluded from checksum and dependency data.
97 Variables that are excluded can therefore change without affecting
98 the checksum mechanism. A common example would be the variable for
99 the path of the build. BitBake's output should not (and usually does
100 not) depend on the directory in which it was built.
101
Patrick Williams8e7b46e2023-05-01 14:19:06 -0500102 :term:`BB_CACHEDIR`
103 Specifies the code parser cache directory (distinct from :term:`CACHE`
104 and :term:`PERSISTENT_DIR` although they can be set to the same value
105 if desired). The default value is "${TOPDIR}/cache".
106
Patrick Williams0ca19cc2021-08-16 14:03:13 -0500107 :term:`BB_CHECK_SSL_CERTS`
108 Specifies if SSL certificates should be checked when fetching. The default
109 value is ``1`` and certificates are not checked if the value is set to ``0``.
110
Patrick Williams8e7b46e2023-05-01 14:19:06 -0500111 :term:`BB_HASH_CODEPARSER_VALS`
112 Specifies values for variables to use when populating the codeparser cache.
113 This can be used selectively to set dummy values for variables to avoid
114 the codeparser cache growing on every parse. Variables that would typically
115 be included are those where the value is not significant for where the
116 codeparser cache is used (i.e. when calculating variable dependencies for
117 code fragments.) The value is space-separated without quoting values, for
118 example::
119
120 BB_HASH_CODEPARSER_VALS = "T=/ WORKDIR=/ DATE=1234 TIME=1234"
121
Andrew Geisslerf0343792020-11-18 10:42:21 -0600122 :term:`BB_CONSOLELOG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500123 Specifies the path to a log file into which BitBake's user interface
124 writes output during the build.
125
Andrew Geisslerf0343792020-11-18 10:42:21 -0600126 :term:`BB_CURRENTTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500127 Contains the name of the currently running task. The name does not
128 include the ``do_`` prefix.
129
Andrew Geisslerf0343792020-11-18 10:42:21 -0600130 :term:`BB_DANGLINGAPPENDS_WARNONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500131 Defines how BitBake handles situations where an append file
132 (``.bbappend``) has no corresponding recipe file (``.bb``). This
133 condition often occurs when layers get out of sync (e.g. ``oe-core``
134 bumps a recipe version and the old recipe no longer exists and the
135 other layer has not been updated to the new version of the recipe
136 yet).
137
138 The default fatal behavior is safest because it is the sane reaction
139 given something is out of sync. It is important to realize when your
140 changes are no longer being applied.
141
Andrew Geisslerf0343792020-11-18 10:42:21 -0600142 :term:`BB_DEFAULT_TASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500143 The default task to use when none is specified (e.g. with the ``-c``
144 command line option). The task name specified should not include the
145 ``do_`` prefix.
146
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600147 :term:`BB_DEFAULT_UMASK`
148 The default umask to apply to tasks if specified and no task specific
149 umask flag is set.
150
Andrew Geisslerf0343792020-11-18 10:42:21 -0600151 :term:`BB_DISKMON_DIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500152 Monitors disk space and available inodes during the build and allows
153 you to control the build based on these parameters.
154
155 Disk space monitoring is disabled by default. When setting this
Andrew Geisslerc926e172021-05-07 16:11:35 -0500156 variable, use the following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500157
158 BB_DISKMON_DIRS = "<action>,<dir>,<threshold> [...]"
159
160 where:
161
162 <action> is:
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000163 HALT: Immediately halt the build when
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500164 a threshold is broken.
165 STOPTASKS: Stop the build after the currently
166 executing tasks have finished when
167 a threshold is broken.
168 WARN: Issue a warning but continue the
169 build when a threshold is broken.
170 Subsequent warnings are issued as
171 defined by the
172 BB_DISKMON_WARNINTERVAL variable,
173 which must be defined.
174
175 <dir> is:
176 Any directory you choose. You can specify one or
177 more directories to monitor by separating the
178 groupings with a space. If two directories are
179 on the same device, only the first directory
180 is monitored.
181
182 <threshold> is:
183 Either the minimum available disk space,
184 the minimum number of free inodes, or
185 both. You must specify at least one. To
186 omit one or the other, simply omit the value.
187 Specify the threshold using G, M, K for Gbytes,
188 Mbytes, and Kbytes, respectively. If you do
189 not specify G, M, or K, Kbytes is assumed by
190 default. Do not use GB, MB, or KB.
191
Andrew Geisslerc926e172021-05-07 16:11:35 -0500192 Here are some examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500193
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000194 BB_DISKMON_DIRS = "HALT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500195 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000196 BB_DISKMON_DIRS = "HALT,${TMPDIR},,100K"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500197
198 The first example works only if you also set the
199 :term:`BB_DISKMON_WARNINTERVAL`
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000200 variable. This example causes the build system to immediately halt
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500201 when either the disk space in ``${TMPDIR}`` drops below 1 Gbyte or
202 the available free inodes drops below 100 Kbytes. Because two
203 directories are provided with the variable, the build system also
204 issues a warning when the disk space in the ``${SSTATE_DIR}``
205 directory drops below 1 Gbyte or the number of free inodes drops
206 below 100 Kbytes. Subsequent warnings are issued during intervals as
Patrick Williams213cb262021-08-07 19:21:33 -0500207 defined by the :term:`BB_DISKMON_WARNINTERVAL` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500208
209 The second example stops the build after all currently executing
210 tasks complete when the minimum disk space in the ``${TMPDIR}``
211 directory drops below 1 Gbyte. No disk monitoring occurs for the free
212 inodes in this case.
213
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000214 The final example immediately halts the build when the number of
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500215 free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
216 disk space monitoring for the directory itself occurs in this case.
217
Andrew Geisslerf0343792020-11-18 10:42:21 -0600218 :term:`BB_DISKMON_WARNINTERVAL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500219 Defines the disk space and free inode warning intervals.
220
Patrick Williams213cb262021-08-07 19:21:33 -0500221 If you are going to use the :term:`BB_DISKMON_WARNINTERVAL` variable, you
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500222 must also use the :term:`BB_DISKMON_DIRS`
223 variable and define its action as "WARN". During the build,
224 subsequent warnings are issued each time disk space or number of free
225 inodes further reduces by the respective interval.
226
Patrick Williams213cb262021-08-07 19:21:33 -0500227 If you do not provide a :term:`BB_DISKMON_WARNINTERVAL` variable and you
228 do use :term:`BB_DISKMON_DIRS` with the "WARN" action, the disk
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500229 monitoring interval defaults to the following:
230 BB_DISKMON_WARNINTERVAL = "50M,5K"
231
232 When specifying the variable in your configuration file, use the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500233 following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500234
235 BB_DISKMON_WARNINTERVAL = "<disk_space_interval>,<disk_inode_interval>"
236
237 where:
238
239 <disk_space_interval> is:
240 An interval of memory expressed in either
241 G, M, or K for Gbytes, Mbytes, or Kbytes,
242 respectively. You cannot use GB, MB, or KB.
243
244 <disk_inode_interval> is:
245 An interval of free inodes expressed in either
246 G, M, or K for Gbytes, Mbytes, or Kbytes,
247 respectively. You cannot use GB, MB, or KB.
248
Andrew Geisslerc926e172021-05-07 16:11:35 -0500249 Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500250
251 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
252 BB_DISKMON_WARNINTERVAL = "50M,5K"
253
254 These variables cause BitBake to
255 issue subsequent warnings each time the available disk space further
256 reduces by 50 Mbytes or the number of free inodes further reduces by
257 5 Kbytes in the ``${SSTATE_DIR}`` directory. Subsequent warnings
258 based on the interval occur each time a respective interval is
259 reached beyond the initial warning (i.e. 1 Gbytes and 100 Kbytes).
260
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000261 :term:`BB_ENV_PASSTHROUGH`
262 Specifies the internal list of variables to allow through from
Patrick Williams213cb262021-08-07 19:21:33 -0500263 the external environment into BitBake's datastore. If the value of
264 this variable is not specified (which is the default), the following
265 list is used: :term:`BBPATH`, :term:`BB_PRESERVE_ENV`,
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000266 :term:`BB_ENV_PASSTHROUGH`, and :term:`BB_ENV_PASSTHROUGH_ADDITIONS`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500267
268 .. note::
269
270 You must set this variable in the external environment in order
271 for it to work.
272
Andrew Geissler9aee5002022-03-30 16:27:02 +0000273 :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
274 Specifies an additional set of variables to allow through from the
275 external environment into BitBake's datastore. This list of variables
276 are on top of the internal list set in
277 :term:`BB_ENV_PASSTHROUGH`.
278
279 .. note::
280
281 You must set this variable in the external environment in order
282 for it to work.
283
Andrew Geisslerf0343792020-11-18 10:42:21 -0600284 :term:`BB_FETCH_PREMIRRORONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500285 When set to "1", causes BitBake's fetcher module to only search
286 :term:`PREMIRRORS` for files. BitBake will not
287 search the main :term:`SRC_URI` or
288 :term:`MIRRORS`.
289
Andrew Geisslerf0343792020-11-18 10:42:21 -0600290 :term:`BB_FILENAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500291 Contains the filename of the recipe that owns the currently running
292 task. For example, if the ``do_fetch`` task that resides in the
Patrick Williams213cb262021-08-07 19:21:33 -0500293 ``my-recipe.bb`` is executing, the :term:`BB_FILENAME` variable contains
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500294 "/foo/path/my-recipe.bb".
295
Andrew Geisslerf0343792020-11-18 10:42:21 -0600296 :term:`BB_GENERATE_MIRROR_TARBALLS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500297 Causes tarballs of the Git repositories, including the Git metadata,
298 to be placed in the :term:`DL_DIR` directory. Anyone
299 wishing to create a source mirror would want to enable this variable.
300
301 For performance reasons, creating and placing tarballs of the Git
302 repositories is not the default action by BitBake. ::
303
304 BB_GENERATE_MIRROR_TARBALLS = "1"
305
Andrew Geisslereff27472021-10-29 15:35:00 -0500306 :term:`BB_GENERATE_SHALLOW_TARBALLS`
307 Setting this variable to "1" when :term:`BB_GIT_SHALLOW` is also set to
308 "1" causes bitbake to generate shallow mirror tarballs when fetching git
309 repositories. The number of commits included in the shallow mirror
310 tarballs is controlled by :term:`BB_GIT_SHALLOW_DEPTH`.
311
312 If both :term:`BB_GIT_SHALLOW` and :term:`BB_GENERATE_MIRROR_TARBALLS` are
313 enabled, bitbake will generate shallow mirror tarballs by default for git
314 repositories. This separate variable exists so that shallow tarball
315 generation can be enabled without needing to also enable normal mirror
316 generation if it is not desired.
317
318 For example usage, see :term:`BB_GIT_SHALLOW`.
319
320 :term:`BB_GIT_SHALLOW`
321 Setting this variable to "1" enables the support for fetching, using and
322 generating mirror tarballs of `shallow git repositories <https://riptutorial.com/git/example/4584/shallow-clone>`_.
323 The external `git-make-shallow <https://git.openembedded.org/bitbake/tree/bin/git-make-shallow>`_
324 script is used for shallow mirror tarball creation.
325
326 When :term:`BB_GIT_SHALLOW` is enabled, bitbake will attempt to fetch a shallow
327 mirror tarball. If the shallow mirror tarball cannot be fetched, it will
328 try to fetch the full mirror tarball and use that.
329
330 When a mirror tarball is not available, a full git clone will be performed
331 regardless of whether this variable is set or not. Support for shallow
332 clones is not currently implemented as git does not directly support
333 shallow cloning a particular git commit hash (it only supports cloning
334 from a tag or branch reference).
335
336 See also :term:`BB_GIT_SHALLOW_DEPTH` and
337 :term:`BB_GENERATE_SHALLOW_TARBALLS`.
338
339 Example usage::
340
341 BB_GIT_SHALLOW ?= "1"
342
343 # Keep only the top commit
344 BB_GIT_SHALLOW_DEPTH ?= "1"
345
346 # This defaults to enabled if both BB_GIT_SHALLOW and
347 # BB_GENERATE_MIRROR_TARBALLS are enabled
348 BB_GENERATE_SHALLOW_TARBALLS ?= "1"
349
350 :term:`BB_GIT_SHALLOW_DEPTH`
351 When used with :term:`BB_GENERATE_SHALLOW_TARBALLS`, this variable sets
352 the number of commits to include in generated shallow mirror tarballs.
353 With a depth of 1, only the commit referenced in :term:`SRCREV` is
354 included in the shallow mirror tarball. Increasing the depth includes
355 additional parent commits, working back through the commit history.
356
357 If this variable is unset, bitbake will default to a depth of 1 when
358 generating shallow mirror tarballs.
359
360 For example usage, see :term:`BB_GIT_SHALLOW`.
361
Patrick Williams8e7b46e2023-05-01 14:19:06 -0500362 :term:`BB_GLOBAL_PYMODULES`
363 Specifies the list of Python modules to place in the global namespace.
364 It is intended that only the core layer should set this and it is meant
365 to be a very small list, typically just ``os`` and ``sys``.
366 :term:`BB_GLOBAL_PYMODULES` is expected to be set before the first
367 ``addpylib`` directive.
368 See also ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:extending python library code`".
369
Andrew Geisslerf0343792020-11-18 10:42:21 -0600370 :term:`BB_HASHCHECK_FUNCTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500371 Specifies the name of the function to call during the "setscene" part
372 of the task's execution in order to validate the list of task hashes.
373 The function returns the list of setscene tasks that should be
374 executed.
375
376 At this point in the execution of the code, the objective is to
377 quickly verify if a given setscene function is likely to work or not.
378 It's easier to check the list of setscene functions in one pass than
379 to call many individual tasks. The returned list need not be
380 completely accurate. A given setscene task can still later fail.
381 However, the more accurate the data returned, the more efficient the
382 build will be.
383
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000384 :term:`BB_HASHCONFIG_IGNORE_VARS`
Patrick Williams213cb262021-08-07 19:21:33 -0500385 Lists variables that are excluded from base configuration checksum,
386 which is used to determine if the cache can be reused.
387
388 One of the ways BitBake determines whether to re-parse the main
389 metadata is through checksums of the variables in the datastore of
390 the base configuration data. There are variables that you typically
391 want to exclude when checking whether or not to re-parse and thus
392 rebuild the cache. As an example, you would usually exclude ``TIME``
393 and ``DATE`` because these variables are always changing. If you did
394 not exclude them, BitBake would never reuse the cache.
395
Andrew Geissler09036742021-06-25 14:25:14 -0500396 :term:`BB_HASHSERVE`
397 Specifies the Hash Equivalence server to use.
398
399 If set to ``auto``, BitBake automatically starts its own server
Andrew Geissler595f6302022-01-24 19:11:47 +0000400 over a UNIX domain socket. An option is to connect this server
401 to an upstream one, by setting :term:`BB_HASHSERVE_UPSTREAM`.
Andrew Geissler09036742021-06-25 14:25:14 -0500402
Andrew Geissler595f6302022-01-24 19:11:47 +0000403 If set to ``unix://path``, BitBake will connect to an existing
404 hash server available over a UNIX domain socket.
405
406 If set to ``host:port``, BitBake will connect to a remote server on the
Andrew Geissler09036742021-06-25 14:25:14 -0500407 specified host. This allows multiple clients to share the same
408 hash equivalence data.
409
Andrew Geissler595f6302022-01-24 19:11:47 +0000410 The remote server can be started manually through
411 the ``bin/bitbake-hashserv`` script provided by BitBake,
412 which supports UNIX domain sockets too. This script also allows
413 to start the server in read-only mode, to avoid accepting
414 equivalences that correspond to Share State caches that are
415 only available on specific clients.
416
417 :term:`BB_HASHSERVE_UPSTREAM`
418 Specifies an upstream Hash Equivalence server.
419
420 This optional setting is only useful when a local Hash Equivalence
421 server is started (setting :term:`BB_HASHSERVE` to ``auto``),
422 and you wish the local server to query an upstream server for
423 Hash Equivalence data.
424
425 Example usage::
426
Patrick Williamsdb4c27e2022-08-05 08:10:29 -0500427 BB_HASHSERVE_UPSTREAM = "hashserv.yocto.io:8687"
Andrew Geissler595f6302022-01-24 19:11:47 +0000428
Andrew Geisslerf0343792020-11-18 10:42:21 -0600429 :term:`BB_INVALIDCONF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500430 Used in combination with the ``ConfigParsed`` event to trigger
431 re-parsing the base metadata (i.e. all the recipes). The
432 ``ConfigParsed`` event can set the variable to trigger the re-parse.
433 You must be careful to avoid recursive loops with this functionality.
434
Patrick Williams44b3caf2024-04-12 16:51:14 -0500435 :term:`BB_LOADFACTOR_MAX`
436 Setting this to a value will cause BitBake to check the system load
437 average before executing new tasks. If the load average is above the
438 the number of CPUs multipled by this factor, no new task will be started
439 unless there is no task executing. A value of "1.5" has been found to
440 work reasonably. This is helpful for systems which don't have pressure
441 regulation enabled, which is more granular. Pressure values take
442 precedence over loadfactor.
443
Andrew Geisslerf0343792020-11-18 10:42:21 -0600444 :term:`BB_LOGCONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500445 Specifies the name of a config file that contains the user logging
446 configuration. See
447 :ref:`bitbake-user-manual/bitbake-user-manual-execution:logging`
448 for additional information
449
Andrew Geisslerf0343792020-11-18 10:42:21 -0600450 :term:`BB_LOGFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500451 Specifies the name of the log files saved into
Patrick Williams213cb262021-08-07 19:21:33 -0500452 ``${``\ :term:`T`\ ``}``. By default, the :term:`BB_LOGFMT`
Andrew Geissler5199d832021-09-24 16:47:35 -0500453 variable is undefined and the log filenames get created using the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500454 following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500455
456 log.{task}.{pid}
457
458 If you want to force log files to take a specific name, you can set this
459 variable in a configuration file.
460
Andrew Geissler9aee5002022-03-30 16:27:02 +0000461 :term:`BB_MULTI_PROVIDER_ALLOWED`
462 Allows you to suppress BitBake warnings caused when building two
463 separate recipes that provide the same output.
464
465 BitBake normally issues a warning when building two different recipes
466 where each provides the same output. This scenario is usually
467 something the user does not want. However, cases do exist where it
468 makes sense, particularly in the ``virtual/*`` namespace. You can use
469 this variable to suppress BitBake's warnings.
470
471 To use the variable, list provider names (e.g. recipe names,
472 ``virtual/kernel``, and so forth).
473
Andrew Geisslerf0343792020-11-18 10:42:21 -0600474 :term:`BB_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500475 Allows BitBake to run at a specific priority (i.e. nice level).
476 System permissions usually mean that BitBake can reduce its priority
477 but not raise it again. See :term:`BB_TASK_NICE_LEVEL` for
478 additional information.
479
Andrew Geisslerf0343792020-11-18 10:42:21 -0600480 :term:`BB_NO_NETWORK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500481 Disables network access in the BitBake fetcher modules. With this
482 access disabled, any command that attempts to access the network
483 becomes an error.
484
485 Disabling network access is useful for testing source mirrors,
486 running builds when not connected to the Internet, and when operating
487 in certain kinds of firewall environments.
488
Patrick Williams213cb262021-08-07 19:21:33 -0500489 :term:`BB_NUMBER_PARSE_THREADS`
490 Sets the number of threads BitBake uses when parsing. By default, the
491 number of threads is equal to the number of cores on the system.
492
Andrew Geisslerf0343792020-11-18 10:42:21 -0600493 :term:`BB_NUMBER_THREADS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500494 The maximum number of tasks BitBake should run in parallel at any one
495 time. If your host development system supports multiple cores, a good
496 rule of thumb is to set this variable to twice the number of cores.
497
Andrew Geisslerf0343792020-11-18 10:42:21 -0600498 :term:`BB_ORIGENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500499 Contains a copy of the original external environment in which BitBake
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000500 was run. The copy is taken before any variable values configured to
501 pass through from the external environment are filtered into BitBake's
502 datastore.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500503
504 .. note::
505
506 The contents of this variable is a datastore object that can be
507 queried using the normal datastore operations.
508
Andrew Geisslerf0343792020-11-18 10:42:21 -0600509 :term:`BB_PRESERVE_ENV`
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000510 Disables environment filtering and instead allows all variables through
511 from the external environment into BitBake's datastore.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500512
513 .. note::
514
515 You must set this variable in the external environment in order
516 for it to work.
517
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500518 :term:`BB_PRESSURE_MAX_CPU`
Patrick Williams2390b1b2022-11-03 13:47:49 -0500519 Specifies a maximum CPU pressure threshold, above which BitBake's
520 scheduler will not start new tasks (providing there is at least
521 one active task). If no value is set, CPU pressure is not
522 monitored when starting tasks.
523
524 The pressure data is calculated based upon what Linux kernels since
525 version 4.20 expose under ``/proc/pressure``. The threshold represents
526 the difference in "total" pressure from the previous second. The
527 minimum value is 1.0 (extremely slow builds) and the maximum is
528 1000000 (a pressure value unlikely to ever be reached).
529
530 This threshold can be set in ``conf/local.conf`` as::
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500531
532 BB_PRESSURE_MAX_CPU = "500"
533
534 :term:`BB_PRESSURE_MAX_IO`
Patrick Williams2390b1b2022-11-03 13:47:49 -0500535 Specifies a maximum I/O pressure threshold, above which BitBake's
536 scheduler will not start new tasks (providing there is at least
537 one active task). If no value is set, I/O pressure is not
538 monitored when starting tasks.
539
540 The pressure data is calculated based upon what Linux kernels since
541 version 4.20 expose under ``/proc/pressure``. The threshold represents
542 the difference in "total" pressure from the previous second. The
543 minimum value is 1.0 (extremely slow builds) and the maximum is
544 1000000 (a pressure value unlikely to ever be reached).
545
546 At this point in time, experiments show that IO pressure tends to
547 be short-lived and regulating just the CPU with
548 :term:`BB_PRESSURE_MAX_CPU` can help to reduce it.
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500549
550 :term:`BB_PRESSURE_MAX_MEMORY`
Patrick Williams2390b1b2022-11-03 13:47:49 -0500551
552 Specifies a maximum memory pressure threshold, above which BitBake's
553 scheduler will not start new tasks (providing there is at least
554 one active task). If no value is set, memory pressure is not
555 monitored when starting tasks.
556
557 The pressure data is calculated based upon what Linux kernels since
558 version 4.20 expose under ``/proc/pressure``. The threshold represents
559 the difference in "total" pressure from the previous second. The
560 minimum value is 1.0 (extremely slow builds) and the maximum is
561 1000000 (a pressure value unlikely to ever be reached).
562
563 Memory pressure is experienced when time is spent swapping,
564 refaulting pages from the page cache or performing direct reclaim.
565 This is why memory pressure is rarely seen, but setting this variable
566 might be useful as a last resort to prevent OOM errors if they are
567 occurring during builds.
Andrew Geissler87f5cff2022-09-30 13:13:31 -0500568
Andrew Geisslerf0343792020-11-18 10:42:21 -0600569 :term:`BB_RUNFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500570 Specifies the name of the executable script files (i.e. run files)
571 saved into ``${``\ :term:`T`\ ``}``. By default, the
Andrew Geissler5199d832021-09-24 16:47:35 -0500572 :term:`BB_RUNFMT` variable is undefined and the run filenames get
Andrew Geisslerc926e172021-05-07 16:11:35 -0500573 created using the following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500574
Patrick Williams8e7b46e2023-05-01 14:19:06 -0500575 run.{func}.{pid}
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500576
577 If you want to force run files to take a specific name, you can set this
578 variable in a configuration file.
579
Andrew Geisslerf0343792020-11-18 10:42:21 -0600580 :term:`BB_RUNTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500581 Contains the name of the currently executing task. The value includes
582 the "do\_" prefix. For example, if the currently executing task is
583 ``do_config``, the value is "do_config".
584
Andrew Geisslerf0343792020-11-18 10:42:21 -0600585 :term:`BB_SCHEDULER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500586 Selects the name of the scheduler to use for the scheduling of
587 BitBake tasks. Three options exist:
588
Andrew Geissler9aee5002022-03-30 16:27:02 +0000589 - *basic* --- the basic framework from which everything derives. Using
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500590 this option causes tasks to be ordered numerically as they are
591 parsed.
592
Andrew Geissler9aee5002022-03-30 16:27:02 +0000593 - *speed* --- executes tasks first that have more tasks depending on
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500594 them. The "speed" option is the default.
595
Andrew Geissler9aee5002022-03-30 16:27:02 +0000596 - *completion* --- causes the scheduler to try to complete a given
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500597 recipe once its build has started.
598
Andrew Geisslerf0343792020-11-18 10:42:21 -0600599 :term:`BB_SCHEDULERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500600 Defines custom schedulers to import. Custom schedulers need to be
601 derived from the ``RunQueueScheduler`` class.
602
603 For information how to select a scheduler, see the
604 :term:`BB_SCHEDULER` variable.
605
Andrew Geisslerf0343792020-11-18 10:42:21 -0600606 :term:`BB_SETSCENE_DEPVALID`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500607 Specifies a function BitBake calls that determines whether BitBake
608 requires a setscene dependency to be met.
609
610 When running a setscene task, BitBake needs to know which
611 dependencies of that setscene task also need to be run. Whether
612 dependencies also need to be run is highly dependent on the metadata.
613 The function specified by this variable returns a "True" or "False"
614 depending on whether the dependency needs to be met.
615
Andrew Geisslerf0343792020-11-18 10:42:21 -0600616 :term:`BB_SIGNATURE_EXCLUDE_FLAGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500617 Lists variable flags (varflags) that can be safely excluded from
618 checksum and dependency data for keys in the datastore. When
619 generating checksum or dependency data for keys in the datastore, the
620 flags set against that key are normally included in the checksum.
621
622 For more information on varflags, see the
623 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`"
624 section.
625
Andrew Geisslerf0343792020-11-18 10:42:21 -0600626 :term:`BB_SIGNATURE_HANDLER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500627 Defines the name of the signature handler BitBake uses. The signature
628 handler defines the way stamp files are created and handled, if and
629 how the signature is incorporated into the stamps, and how the
630 signature itself is generated.
631
632 A new signature handler can be added by injecting a class derived
633 from the ``SignatureGenerator`` class into the global namespace.
634
Andrew Geisslerf0343792020-11-18 10:42:21 -0600635 :term:`BB_SRCREV_POLICY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500636 Defines the behavior of the fetcher when it interacts with source
637 control systems and dynamic source revisions. The
Patrick Williams213cb262021-08-07 19:21:33 -0500638 :term:`BB_SRCREV_POLICY` variable is useful when working without a
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500639 network.
640
641 The variable can be set using one of two policies:
642
Andrew Geissler9aee5002022-03-30 16:27:02 +0000643 - *cache* --- retains the value the system obtained previously rather
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500644 than querying the source control system each time.
645
Andrew Geissler9aee5002022-03-30 16:27:02 +0000646 - *clear* --- queries the source controls system every time. With this
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500647 policy, there is no cache. The "clear" policy is the default.
648
Andrew Geisslerf0343792020-11-18 10:42:21 -0600649 :term:`BB_STRICT_CHECKSUM`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500650 Sets a more strict checksum mechanism for non-local URLs. Setting
651 this variable to a value causes BitBake to report an error if it
652 encounters a non-local URL that does not have at least one checksum
653 specified.
654
Andrew Geisslerf0343792020-11-18 10:42:21 -0600655 :term:`BB_TASK_IONICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500656 Allows adjustment of a task's Input/Output priority. During
657 Autobuilder testing, random failures can occur for tasks due to I/O
658 starvation. These failures occur during various QEMU runtime
Patrick Williams213cb262021-08-07 19:21:33 -0500659 timeouts. You can use the :term:`BB_TASK_IONICE_LEVEL` variable to adjust
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500660 the I/O priority of these tasks.
661
662 .. note::
663
664 This variable works similarly to the :term:`BB_TASK_NICE_LEVEL`
665 variable except with a task's I/O priorities.
666
Andrew Geisslerc926e172021-05-07 16:11:35 -0500667 Set the variable as follows::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500668
669 BB_TASK_IONICE_LEVEL = "class.prio"
670
671 For *class*, the default value is "2", which is a best effort. You can use
672 "1" for realtime and "3" for idle. If you want to use realtime, you
673 must have superuser privileges.
674
675 For *prio*, you can use any value from "0", which is the highest
676 priority, to "7", which is the lowest. The default value is "4". You
677 do not need any special privileges to use this range of priority
678 values.
679
680 .. note::
681
682 In order for your I/O priority settings to take effect, you need the
683 Completely Fair Queuing (CFQ) Scheduler selected for the backing block
684 device. To select the scheduler, use the following command form where
Andrew Geisslerc926e172021-05-07 16:11:35 -0500685 device is the device (e.g. sda, sdb, and so forth)::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500686
Andrew Geisslerf0343792020-11-18 10:42:21 -0600687 $ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500688
Andrew Geisslerf0343792020-11-18 10:42:21 -0600689 :term:`BB_TASK_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500690 Allows specific tasks to change their priority (i.e. nice level).
691
692 You can use this variable in combination with task overrides to raise
693 or lower priorities of specific tasks. For example, on the `Yocto
Andrew Geisslereff27472021-10-29 15:35:00 -0500694 Project <https://www.yoctoproject.org>`__ autobuilder, QEMU emulation
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500695 in images is given a higher priority as compared to build tasks to
696 ensure that images do not suffer timeouts on loaded systems.
697
Andrew Geisslerf0343792020-11-18 10:42:21 -0600698 :term:`BB_TASKHASH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500699 Within an executing task, this variable holds the hash of the task as
700 returned by the currently enabled signature generator.
701
Andrew Geisslerf0343792020-11-18 10:42:21 -0600702 :term:`BB_VERBOSE_LOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500703 Controls how verbose BitBake is during builds. If set, shell scripts
704 echo commands and shell script output appears on standard out
705 (stdout).
706
Andrew Geisslerf0343792020-11-18 10:42:21 -0600707 :term:`BB_WORKERCONTEXT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500708 Specifies if the current context is executing a task. BitBake sets
709 this variable to "1" when a task is being executed. The value is not
710 set when the task is in server context during parsing or event
711 handling.
712
Andrew Geisslerf0343792020-11-18 10:42:21 -0600713 :term:`BBCLASSEXTEND`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500714 Allows you to extend a recipe so that it builds variants of the
715 software. Some examples of these variants for recipes from the
716 OpenEmbedded-Core metadata are "natives" such as ``quilt-native``,
717 which is a copy of Quilt built to run on the build system; "crosses"
718 such as ``gcc-cross``, which is a compiler built to run on the build
719 machine but produces binaries that run on the target ``MACHINE``;
720 "nativesdk", which targets the SDK machine instead of ``MACHINE``;
721 and "mulitlibs" in the form "``multilib:``\ multilib_name".
722
723 To build a different variant of the recipe with a minimal amount of
724 code, it usually is as simple as adding the variable to your recipe.
725 Here are two examples. The "native" variants are from the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500726 OpenEmbedded-Core metadata::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500727
728 BBCLASSEXTEND =+ "native nativesdk"
729 BBCLASSEXTEND =+ "multilib:multilib_name"
730
731 .. note::
732
Patrick Williams213cb262021-08-07 19:21:33 -0500733 Internally, the :term:`BBCLASSEXTEND` mechanism generates recipe
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500734 variants by rewriting variable values and applying overrides such
735 as ``_class-native``. For example, to generate a native version of
736 a recipe, a :term:`DEPENDS` on "foo" is
Patrick Williams213cb262021-08-07 19:21:33 -0500737 rewritten to a :term:`DEPENDS` on "foo-native".
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500738
Patrick Williams213cb262021-08-07 19:21:33 -0500739 Even when using :term:`BBCLASSEXTEND`, the recipe is only parsed once.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500740 Parsing once adds some limitations. For example, it is not
741 possible to include a different file depending on the variant,
742 since ``include`` statements are processed when the recipe is
743 parsed.
744
Andrew Geisslerf0343792020-11-18 10:42:21 -0600745 :term:`BBDEBUG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500746 Sets the BitBake debug output level to a specific value as
747 incremented by the ``-D`` command line option.
748
749 .. note::
750
751 You must set this variable in the external environment in order
752 for it to work.
753
Andrew Geisslerf0343792020-11-18 10:42:21 -0600754 :term:`BBFILE_COLLECTIONS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500755 Lists the names of configured layers. These names are used to find
756 the other ``BBFILE_*`` variables. Typically, each layer appends its
757 name to this variable in its ``conf/layer.conf`` file.
758
Andrew Geisslerf0343792020-11-18 10:42:21 -0600759 :term:`BBFILE_PATTERN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500760 Variable that expands to match files from
761 :term:`BBFILES` in a particular layer. This
762 variable is used in the ``conf/layer.conf`` file and must be suffixed
763 with the name of the specific layer (e.g.
764 ``BBFILE_PATTERN_emenlow``).
765
Andrew Geisslerf0343792020-11-18 10:42:21 -0600766 :term:`BBFILE_PRIORITY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500767 Assigns the priority for recipe files in each layer.
768
769 This variable is useful in situations where the same recipe appears
770 in more than one layer. Setting this variable allows you to
771 prioritize a layer against other layers that contain the same recipe
Andrew Geissler9aee5002022-03-30 16:27:02 +0000772 --- effectively letting you control the precedence for the multiple
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500773 layers. The precedence established through this variable stands
774 regardless of a recipe's version (:term:`PV` variable).
Patrick Williams213cb262021-08-07 19:21:33 -0500775 For example, a layer that has a recipe with a higher :term:`PV` value but
776 for which the :term:`BBFILE_PRIORITY` is set to have a lower precedence
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500777 still has a lower precedence.
778
Patrick Williams213cb262021-08-07 19:21:33 -0500779 A larger value for the :term:`BBFILE_PRIORITY` variable results in a
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500780 higher precedence. For example, the value 6 has a higher precedence
Patrick Williams213cb262021-08-07 19:21:33 -0500781 than the value 5. If not specified, the :term:`BBFILE_PRIORITY` variable
782 is set based on layer dependencies (see the :term:`LAYERDEPENDS` variable
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500783 for more information. The default priority, if unspecified for a
784 layer with no dependencies, is the lowest defined priority + 1 (or 1
785 if no priorities are defined).
786
787 .. tip::
788
789 You can use the command bitbake-layers show-layers to list all
790 configured layers along with their priorities.
791
Andrew Geisslerf0343792020-11-18 10:42:21 -0600792 :term:`BBFILES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500793 A space-separated list of recipe files BitBake uses to build
794 software.
795
796 When specifying recipe files, you can pattern match using Python's
797 `glob <https://docs.python.org/3/library/glob.html>`_ syntax.
798 For details on the syntax, see the documentation by following the
799 previous link.
800
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500801 :term:`BBFILES_DYNAMIC`
802 Activates content depending on presence of identified layers. You
803 identify the layers by the collections that the layers define.
804
Patrick Williams213cb262021-08-07 19:21:33 -0500805 Use the :term:`BBFILES_DYNAMIC` variable to avoid ``.bbappend`` files whose
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500806 corresponding ``.bb`` file is in a layer that attempts to modify other
807 layers through ``.bbappend`` but does not want to introduce a hard
808 dependency on those other layers.
809
810 Additionally you can prefix the rule with "!" to add ``.bbappend`` and
811 ``.bb`` files in case a layer is not present. Use this avoid hard
812 dependency on those other layers.
813
Patrick Williams213cb262021-08-07 19:21:33 -0500814 Use the following form for :term:`BBFILES_DYNAMIC`::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500815
816 collection_name:filename_pattern
817
818 The following example identifies two collection names and two filename
Andrew Geisslerc926e172021-05-07 16:11:35 -0500819 patterns::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500820
821 BBFILES_DYNAMIC += "\
822 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
823 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
824 "
825
826 When the collection name is prefixed with "!" it will add the file pattern in case
Andrew Geisslerc926e172021-05-07 16:11:35 -0500827 the layer is absent::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500828
829 BBFILES_DYNAMIC += "\
830 !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
831 "
832
833 This next example shows an error message that occurs because invalid
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000834 entries are found, which cause parsing to fail::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500835
836 ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
837 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
838 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
839
Andrew Geisslerf0343792020-11-18 10:42:21 -0600840 :term:`BBINCLUDED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500841 Contains a space-separated list of all of all files that BitBake's
842 parser included during parsing of the current file.
843
Andrew Geisslerf0343792020-11-18 10:42:21 -0600844 :term:`BBINCLUDELOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500845 If set to a value, enables printing the task log when reporting a
846 failed task.
847
Andrew Geisslerf0343792020-11-18 10:42:21 -0600848 :term:`BBINCLUDELOGS_LINES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500849 If :term:`BBINCLUDELOGS` is set, specifies
850 the maximum number of lines from the task log file to print when
Patrick Williams213cb262021-08-07 19:21:33 -0500851 reporting a failed task. If you do not set :term:`BBINCLUDELOGS_LINES`,
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500852 the entire log is printed.
853
Andrew Geisslerf0343792020-11-18 10:42:21 -0600854 :term:`BBLAYERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500855 Lists the layers to enable during the build. This variable is defined
856 in the ``bblayers.conf`` configuration file in the build directory.
Andrew Geisslerc926e172021-05-07 16:11:35 -0500857 Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500858
859 BBLAYERS = " \
860 /home/scottrif/poky/meta \
861 /home/scottrif/poky/meta-yocto \
862 /home/scottrif/poky/meta-yocto-bsp \
863 /home/scottrif/poky/meta-mykernel \
864 "
865
866 This example enables four layers, one of which is a custom, user-defined
867 layer named ``meta-mykernel``.
868
Andrew Geisslerf0343792020-11-18 10:42:21 -0600869 :term:`BBLAYERS_FETCH_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500870 Sets the base location where layers are stored. This setting is used
871 in conjunction with ``bitbake-layers layerindex-fetch`` and tells
872 ``bitbake-layers`` where to place the fetched layers.
873
Andrew Geisslerf0343792020-11-18 10:42:21 -0600874 :term:`BBMASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500875 Prevents BitBake from processing recipes and recipe append files.
876
Patrick Williams213cb262021-08-07 19:21:33 -0500877 You can use the :term:`BBMASK` variable to "hide" these ``.bb`` and
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500878 ``.bbappend`` files. BitBake ignores any recipe or recipe append
879 files that match any of the expressions. It is as if BitBake does not
880 see them at all. Consequently, matching files are not parsed or
881 otherwise used by BitBake.
882
883 The values you provide are passed to Python's regular expression
884 compiler. Consequently, the syntax follows Python's Regular
885 Expression (re) syntax. The expressions are compared against the full
886 paths to the files. For complete syntax information, see Python's
887 documentation at http://docs.python.org/3/library/re.html.
888
889 The following example uses a complete regular expression to tell
890 BitBake to ignore all recipe and recipe append files in the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500891 ``meta-ti/recipes-misc/`` directory::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500892
893 BBMASK = "meta-ti/recipes-misc/"
894
895 If you want to mask out multiple directories or recipes, you can
896 specify multiple regular expression fragments. This next example
Andrew Geisslerc926e172021-05-07 16:11:35 -0500897 masks out multiple directories and individual recipes::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500898
899 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
900 BBMASK += "/meta-oe/recipes-support/"
901 BBMASK += "/meta-foo/.*/openldap"
902 BBMASK += "opencv.*\.bbappend"
903 BBMASK += "lzma"
904
905 .. note::
906
907 When specifying a directory name, use the trailing slash character
908 to ensure you match just that directory name.
909
Andrew Geisslerf0343792020-11-18 10:42:21 -0600910 :term:`BBMULTICONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500911 Enables BitBake to perform multiple configuration builds and lists
912 each separate configuration (multiconfig). You can use this variable
913 to cause BitBake to build multiple targets where each target has a
Patrick Williams213cb262021-08-07 19:21:33 -0500914 separate configuration. Define :term:`BBMULTICONFIG` in your
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500915 ``conf/local.conf`` configuration file.
916
917 As an example, the following line specifies three multiconfigs, each
Andrew Geisslerc926e172021-05-07 16:11:35 -0500918 having a separate configuration file::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500919
920 BBMULTIFONFIG = "configA configB configC"
921
922 Each configuration file you use must reside in the
923 build directory within a directory named ``conf/multiconfig`` (e.g.
924 build_directory\ ``/conf/multiconfig/configA.conf``).
925
Patrick Williams213cb262021-08-07 19:21:33 -0500926 For information on how to use :term:`BBMULTICONFIG` in an environment
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500927 that supports building targets with multiple configurations, see the
928 ":ref:`bitbake-user-manual/bitbake-user-manual-intro:executing a multiple configuration build`"
929 section.
930
Andrew Geisslerf0343792020-11-18 10:42:21 -0600931 :term:`BBPATH`
Patrick Williams520786c2023-06-25 16:20:36 -0500932 A colon-separated list used by BitBake to locate class (``.bbclass``)
933 and configuration (``.conf``) files. This variable is analogous to the
934 ``PATH`` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500935
936 If you run BitBake from a directory outside of the build directory,
Patrick Williams213cb262021-08-07 19:21:33 -0500937 you must be sure to set :term:`BBPATH` to point to the build directory.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500938 Set the variable as you would any environment variable and then run
Andrew Geisslerc926e172021-05-07 16:11:35 -0500939 BitBake::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500940
941 $ BBPATH="build_directory"
942 $ export BBPATH
943 $ bitbake target
944
Andrew Geisslerf0343792020-11-18 10:42:21 -0600945 :term:`BBSERVER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500946 Points to the server that runs memory-resident BitBake. The variable
947 is only used when you employ memory-resident BitBake.
948
Andrew Geisslerf0343792020-11-18 10:42:21 -0600949 :term:`BBTARGETS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500950 Allows you to use a configuration file to add to the list of
951 command-line target recipes you want to build.
952
Andrew Geisslerf0343792020-11-18 10:42:21 -0600953 :term:`BITBAKE_UI`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500954 Used to specify the UI module to use when running BitBake. Using this
955 variable is equivalent to using the ``-u`` command-line option.
956
957 .. note::
958
959 You must set this variable in the external environment in order
960 for it to work.
961
Andrew Geisslerf0343792020-11-18 10:42:21 -0600962 :term:`BUILDNAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500963 A name assigned to the build. The name defaults to a datetime stamp
964 of when the build was started but can be defined by the metadata.
965
Andrew Geisslerf0343792020-11-18 10:42:21 -0600966 :term:`BZRDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500967 The directory in which files checked out of a Bazaar system are
968 stored.
969
Andrew Geisslerf0343792020-11-18 10:42:21 -0600970 :term:`CACHE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500971 Specifies the directory BitBake uses to store a cache of the metadata
972 so it does not need to be parsed every time BitBake is started.
973
Andrew Geisslerf0343792020-11-18 10:42:21 -0600974 :term:`CVSDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500975 The directory in which files checked out under the CVS system are
976 stored.
977
Andrew Geisslerf0343792020-11-18 10:42:21 -0600978 :term:`DEFAULT_PREFERENCE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500979 Specifies a weak bias for recipe selection priority.
980
981 The most common usage of this is variable is to set it to "-1" within
982 a recipe for a development version of a piece of software. Using the
983 variable in this way causes the stable version of the recipe to build
Patrick Williams213cb262021-08-07 19:21:33 -0500984 by default in the absence of :term:`PREFERRED_VERSION` being used to
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500985 build the development version.
986
987 .. note::
988
989 The bias provided by DEFAULT_PREFERENCE is weak and is overridden by
990 :term:`BBFILE_PRIORITY` if that variable is different between two
991 layers that contain different versions of the same recipe.
992
Andrew Geisslerf0343792020-11-18 10:42:21 -0600993 :term:`DEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500994 Lists a recipe's build-time dependencies (i.e. other recipe files).
995
996 Consider this simple example for two recipes named "a" and "b" that
Patrick Williams213cb262021-08-07 19:21:33 -0500997 produce similarly named packages. In this example, the :term:`DEPENDS`
Andrew Geisslerc926e172021-05-07 16:11:35 -0500998 statement appears in the "a" recipe::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500999
1000 DEPENDS = "b"
1001
1002 Here, the dependency is such that the ``do_configure`` task for recipe "a"
1003 depends on the ``do_populate_sysroot`` task of recipe "b". This means
1004 anything that recipe "b" puts into sysroot is available when recipe "a" is
1005 configuring itself.
1006
1007 For information on runtime dependencies, see the :term:`RDEPENDS`
1008 variable.
1009
Andrew Geisslerf0343792020-11-18 10:42:21 -06001010 :term:`DESCRIPTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001011 A long description for the recipe.
1012
Andrew Geisslerf0343792020-11-18 10:42:21 -06001013 :term:`DL_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001014 The central download directory used by the build process to store
Patrick Williams213cb262021-08-07 19:21:33 -05001015 downloads. By default, :term:`DL_DIR` gets files suitable for mirroring for
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001016 everything except Git repositories. If you want tarballs of Git
1017 repositories, use the :term:`BB_GENERATE_MIRROR_TARBALLS` variable.
1018
Andrew Geisslerf0343792020-11-18 10:42:21 -06001019 :term:`EXCLUDE_FROM_WORLD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001020 Directs BitBake to exclude a recipe from world builds (i.e.
1021 ``bitbake world``). During world builds, BitBake locates, parses and
1022 builds all recipes found in every layer exposed in the
1023 ``bblayers.conf`` configuration file.
1024
1025 To exclude a recipe from a world build using this variable, set the
Andrew Geisslerfc113ea2023-03-31 09:59:46 -05001026 variable to "1" in the recipe. Set it to "0" to add it back to world build.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001027
1028 .. note::
1029
Patrick Williams213cb262021-08-07 19:21:33 -05001030 Recipes added to :term:`EXCLUDE_FROM_WORLD` may still be built during a world
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001031 build in order to satisfy dependencies of other recipes. Adding a
Patrick Williams213cb262021-08-07 19:21:33 -05001032 recipe to :term:`EXCLUDE_FROM_WORLD` only ensures that the recipe is not
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001033 explicitly added to the list of build targets in a world build.
1034
Andrew Geisslerf0343792020-11-18 10:42:21 -06001035 :term:`FAKEROOT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001036 Contains the command to use when running a shell script in a fakeroot
Patrick Williams213cb262021-08-07 19:21:33 -05001037 environment. The :term:`FAKEROOT` variable is obsolete and has been
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001038 replaced by the other ``FAKEROOT*`` variables. See these entries in
1039 the glossary for more information.
1040
Andrew Geisslerf0343792020-11-18 10:42:21 -06001041 :term:`FAKEROOTBASEENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001042 Lists environment variables to set when executing the command defined
1043 by :term:`FAKEROOTCMD` that starts the
1044 bitbake-worker process in the fakeroot environment.
1045
Andrew Geisslerf0343792020-11-18 10:42:21 -06001046 :term:`FAKEROOTCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001047 Contains the command that starts the bitbake-worker process in the
1048 fakeroot environment.
1049
Andrew Geisslerf0343792020-11-18 10:42:21 -06001050 :term:`FAKEROOTDIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001051 Lists directories to create before running a task in the fakeroot
1052 environment.
1053
Andrew Geisslerf0343792020-11-18 10:42:21 -06001054 :term:`FAKEROOTENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001055 Lists environment variables to set when running a task in the
1056 fakeroot environment. For additional information on environment
1057 variables and the fakeroot environment, see the
1058 :term:`FAKEROOTBASEENV` variable.
1059
Andrew Geisslerf0343792020-11-18 10:42:21 -06001060 :term:`FAKEROOTNOENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001061 Lists environment variables to set when running a task that is not in
1062 the fakeroot environment. For additional information on environment
1063 variables and the fakeroot environment, see the
1064 :term:`FAKEROOTENV` variable.
1065
Andrew Geisslerf0343792020-11-18 10:42:21 -06001066 :term:`FETCHCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001067 Defines the command the BitBake fetcher module executes when running
1068 fetch operations. You need to use an override suffix when you use the
1069 variable (e.g. ``FETCHCMD_git`` or ``FETCHCMD_svn``).
1070
Andrew Geisslerf0343792020-11-18 10:42:21 -06001071 :term:`FILE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001072 Points at the current file. BitBake sets this variable during the
1073 parsing process to identify the file being parsed. BitBake also sets
1074 this variable when a recipe is being executed to identify the recipe
1075 file.
1076
Andrew Geisslerf0343792020-11-18 10:42:21 -06001077 :term:`FILESPATH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001078 Specifies directories BitBake uses when searching for patches and
1079 files. The "local" fetcher module uses these directories when
1080 handling ``file://`` URLs. The variable behaves like a shell ``PATH``
1081 environment variable. The value is a colon-separated list of
1082 directories that are searched left-to-right in order.
1083
Patrick Williams520786c2023-06-25 16:20:36 -05001084 :term:`FILE_LAYERNAME`
1085 During parsing and task execution, this is set to the name of the
1086 layer containing the recipe file. Code can use this to identify which
1087 layer a recipe is from.
1088
Andrew Geisslerf0343792020-11-18 10:42:21 -06001089 :term:`GITDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001090 The directory in which a local copy of a Git repository is stored
1091 when it is cloned.
1092
Andrew Geisslerf0343792020-11-18 10:42:21 -06001093 :term:`HGDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001094 The directory in which files checked out of a Mercurial system are
1095 stored.
1096
Andrew Geisslerf0343792020-11-18 10:42:21 -06001097 :term:`HOMEPAGE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001098 Website where more information about the software the recipe is
1099 building can be found.
1100
Andrew Geisslerf0343792020-11-18 10:42:21 -06001101 :term:`INHERIT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001102 Causes the named class or classes to be inherited globally. Anonymous
1103 functions in the class or classes are not executed for the base
1104 configuration and in each individual recipe. The OpenEmbedded build
Patrick Williams213cb262021-08-07 19:21:33 -05001105 system ignores changes to :term:`INHERIT` in individual recipes.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001106
Patrick Williams213cb262021-08-07 19:21:33 -05001107 For more information on :term:`INHERIT`, see the
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001108 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration directive`"
1109 section.
1110
Andrew Geisslerf0343792020-11-18 10:42:21 -06001111 :term:`LAYERDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001112 Lists the layers, separated by spaces, upon which this recipe
1113 depends. Optionally, you can specify a specific layer version for a
1114 dependency by adding it to the end of the layer name with a colon,
1115 (e.g. "anotherlayer:3" to be compared against
1116 :term:`LAYERVERSION`\ ``_anotherlayer`` in
1117 this case). BitBake produces an error if any dependency is missing or
1118 the version numbers do not match exactly (if specified).
1119
1120 You use this variable in the ``conf/layer.conf`` file. You must also
1121 use the specific layer name as a suffix to the variable (e.g.
1122 ``LAYERDEPENDS_mylayer``).
1123
Andrew Geisslerf0343792020-11-18 10:42:21 -06001124 :term:`LAYERDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001125 When used inside the ``layer.conf`` configuration file, this variable
1126 provides the path of the current layer. This variable is not
1127 available outside of ``layer.conf`` and references are expanded
1128 immediately when parsing of the file completes.
1129
Andrew Geisslerf0343792020-11-18 10:42:21 -06001130 :term:`LAYERDIR_RE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001131 When used inside the ``layer.conf`` configuration file, this variable
1132 provides the path of the current layer, escaped for use in a regular
1133 expression (:term:`BBFILE_PATTERN`). This
1134 variable is not available outside of ``layer.conf`` and references
1135 are expanded immediately when parsing of the file completes.
1136
Andrew Geisslerfc113ea2023-03-31 09:59:46 -05001137 :term:`LAYERSERIES_COMPAT`
1138 Lists the versions of the OpenEmbedded-Core (OE-Core) for which
1139 a layer is compatible. Using the :term:`LAYERSERIES_COMPAT` variable
1140 allows the layer maintainer to indicate which combinations of the
1141 layer and OE-Core can be expected to work. The variable gives the
1142 system a way to detect when a layer has not been tested with new
1143 releases of OE-Core (e.g. the layer is not maintained).
1144
1145 To specify the OE-Core versions for which a layer is compatible, use
1146 this variable in your layer's ``conf/layer.conf`` configuration file.
1147 For the list, use the Yocto Project release name (e.g. "kirkstone",
1148 "mickledore"). To specify multiple OE-Core versions for the layer, use
1149 a space-separated list::
1150
1151 LAYERSERIES_COMPAT_layer_root_name = "kirkstone mickledore"
1152
1153 .. note::
1154
1155 Setting :term:`LAYERSERIES_COMPAT` is required by the Yocto Project
1156 Compatible version 2 standard.
1157 The OpenEmbedded build system produces a warning if the variable
1158 is not set for any given layer.
1159
Andrew Geisslerf0343792020-11-18 10:42:21 -06001160 :term:`LAYERVERSION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001161 Optionally specifies the version of a layer as a single number. You
1162 can use this variable within
1163 :term:`LAYERDEPENDS` for another layer in
1164 order to depend on a specific version of the layer.
1165
1166 You use this variable in the ``conf/layer.conf`` file. You must also
1167 use the specific layer name as a suffix to the variable (e.g.
1168 ``LAYERDEPENDS_mylayer``).
1169
Andrew Geisslerf0343792020-11-18 10:42:21 -06001170 :term:`LICENSE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001171 The list of source licenses for the recipe.
1172
Andrew Geisslerf0343792020-11-18 10:42:21 -06001173 :term:`MIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001174 Specifies additional paths from which BitBake gets source code. When
1175 the build system searches for source code, it first tries the local
1176 download directory. If that location fails, the build system tries
1177 locations defined by :term:`PREMIRRORS`, the
Patrick Williams213cb262021-08-07 19:21:33 -05001178 upstream source, and then locations specified by :term:`MIRRORS` in that
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001179 order.
1180
Andrew Geisslerf0343792020-11-18 10:42:21 -06001181 :term:`OVERRIDES`
Patrick Williams520786c2023-06-25 16:20:36 -05001182 A colon-separated list that BitBake uses to control what variables are
1183 overridden after BitBake parses recipes and configuration files.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001184
1185 Following is a simple example that uses an overrides list based on
1186 machine architectures: OVERRIDES = "arm:x86:mips:powerpc" You can
Patrick Williams213cb262021-08-07 19:21:33 -05001187 find information on how to use :term:`OVERRIDES` in the
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001188 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax
1189 (overrides)`" section.
1190
Andrew Geisslerf0343792020-11-18 10:42:21 -06001191 :term:`P4DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001192 The directory in which a local copy of a Perforce depot is stored
1193 when it is fetched.
1194
Andrew Geisslerf0343792020-11-18 10:42:21 -06001195 :term:`PACKAGES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001196 The list of packages the recipe creates.
1197
Andrew Geisslerf0343792020-11-18 10:42:21 -06001198 :term:`PACKAGES_DYNAMIC`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001199 A promise that your recipe satisfies runtime dependencies for
1200 optional modules that are found in other recipes.
Patrick Williams213cb262021-08-07 19:21:33 -05001201 :term:`PACKAGES_DYNAMIC` does not actually satisfy the dependencies, it
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001202 only states that they should be satisfied. For example, if a hard,
1203 runtime dependency (:term:`RDEPENDS`) of another
1204 package is satisfied during the build through the
Patrick Williams213cb262021-08-07 19:21:33 -05001205 :term:`PACKAGES_DYNAMIC` variable, but a package with the module name is
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001206 never actually produced, then the other package will be broken.
1207
Andrew Geisslerf0343792020-11-18 10:42:21 -06001208 :term:`PE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001209 The epoch of the recipe. By default, this variable is unset. The
1210 variable is used to make upgrades possible when the versioning scheme
1211 changes in some backwards incompatible way.
1212
Andrew Geisslerf0343792020-11-18 10:42:21 -06001213 :term:`PERSISTENT_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001214 Specifies the directory BitBake uses to store data that should be
1215 preserved between builds. In particular, the data stored is the data
1216 that uses BitBake's persistent data API and the data used by the PR
1217 Server and PR Service.
1218
Andrew Geisslerf0343792020-11-18 10:42:21 -06001219 :term:`PF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001220 Specifies the recipe or package name and includes all version and
1221 revision numbers (i.e. ``eglibc-2.13-r20+svnr15508/`` and
1222 ``bash-4.2-r1/``).
1223
Andrew Geisslerf0343792020-11-18 10:42:21 -06001224 :term:`PN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001225 The recipe name.
1226
Andrew Geisslerf0343792020-11-18 10:42:21 -06001227 :term:`PR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001228 The revision of the recipe.
1229
Andrew Geisslerf0343792020-11-18 10:42:21 -06001230 :term:`PREFERRED_PROVIDER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001231 Determines which recipe should be given preference when multiple
1232 recipes provide the same item. You should always suffix the variable
1233 with the name of the provided item, and you should set it to the
1234 :term:`PN` of the recipe to which you want to give
Andrew Geisslerc926e172021-05-07 16:11:35 -05001235 precedence. Some examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001236
1237 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1238 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
1239 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
1240
Andrew Geisslerf0343792020-11-18 10:42:21 -06001241 :term:`PREFERRED_PROVIDERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001242 Determines which recipe should be given preference for cases where
1243 multiple recipes provide the same item. Functionally,
Patrick Williams213cb262021-08-07 19:21:33 -05001244 :term:`PREFERRED_PROVIDERS` is identical to
1245 :term:`PREFERRED_PROVIDER`. However, the :term:`PREFERRED_PROVIDERS` variable
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001246 lets you define preferences for multiple situations using the following
Andrew Geisslerc926e172021-05-07 16:11:35 -05001247 form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001248
1249 PREFERRED_PROVIDERS = "xxx:yyy aaa:bbb ..."
1250
Andrew Geisslerc926e172021-05-07 16:11:35 -05001251 This form is a convenient replacement for the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001252
1253 PREFERRED_PROVIDER_xxx = "yyy"
1254 PREFERRED_PROVIDER_aaa = "bbb"
1255
Andrew Geisslerf0343792020-11-18 10:42:21 -06001256 :term:`PREFERRED_VERSION`
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001257 If there are multiple versions of a recipe available, this variable
1258 determines which version should be given preference. You must always
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001259 suffix the variable with the :term:`PN` you want to
1260 select, and you should set :term:`PV` accordingly for
1261 precedence.
1262
Patrick Williams213cb262021-08-07 19:21:33 -05001263 The :term:`PREFERRED_VERSION` variable supports limited wildcard use
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001264 through the "``%``" character. You can use the character to match any
1265 number of characters, which can be useful when specifying versions
1266 that contain long revision numbers that potentially change. Here are
Andrew Geisslerc926e172021-05-07 16:11:35 -05001267 two examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001268
1269 PREFERRED_VERSION_python = "2.7.3"
1270 PREFERRED_VERSION_linux-yocto = "4.12%"
1271
1272 .. important::
1273
1274 The use of the " % " character is limited in that it only works at the
1275 end of the string. You cannot use the wildcard character in any other
1276 location of the string.
1277
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001278 If a recipe with the specified version is not available, a warning
1279 message will be shown. See :term:`REQUIRED_VERSION` if you want this
1280 to be an error instead.
1281
Andrew Geisslerf0343792020-11-18 10:42:21 -06001282 :term:`PREMIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001283 Specifies additional paths from which BitBake gets source code. When
1284 the build system searches for source code, it first tries the local
1285 download directory. If that location fails, the build system tries
Patrick Williams213cb262021-08-07 19:21:33 -05001286 locations defined by :term:`PREMIRRORS`, the upstream source, and then
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001287 locations specified by :term:`MIRRORS` in that order.
1288
1289 Typically, you would add a specific server for the build system to
1290 attempt before any others by adding something like the following to
Andrew Geisslerc926e172021-05-07 16:11:35 -05001291 your configuration::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001292
Patrick Williams213cb262021-08-07 19:21:33 -05001293 PREMIRRORS:prepend = "\
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001294 git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1295 ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1296 http://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1297 https://.*/.* http://downloads.yoctoproject.org/mirror/sources/"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001298
1299 These changes cause the build system to intercept Git, FTP, HTTP, and
1300 HTTPS requests and direct them to the ``http://`` sources mirror. You can
1301 use ``file://`` URLs to point to local directories or network shares as
1302 well.
1303
Andrew Geisslerf0343792020-11-18 10:42:21 -06001304 :term:`PROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001305 A list of aliases by which a particular recipe can be known. By
Patrick Williams213cb262021-08-07 19:21:33 -05001306 default, a recipe's own :term:`PN` is implicitly already in its
1307 :term:`PROVIDES` list. If a recipe uses :term:`PROVIDES`, the additional
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001308 aliases are synonyms for the recipe and can be useful satisfying
1309 dependencies of other recipes during the build as specified by
Patrick Williams213cb262021-08-07 19:21:33 -05001310 :term:`DEPENDS`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001311
Patrick Williams213cb262021-08-07 19:21:33 -05001312 Consider the following example :term:`PROVIDES` statement from a recipe
Andrew Geisslerc926e172021-05-07 16:11:35 -05001313 file ``libav_0.8.11.bb``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001314
1315 PROVIDES += "libpostproc"
1316
Patrick Williams213cb262021-08-07 19:21:33 -05001317 The :term:`PROVIDES` statement results in the "libav" recipe also being known
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001318 as "libpostproc".
1319
1320 In addition to providing recipes under alternate names, the
Patrick Williams213cb262021-08-07 19:21:33 -05001321 :term:`PROVIDES` mechanism is also used to implement virtual targets. A
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001322 virtual target is a name that corresponds to some particular
1323 functionality (e.g. a Linux kernel). Recipes that provide the
Patrick Williams213cb262021-08-07 19:21:33 -05001324 functionality in question list the virtual target in :term:`PROVIDES`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001325 Recipes that depend on the functionality in question can include the
1326 virtual target in :term:`DEPENDS` to leave the
1327 choice of provider open.
1328
1329 Conventionally, virtual targets have names on the form
1330 "virtual/function" (e.g. "virtual/kernel"). The slash is simply part
1331 of the name and has no syntactical significance.
1332
Andrew Geisslerf0343792020-11-18 10:42:21 -06001333 :term:`PRSERV_HOST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001334 The network based :term:`PR` service host and port.
1335
Patrick Williams213cb262021-08-07 19:21:33 -05001336 Following is an example of how the :term:`PRSERV_HOST` variable is set::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001337
1338 PRSERV_HOST = "localhost:0"
1339
1340 You must set the variable if you want to automatically start a local PR
Patrick Williams213cb262021-08-07 19:21:33 -05001341 service. You can set :term:`PRSERV_HOST` to other values to use a remote PR
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001342 service.
1343
Andrew Geisslerf0343792020-11-18 10:42:21 -06001344 :term:`PV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001345 The version of the recipe.
1346
Andrew Geisslerf0343792020-11-18 10:42:21 -06001347 :term:`RDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001348 Lists a package's runtime dependencies (i.e. other packages) that
1349 must be installed in order for the built package to run correctly. If
1350 a package in this list cannot be found during the build, you will get
1351 a build error.
1352
Patrick Williams213cb262021-08-07 19:21:33 -05001353 Because the :term:`RDEPENDS` variable applies to packages being built,
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001354 you should always use the variable in a form with an attached package
1355 name. For example, suppose you are building a development package
1356 that depends on the ``perl`` package. In this case, you would use the
Patrick Williams213cb262021-08-07 19:21:33 -05001357 following :term:`RDEPENDS` statement::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001358
Patrick Williams213cb262021-08-07 19:21:33 -05001359 RDEPENDS:${PN}-dev += "perl"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001360
1361 In the example, the development package depends on the ``perl`` package.
Patrick Williams213cb262021-08-07 19:21:33 -05001362 Thus, the :term:`RDEPENDS` variable has the ``${PN}-dev`` package name as part
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001363 of the variable.
1364
1365 BitBake supports specifying versioned dependencies. Although the
1366 syntax varies depending on the packaging format, BitBake hides these
1367 differences from you. Here is the general syntax to specify versions
Patrick Williams213cb262021-08-07 19:21:33 -05001368 with the :term:`RDEPENDS` variable::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001369
Patrick Williams213cb262021-08-07 19:21:33 -05001370 RDEPENDS:${PN} = "package (operator version)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001371
Andrew Geisslerc926e172021-05-07 16:11:35 -05001372 For ``operator``, you can specify the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001373
1374 =
1375 <
1376 >
1377 <=
1378 >=
1379
1380 For example, the following sets up a dependency on version 1.2 or
Andrew Geisslerc926e172021-05-07 16:11:35 -05001381 greater of the package ``foo``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001382
Patrick Williams213cb262021-08-07 19:21:33 -05001383 RDEPENDS:${PN} = "foo (>= 1.2)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001384
1385 For information on build-time dependencies, see the :term:`DEPENDS`
1386 variable.
1387
Andrew Geisslerf0343792020-11-18 10:42:21 -06001388 :term:`REPODIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001389 The directory in which a local copy of a ``google-repo`` directory is
1390 stored when it is synced.
1391
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001392 :term:`REQUIRED_VERSION`
1393 If there are multiple versions of a recipe available, this variable
Patrick Williams213cb262021-08-07 19:21:33 -05001394 determines which version should be given preference. :term:`REQUIRED_VERSION`
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001395 works in exactly the same manner as :term:`PREFERRED_VERSION`, except
1396 that if the specified version is not available then an error message
1397 is shown and the build fails immediately.
1398
Patrick Williams213cb262021-08-07 19:21:33 -05001399 If both :term:`REQUIRED_VERSION` and :term:`PREFERRED_VERSION` are set for
1400 the same recipe, the :term:`REQUIRED_VERSION` value applies.
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001401
Andrew Geisslerf0343792020-11-18 10:42:21 -06001402 :term:`RPROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001403 A list of package name aliases that a package also provides. These
1404 aliases are useful for satisfying runtime dependencies of other
1405 packages both during the build and on the target (as specified by
Patrick Williams213cb262021-08-07 19:21:33 -05001406 :term:`RDEPENDS`).
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001407
1408 As with all package-controlling variables, you must always use the
1409 variable in conjunction with a package name override. Here is an
Andrew Geisslerc926e172021-05-07 16:11:35 -05001410 example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001411
Patrick Williams213cb262021-08-07 19:21:33 -05001412 RPROVIDES:${PN} = "widget-abi-2"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001413
Andrew Geisslerf0343792020-11-18 10:42:21 -06001414 :term:`RRECOMMENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001415 A list of packages that extends the usability of a package being
1416 built. The package being built does not depend on this list of
1417 packages in order to successfully build, but needs them for the
1418 extended usability. To specify runtime dependencies for packages, see
Patrick Williams213cb262021-08-07 19:21:33 -05001419 the :term:`RDEPENDS` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001420
1421 BitBake supports specifying versioned recommends. Although the syntax
1422 varies depending on the packaging format, BitBake hides these
1423 differences from you. Here is the general syntax to specify versions
Patrick Williams213cb262021-08-07 19:21:33 -05001424 with the :term:`RRECOMMENDS` variable::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001425
Patrick Williams213cb262021-08-07 19:21:33 -05001426 RRECOMMENDS:${PN} = "package (operator version)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001427
Andrew Geisslerc926e172021-05-07 16:11:35 -05001428 For ``operator``, you can specify the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001429
1430 =
1431 <
1432 >
1433 <=
1434 >=
1435
1436 For example, the following sets up a recommend on version
Andrew Geisslerc926e172021-05-07 16:11:35 -05001437 1.2 or greater of the package ``foo``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001438
Patrick Williams213cb262021-08-07 19:21:33 -05001439 RRECOMMENDS:${PN} = "foo (>= 1.2)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001440
Andrew Geisslerf0343792020-11-18 10:42:21 -06001441 :term:`SECTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001442 The section in which packages should be categorized.
1443
Andrew Geisslerf0343792020-11-18 10:42:21 -06001444 :term:`SRC_URI`
Andrew Geissler9aee5002022-03-30 16:27:02 +00001445 The list of source files --- local or remote. This variable tells
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001446 BitBake which bits to pull for the build and how to pull them. For
1447 example, if the recipe or append file needs to fetch a single tarball
Andrew Geissler595f6302022-01-24 19:11:47 +00001448 from the Internet, the recipe or append file uses a :term:`SRC_URI`
1449 entry that specifies that tarball. On the other hand, if the recipe or
1450 append file needs to fetch a tarball, apply two patches, and include
1451 a custom file, the recipe or append file needs an :term:`SRC_URI`
1452 variable that specifies all those sources.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001453
Andrew Geissler595f6302022-01-24 19:11:47 +00001454 The following list explains the available URI protocols. URI
1455 protocols are highly dependent on particular BitBake Fetcher
1456 submodules. Depending on the fetcher BitBake uses, various URL
1457 parameters are employed. For specifics on the supported Fetchers, see
1458 the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`
1459 section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001460
Andrew Geissler9aee5002022-03-30 16:27:02 +00001461 - ``az://``: Fetches files from an Azure Storage account using HTTPS.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001462
Andrew Geissler9aee5002022-03-30 16:27:02 +00001463 - ``bzr://``: Fetches files from a Bazaar revision control
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001464 repository.
1465
Andrew Geissler9aee5002022-03-30 16:27:02 +00001466 - ``ccrc://``: Fetches files from a ClearCase repository.
Andrew Geissler595f6302022-01-24 19:11:47 +00001467
Andrew Geissler9aee5002022-03-30 16:27:02 +00001468 - ``cvs://``: Fetches files from a CVS revision control
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001469 repository.
1470
Andrew Geissler9aee5002022-03-30 16:27:02 +00001471 - ``file://``: Fetches files, which are usually files shipped
Andrew Geissler595f6302022-01-24 19:11:47 +00001472 with the Metadata, from the local machine.
1473 The path is relative to the :term:`FILESPATH`
1474 variable. Thus, the build system searches, in order, from the
1475 following directories, which are assumed to be a subdirectories of
1476 the directory in which the recipe file (``.bb``) or append file
1477 (``.bbappend``) resides:
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001478
Andrew Geissler9aee5002022-03-30 16:27:02 +00001479 - ``${BPN}``: the base recipe name without any special suffix
Andrew Geissler595f6302022-01-24 19:11:47 +00001480 or version numbers.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001481
Andrew Geissler9aee5002022-03-30 16:27:02 +00001482 - ``${BP}`` - ``${BPN}-${PV}``: the base recipe name and
Andrew Geissler595f6302022-01-24 19:11:47 +00001483 version but without any special package name suffix.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001484
Andrew Geissler9aee5002022-03-30 16:27:02 +00001485 - ``files``: files within a directory, which is named ``files``
Andrew Geissler595f6302022-01-24 19:11:47 +00001486 and is also alongside the recipe or append file.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001487
Andrew Geissler9aee5002022-03-30 16:27:02 +00001488 - ``ftp://``: Fetches files from the Internet using FTP.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001489
Andrew Geissler9aee5002022-03-30 16:27:02 +00001490 - ``git://``: Fetches files from a Git revision control
Andrew Geissler595f6302022-01-24 19:11:47 +00001491 repository.
1492
Andrew Geissler9aee5002022-03-30 16:27:02 +00001493 - ``gitsm://``: Fetches submodules from a Git revision control
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001494 repository.
1495
Andrew Geissler9aee5002022-03-30 16:27:02 +00001496 - ``hg://``: Fetches files from a Mercurial (``hg``) revision
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001497 control repository.
1498
Andrew Geissler9aee5002022-03-30 16:27:02 +00001499 - ``http://``: Fetches files from the Internet using HTTP.
Andrew Geissler595f6302022-01-24 19:11:47 +00001500
Andrew Geissler9aee5002022-03-30 16:27:02 +00001501 - ``https://``: Fetches files from the Internet using HTTPS.
Andrew Geissler595f6302022-01-24 19:11:47 +00001502
Andrew Geissler9aee5002022-03-30 16:27:02 +00001503 - ``npm://``: Fetches JavaScript modules from a registry.
Andrew Geissler595f6302022-01-24 19:11:47 +00001504
Andrew Geissler9aee5002022-03-30 16:27:02 +00001505 - ``osc://``: Fetches files from an OSC (OpenSUSE Build service)
Andrew Geissler595f6302022-01-24 19:11:47 +00001506 revision control repository.
1507
Andrew Geissler9aee5002022-03-30 16:27:02 +00001508 - ``p4://``: Fetches files from a Perforce (``p4``) revision
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001509 control repository.
1510
Andrew Geissler9aee5002022-03-30 16:27:02 +00001511 - ``repo://``: Fetches files from a repo (Git) repository.
Andrew Geissler595f6302022-01-24 19:11:47 +00001512
Andrew Geissler9aee5002022-03-30 16:27:02 +00001513 - ``ssh://``: Fetches files from a secure shell.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001514
Andrew Geissler9aee5002022-03-30 16:27:02 +00001515 - ``svn://``: Fetches files from a Subversion (``svn``) revision
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001516 control repository.
1517
1518 Here are some additional options worth mentioning:
1519
Andrew Geissler9aee5002022-03-30 16:27:02 +00001520 - ``downloadfilename``: Specifies the filename used when storing
Andrew Geissler595f6302022-01-24 19:11:47 +00001521 the downloaded file.
1522
Andrew Geissler9aee5002022-03-30 16:27:02 +00001523 - ``name``: Specifies a name to be used for association with
Andrew Geissler595f6302022-01-24 19:11:47 +00001524 :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one
1525 file or git repository specified in :term:`SRC_URI`. For example::
1526
Andrew Geissler9aee5002022-03-30 16:27:02 +00001527 SRC_URI = "git://example.com/foo.git;branch=main;name=first \
1528 git://example.com/bar.git;branch=main;name=second \
Andrew Geissler595f6302022-01-24 19:11:47 +00001529 http://example.com/file.tar.gz;name=third"
1530
1531 SRCREV_first = "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15"
1532 SRCREV_second = "e242ed3bffccdf271b7fbaf34ed72d089537b42f"
1533 SRC_URI[third.sha256sum] = "13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001534
Andrew Geissler9aee5002022-03-30 16:27:02 +00001535 - ``subdir``: Places the file (or extracts its contents) into the
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001536 specified subdirectory. This option is useful for unusual tarballs
1537 or other archives that do not have their files already in a
1538 subdirectory within the archive.
1539
Andrew Geissler9aee5002022-03-30 16:27:02 +00001540 - ``subpath``: Limits the checkout to a specific subpath of the
Andrew Geissler595f6302022-01-24 19:11:47 +00001541 tree when using the Git fetcher is used.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001542
Andrew Geissler9aee5002022-03-30 16:27:02 +00001543 - ``unpack``: Controls whether or not to unpack the file if it is
Andrew Geissler595f6302022-01-24 19:11:47 +00001544 an archive. The default action is to unpack the file.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001545
Andrew Geisslerf0343792020-11-18 10:42:21 -06001546 :term:`SRCDATE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001547 The date of the source code used to build the package. This variable
1548 applies only if the source was fetched from a Source Code Manager
1549 (SCM).
1550
Andrew Geisslerf0343792020-11-18 10:42:21 -06001551 :term:`SRCREV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001552 The revision of the source code used to build the package. This
1553 variable applies only when using Subversion, Git, Mercurial and
1554 Bazaar. If you want to build a fixed revision and you want to avoid
1555 performing a query on the remote repository every time BitBake parses
Patrick Williams213cb262021-08-07 19:21:33 -05001556 your recipe, you should specify a :term:`SRCREV` that is a full revision
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001557 identifier and not just a tag.
1558
Andrew Geisslerf0343792020-11-18 10:42:21 -06001559 :term:`SRCREV_FORMAT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001560 Helps construct valid :term:`SRCREV` values when
1561 multiple source controlled URLs are used in
1562 :term:`SRC_URI`.
1563
1564 The system needs help constructing these values under these
Patrick Williams213cb262021-08-07 19:21:33 -05001565 circumstances. Each component in the :term:`SRC_URI` is assigned a name
1566 and these are referenced in the :term:`SRCREV_FORMAT` variable. Consider
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001567 an example with URLs named "machine" and "meta". In this case,
Patrick Williams213cb262021-08-07 19:21:33 -05001568 :term:`SRCREV_FORMAT` could look like "machine_meta" and those names
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001569 would have the SCM versions substituted into each position. Only one
1570 ``AUTOINC`` placeholder is added and if needed. And, this placeholder
1571 is placed at the start of the returned string.
1572
Andrew Geisslerf0343792020-11-18 10:42:21 -06001573 :term:`STAMP`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001574 Specifies the base path used to create recipe stamp files. The path
1575 to an actual stamp file is constructed by evaluating this string and
1576 then appending additional information.
1577
Andrew Geisslerf0343792020-11-18 10:42:21 -06001578 :term:`STAMPCLEAN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001579 Specifies the base path used to create recipe stamp files. Unlike the
Patrick Williams213cb262021-08-07 19:21:33 -05001580 :term:`STAMP` variable, :term:`STAMPCLEAN` can contain
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001581 wildcards to match the range of files a clean operation should
1582 remove. BitBake uses a clean operation to remove any other stamps it
1583 should be removing when creating a new stamp.
1584
Andrew Geisslerf0343792020-11-18 10:42:21 -06001585 :term:`SUMMARY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001586 A short summary for the recipe, which is 72 characters or less.
1587
Andrew Geisslerf0343792020-11-18 10:42:21 -06001588 :term:`SVNDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001589 The directory in which files checked out of a Subversion system are
1590 stored.
1591
Andrew Geisslerf0343792020-11-18 10:42:21 -06001592 :term:`T`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001593 Points to a directory were BitBake places temporary files, which
1594 consist mostly of task logs and scripts, when building a particular
1595 recipe.
1596
Andrew Geisslerf0343792020-11-18 10:42:21 -06001597 :term:`TOPDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001598 Points to the build directory. BitBake automatically sets this
1599 variable.