blob: 59a9de2fb87cdaab7fbac2083fe2036a60dba2cf [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
43 and gain access to non-public artifacts.
44 ::
45
46 AZ_SAS = ""se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>""
47
48 For more information see Microsoft's Azure Storage documentation at
49 https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
50
51
Andrew Geisslerf0343792020-11-18 10:42:21 -060052 :term:`B`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050053 The directory in which BitBake executes functions during a recipe's
54 build process.
55
Andrew Geisslerf0343792020-11-18 10:42:21 -060056 :term:`BB_ALLOWED_NETWORKS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050057 Specifies a space-delimited list of hosts that the fetcher is allowed
58 to use to obtain the required source code. Following are
59 considerations surrounding this variable:
60
61 - This host list is only used if
62 :term:`BB_NO_NETWORK` is either not set or
63 set to "0".
64
65 - Limited support for the "``*``" wildcard character for matching
66 against the beginning of host names exists. For example, the
67 following setting matches ``git.gnu.org``, ``ftp.gnu.org``, and
68 ``foo.git.gnu.org``. ::
69
70 BB_ALLOWED_NETWORKS = "\*.gnu.org"
71
72 .. important::
73
74 The use of the "``*``" character only works at the beginning of
75 a host name and it must be isolated from the remainder of the
76 host name. You cannot use the wildcard character in any other
77 location of the name or combined with the front part of the
78 name.
79
80 For example, ``*.foo.bar`` is supported, while ``*aa.foo.bar``
81 is not.
82
83 - Mirrors not in the host list are skipped and logged in debug.
84
85 - Attempts to access networks not in the host list cause a failure.
86
Patrick Williams213cb262021-08-07 19:21:33 -050087 Using :term:`BB_ALLOWED_NETWORKS` in conjunction with
Andrew Geisslerc9f78652020-09-18 14:11:35 -050088 :term:`PREMIRRORS` is very useful. Adding the
Patrick Williams213cb262021-08-07 19:21:33 -050089 host you want to use to :term:`PREMIRRORS` results in the source code
Andrew Geisslerc9f78652020-09-18 14:11:35 -050090 being fetched from an allowed location and avoids raising an error
91 when a host that is not allowed is in a
92 :term:`SRC_URI` statement. This is because the
Patrick Williams213cb262021-08-07 19:21:33 -050093 fetcher does not attempt to use the host listed in :term:`SRC_URI` after
94 a successful fetch from the :term:`PREMIRRORS` occurs.
Andrew Geisslerc9f78652020-09-18 14:11:35 -050095
Patrick Williams0ca19cc2021-08-16 14:03:13 -050096 :term:`BB_CHECK_SSL_CERTS`
97 Specifies if SSL certificates should be checked when fetching. The default
98 value is ``1`` and certificates are not checked if the value is set to ``0``.
99
Andrew Geisslerf0343792020-11-18 10:42:21 -0600100 :term:`BB_CONSOLELOG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500101 Specifies the path to a log file into which BitBake's user interface
102 writes output during the build.
103
Andrew Geisslerf0343792020-11-18 10:42:21 -0600104 :term:`BB_CURRENTTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500105 Contains the name of the currently running task. The name does not
106 include the ``do_`` prefix.
107
Andrew Geisslerf0343792020-11-18 10:42:21 -0600108 :term:`BB_DANGLINGAPPENDS_WARNONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500109 Defines how BitBake handles situations where an append file
110 (``.bbappend``) has no corresponding recipe file (``.bb``). This
111 condition often occurs when layers get out of sync (e.g. ``oe-core``
112 bumps a recipe version and the old recipe no longer exists and the
113 other layer has not been updated to the new version of the recipe
114 yet).
115
116 The default fatal behavior is safest because it is the sane reaction
117 given something is out of sync. It is important to realize when your
118 changes are no longer being applied.
119
Andrew Geisslerf0343792020-11-18 10:42:21 -0600120 :term:`BB_DEFAULT_TASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500121 The default task to use when none is specified (e.g. with the ``-c``
122 command line option). The task name specified should not include the
123 ``do_`` prefix.
124
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600125 :term:`BB_DEFAULT_UMASK`
126 The default umask to apply to tasks if specified and no task specific
127 umask flag is set.
128
Andrew Geisslerf0343792020-11-18 10:42:21 -0600129 :term:`BB_DISKMON_DIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500130 Monitors disk space and available inodes during the build and allows
131 you to control the build based on these parameters.
132
133 Disk space monitoring is disabled by default. When setting this
Andrew Geisslerc926e172021-05-07 16:11:35 -0500134 variable, use the following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500135
136 BB_DISKMON_DIRS = "<action>,<dir>,<threshold> [...]"
137
138 where:
139
140 <action> is:
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000141 HALT: Immediately halt the build when
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500142 a threshold is broken.
143 STOPTASKS: Stop the build after the currently
144 executing tasks have finished when
145 a threshold is broken.
146 WARN: Issue a warning but continue the
147 build when a threshold is broken.
148 Subsequent warnings are issued as
149 defined by the
150 BB_DISKMON_WARNINTERVAL variable,
151 which must be defined.
152
153 <dir> is:
154 Any directory you choose. You can specify one or
155 more directories to monitor by separating the
156 groupings with a space. If two directories are
157 on the same device, only the first directory
158 is monitored.
159
160 <threshold> is:
161 Either the minimum available disk space,
162 the minimum number of free inodes, or
163 both. You must specify at least one. To
164 omit one or the other, simply omit the value.
165 Specify the threshold using G, M, K for Gbytes,
166 Mbytes, and Kbytes, respectively. If you do
167 not specify G, M, or K, Kbytes is assumed by
168 default. Do not use GB, MB, or KB.
169
Andrew Geisslerc926e172021-05-07 16:11:35 -0500170 Here are some examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500171
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000172 BB_DISKMON_DIRS = "HALT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500173 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000174 BB_DISKMON_DIRS = "HALT,${TMPDIR},,100K"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500175
176 The first example works only if you also set the
177 :term:`BB_DISKMON_WARNINTERVAL`
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000178 variable. This example causes the build system to immediately halt
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500179 when either the disk space in ``${TMPDIR}`` drops below 1 Gbyte or
180 the available free inodes drops below 100 Kbytes. Because two
181 directories are provided with the variable, the build system also
182 issues a warning when the disk space in the ``${SSTATE_DIR}``
183 directory drops below 1 Gbyte or the number of free inodes drops
184 below 100 Kbytes. Subsequent warnings are issued during intervals as
Patrick Williams213cb262021-08-07 19:21:33 -0500185 defined by the :term:`BB_DISKMON_WARNINTERVAL` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500186
187 The second example stops the build after all currently executing
188 tasks complete when the minimum disk space in the ``${TMPDIR}``
189 directory drops below 1 Gbyte. No disk monitoring occurs for the free
190 inodes in this case.
191
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000192 The final example immediately halts the build when the number of
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500193 free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
194 disk space monitoring for the directory itself occurs in this case.
195
Andrew Geisslerf0343792020-11-18 10:42:21 -0600196 :term:`BB_DISKMON_WARNINTERVAL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500197 Defines the disk space and free inode warning intervals.
198
Patrick Williams213cb262021-08-07 19:21:33 -0500199 If you are going to use the :term:`BB_DISKMON_WARNINTERVAL` variable, you
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500200 must also use the :term:`BB_DISKMON_DIRS`
201 variable and define its action as "WARN". During the build,
202 subsequent warnings are issued each time disk space or number of free
203 inodes further reduces by the respective interval.
204
Patrick Williams213cb262021-08-07 19:21:33 -0500205 If you do not provide a :term:`BB_DISKMON_WARNINTERVAL` variable and you
206 do use :term:`BB_DISKMON_DIRS` with the "WARN" action, the disk
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500207 monitoring interval defaults to the following:
208 BB_DISKMON_WARNINTERVAL = "50M,5K"
209
210 When specifying the variable in your configuration file, use the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500211 following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500212
213 BB_DISKMON_WARNINTERVAL = "<disk_space_interval>,<disk_inode_interval>"
214
215 where:
216
217 <disk_space_interval> is:
218 An interval of memory expressed in either
219 G, M, or K for Gbytes, Mbytes, or Kbytes,
220 respectively. You cannot use GB, MB, or KB.
221
222 <disk_inode_interval> is:
223 An interval of free inodes expressed in either
224 G, M, or K for Gbytes, Mbytes, or Kbytes,
225 respectively. You cannot use GB, MB, or KB.
226
Andrew Geisslerc926e172021-05-07 16:11:35 -0500227 Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500228
229 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
230 BB_DISKMON_WARNINTERVAL = "50M,5K"
231
232 These variables cause BitBake to
233 issue subsequent warnings each time the available disk space further
234 reduces by 50 Mbytes or the number of free inodes further reduces by
235 5 Kbytes in the ``${SSTATE_DIR}`` directory. Subsequent warnings
236 based on the interval occur each time a respective interval is
237 reached beyond the initial warning (i.e. 1 Gbytes and 100 Kbytes).
238
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000239 :term:`BB_ENV_PASSTHROUGH_ADDITIONS`
240 Specifies an additional set of variables to allow through from the
241 external environment into BitBake's datastore. This list of variables
242 are on top of the internal list set in
243 :term:`BB_ENV_PASSTHROUGH`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500244
245 .. note::
246
247 You must set this variable in the external environment in order
248 for it to work.
249
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000250 :term:`BB_ENV_PASSTHROUGH`
251 Specifies the internal list of variables to allow through from
Patrick Williams213cb262021-08-07 19:21:33 -0500252 the external environment into BitBake's datastore. If the value of
253 this variable is not specified (which is the default), the following
254 list is used: :term:`BBPATH`, :term:`BB_PRESERVE_ENV`,
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000255 :term:`BB_ENV_PASSTHROUGH`, and :term:`BB_ENV_PASSTHROUGH_ADDITIONS`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500256
257 .. note::
258
259 You must set this variable in the external environment in order
260 for it to work.
261
Andrew Geisslerf0343792020-11-18 10:42:21 -0600262 :term:`BB_FETCH_PREMIRRORONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500263 When set to "1", causes BitBake's fetcher module to only search
264 :term:`PREMIRRORS` for files. BitBake will not
265 search the main :term:`SRC_URI` or
266 :term:`MIRRORS`.
267
Andrew Geisslerf0343792020-11-18 10:42:21 -0600268 :term:`BB_FILENAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500269 Contains the filename of the recipe that owns the currently running
270 task. For example, if the ``do_fetch`` task that resides in the
Patrick Williams213cb262021-08-07 19:21:33 -0500271 ``my-recipe.bb`` is executing, the :term:`BB_FILENAME` variable contains
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500272 "/foo/path/my-recipe.bb".
273
Andrew Geisslerf0343792020-11-18 10:42:21 -0600274 :term:`BB_GENERATE_MIRROR_TARBALLS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500275 Causes tarballs of the Git repositories, including the Git metadata,
276 to be placed in the :term:`DL_DIR` directory. Anyone
277 wishing to create a source mirror would want to enable this variable.
278
279 For performance reasons, creating and placing tarballs of the Git
280 repositories is not the default action by BitBake. ::
281
282 BB_GENERATE_MIRROR_TARBALLS = "1"
283
Andrew Geisslereff27472021-10-29 15:35:00 -0500284 :term:`BB_GENERATE_SHALLOW_TARBALLS`
285 Setting this variable to "1" when :term:`BB_GIT_SHALLOW` is also set to
286 "1" causes bitbake to generate shallow mirror tarballs when fetching git
287 repositories. The number of commits included in the shallow mirror
288 tarballs is controlled by :term:`BB_GIT_SHALLOW_DEPTH`.
289
290 If both :term:`BB_GIT_SHALLOW` and :term:`BB_GENERATE_MIRROR_TARBALLS` are
291 enabled, bitbake will generate shallow mirror tarballs by default for git
292 repositories. This separate variable exists so that shallow tarball
293 generation can be enabled without needing to also enable normal mirror
294 generation if it is not desired.
295
296 For example usage, see :term:`BB_GIT_SHALLOW`.
297
298 :term:`BB_GIT_SHALLOW`
299 Setting this variable to "1" enables the support for fetching, using and
300 generating mirror tarballs of `shallow git repositories <https://riptutorial.com/git/example/4584/shallow-clone>`_.
301 The external `git-make-shallow <https://git.openembedded.org/bitbake/tree/bin/git-make-shallow>`_
302 script is used for shallow mirror tarball creation.
303
304 When :term:`BB_GIT_SHALLOW` is enabled, bitbake will attempt to fetch a shallow
305 mirror tarball. If the shallow mirror tarball cannot be fetched, it will
306 try to fetch the full mirror tarball and use that.
307
308 When a mirror tarball is not available, a full git clone will be performed
309 regardless of whether this variable is set or not. Support for shallow
310 clones is not currently implemented as git does not directly support
311 shallow cloning a particular git commit hash (it only supports cloning
312 from a tag or branch reference).
313
314 See also :term:`BB_GIT_SHALLOW_DEPTH` and
315 :term:`BB_GENERATE_SHALLOW_TARBALLS`.
316
317 Example usage::
318
319 BB_GIT_SHALLOW ?= "1"
320
321 # Keep only the top commit
322 BB_GIT_SHALLOW_DEPTH ?= "1"
323
324 # This defaults to enabled if both BB_GIT_SHALLOW and
325 # BB_GENERATE_MIRROR_TARBALLS are enabled
326 BB_GENERATE_SHALLOW_TARBALLS ?= "1"
327
328 :term:`BB_GIT_SHALLOW_DEPTH`
329 When used with :term:`BB_GENERATE_SHALLOW_TARBALLS`, this variable sets
330 the number of commits to include in generated shallow mirror tarballs.
331 With a depth of 1, only the commit referenced in :term:`SRCREV` is
332 included in the shallow mirror tarball. Increasing the depth includes
333 additional parent commits, working back through the commit history.
334
335 If this variable is unset, bitbake will default to a depth of 1 when
336 generating shallow mirror tarballs.
337
338 For example usage, see :term:`BB_GIT_SHALLOW`.
339
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000340 :term:`BB_BASEHASH_IGNORE_VARS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500341 Lists variables that are excluded from checksum and dependency data.
342 Variables that are excluded can therefore change without affecting
343 the checksum mechanism. A common example would be the variable for
344 the path of the build. BitBake's output should not (and usually does
345 not) depend on the directory in which it was built.
346
Andrew Geisslerf0343792020-11-18 10:42:21 -0600347 :term:`BB_HASHCHECK_FUNCTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500348 Specifies the name of the function to call during the "setscene" part
349 of the task's execution in order to validate the list of task hashes.
350 The function returns the list of setscene tasks that should be
351 executed.
352
353 At this point in the execution of the code, the objective is to
354 quickly verify if a given setscene function is likely to work or not.
355 It's easier to check the list of setscene functions in one pass than
356 to call many individual tasks. The returned list need not be
357 completely accurate. A given setscene task can still later fail.
358 However, the more accurate the data returned, the more efficient the
359 build will be.
360
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000361 :term:`BB_HASHCONFIG_IGNORE_VARS`
Patrick Williams213cb262021-08-07 19:21:33 -0500362 Lists variables that are excluded from base configuration checksum,
363 which is used to determine if the cache can be reused.
364
365 One of the ways BitBake determines whether to re-parse the main
366 metadata is through checksums of the variables in the datastore of
367 the base configuration data. There are variables that you typically
368 want to exclude when checking whether or not to re-parse and thus
369 rebuild the cache. As an example, you would usually exclude ``TIME``
370 and ``DATE`` because these variables are always changing. If you did
371 not exclude them, BitBake would never reuse the cache.
372
Andrew Geissler09036742021-06-25 14:25:14 -0500373 :term:`BB_HASHSERVE`
374 Specifies the Hash Equivalence server to use.
375
376 If set to ``auto``, BitBake automatically starts its own server
Andrew Geissler595f6302022-01-24 19:11:47 +0000377 over a UNIX domain socket. An option is to connect this server
378 to an upstream one, by setting :term:`BB_HASHSERVE_UPSTREAM`.
Andrew Geissler09036742021-06-25 14:25:14 -0500379
Andrew Geissler595f6302022-01-24 19:11:47 +0000380 If set to ``unix://path``, BitBake will connect to an existing
381 hash server available over a UNIX domain socket.
382
383 If set to ``host:port``, BitBake will connect to a remote server on the
Andrew Geissler09036742021-06-25 14:25:14 -0500384 specified host. This allows multiple clients to share the same
385 hash equivalence data.
386
Andrew Geissler595f6302022-01-24 19:11:47 +0000387 The remote server can be started manually through
388 the ``bin/bitbake-hashserv`` script provided by BitBake,
389 which supports UNIX domain sockets too. This script also allows
390 to start the server in read-only mode, to avoid accepting
391 equivalences that correspond to Share State caches that are
392 only available on specific clients.
393
394 :term:`BB_HASHSERVE_UPSTREAM`
395 Specifies an upstream Hash Equivalence server.
396
397 This optional setting is only useful when a local Hash Equivalence
398 server is started (setting :term:`BB_HASHSERVE` to ``auto``),
399 and you wish the local server to query an upstream server for
400 Hash Equivalence data.
401
402 Example usage::
403
404 BB_HASHSERVE_UPSTREAM = "typhoon.yocto.io:8687"
405
Andrew Geisslerf0343792020-11-18 10:42:21 -0600406 :term:`BB_INVALIDCONF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500407 Used in combination with the ``ConfigParsed`` event to trigger
408 re-parsing the base metadata (i.e. all the recipes). The
409 ``ConfigParsed`` event can set the variable to trigger the re-parse.
410 You must be careful to avoid recursive loops with this functionality.
411
Andrew Geisslerf0343792020-11-18 10:42:21 -0600412 :term:`BB_LOGCONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500413 Specifies the name of a config file that contains the user logging
414 configuration. See
415 :ref:`bitbake-user-manual/bitbake-user-manual-execution:logging`
416 for additional information
417
Andrew Geisslerf0343792020-11-18 10:42:21 -0600418 :term:`BB_LOGFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500419 Specifies the name of the log files saved into
Patrick Williams213cb262021-08-07 19:21:33 -0500420 ``${``\ :term:`T`\ ``}``. By default, the :term:`BB_LOGFMT`
Andrew Geissler5199d832021-09-24 16:47:35 -0500421 variable is undefined and the log filenames get created using the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500422 following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500423
424 log.{task}.{pid}
425
426 If you want to force log files to take a specific name, you can set this
427 variable in a configuration file.
428
Andrew Geisslerf0343792020-11-18 10:42:21 -0600429 :term:`BB_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500430 Allows BitBake to run at a specific priority (i.e. nice level).
431 System permissions usually mean that BitBake can reduce its priority
432 but not raise it again. See :term:`BB_TASK_NICE_LEVEL` for
433 additional information.
434
Andrew Geisslerf0343792020-11-18 10:42:21 -0600435 :term:`BB_NO_NETWORK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500436 Disables network access in the BitBake fetcher modules. With this
437 access disabled, any command that attempts to access the network
438 becomes an error.
439
440 Disabling network access is useful for testing source mirrors,
441 running builds when not connected to the Internet, and when operating
442 in certain kinds of firewall environments.
443
Patrick Williams213cb262021-08-07 19:21:33 -0500444 :term:`BB_NUMBER_PARSE_THREADS`
445 Sets the number of threads BitBake uses when parsing. By default, the
446 number of threads is equal to the number of cores on the system.
447
Andrew Geisslerf0343792020-11-18 10:42:21 -0600448 :term:`BB_NUMBER_THREADS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500449 The maximum number of tasks BitBake should run in parallel at any one
450 time. If your host development system supports multiple cores, a good
451 rule of thumb is to set this variable to twice the number of cores.
452
Andrew Geisslerf0343792020-11-18 10:42:21 -0600453 :term:`BB_ORIGENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500454 Contains a copy of the original external environment in which BitBake
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000455 was run. The copy is taken before any variable values configured to
456 pass through from the external environment are filtered into BitBake's
457 datastore.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500458
459 .. note::
460
461 The contents of this variable is a datastore object that can be
462 queried using the normal datastore operations.
463
Andrew Geisslerf0343792020-11-18 10:42:21 -0600464 :term:`BB_PRESERVE_ENV`
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000465 Disables environment filtering and instead allows all variables through
466 from the external environment into BitBake's datastore.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500467
468 .. note::
469
470 You must set this variable in the external environment in order
471 for it to work.
472
Andrew Geisslerf0343792020-11-18 10:42:21 -0600473 :term:`BB_RUNFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500474 Specifies the name of the executable script files (i.e. run files)
475 saved into ``${``\ :term:`T`\ ``}``. By default, the
Andrew Geissler5199d832021-09-24 16:47:35 -0500476 :term:`BB_RUNFMT` variable is undefined and the run filenames get
Andrew Geisslerc926e172021-05-07 16:11:35 -0500477 created using the following form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500478
479 run.{task}.{pid}
480
481 If you want to force run files to take a specific name, you can set this
482 variable in a configuration file.
483
Andrew Geisslerf0343792020-11-18 10:42:21 -0600484 :term:`BB_RUNTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500485 Contains the name of the currently executing task. The value includes
486 the "do\_" prefix. For example, if the currently executing task is
487 ``do_config``, the value is "do_config".
488
Andrew Geisslerf0343792020-11-18 10:42:21 -0600489 :term:`BB_SCHEDULER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500490 Selects the name of the scheduler to use for the scheduling of
491 BitBake tasks. Three options exist:
492
493 - *basic* - The basic framework from which everything derives. Using
494 this option causes tasks to be ordered numerically as they are
495 parsed.
496
497 - *speed* - Executes tasks first that have more tasks depending on
498 them. The "speed" option is the default.
499
500 - *completion* - Causes the scheduler to try to complete a given
501 recipe once its build has started.
502
Andrew Geisslerf0343792020-11-18 10:42:21 -0600503 :term:`BB_SCHEDULERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500504 Defines custom schedulers to import. Custom schedulers need to be
505 derived from the ``RunQueueScheduler`` class.
506
507 For information how to select a scheduler, see the
508 :term:`BB_SCHEDULER` variable.
509
Andrew Geisslerf0343792020-11-18 10:42:21 -0600510 :term:`BB_SETSCENE_DEPVALID`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500511 Specifies a function BitBake calls that determines whether BitBake
512 requires a setscene dependency to be met.
513
514 When running a setscene task, BitBake needs to know which
515 dependencies of that setscene task also need to be run. Whether
516 dependencies also need to be run is highly dependent on the metadata.
517 The function specified by this variable returns a "True" or "False"
518 depending on whether the dependency needs to be met.
519
Andrew Geisslerf0343792020-11-18 10:42:21 -0600520 :term:`BB_SIGNATURE_EXCLUDE_FLAGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500521 Lists variable flags (varflags) that can be safely excluded from
522 checksum and dependency data for keys in the datastore. When
523 generating checksum or dependency data for keys in the datastore, the
524 flags set against that key are normally included in the checksum.
525
526 For more information on varflags, see the
527 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`"
528 section.
529
Andrew Geisslerf0343792020-11-18 10:42:21 -0600530 :term:`BB_SIGNATURE_HANDLER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500531 Defines the name of the signature handler BitBake uses. The signature
532 handler defines the way stamp files are created and handled, if and
533 how the signature is incorporated into the stamps, and how the
534 signature itself is generated.
535
536 A new signature handler can be added by injecting a class derived
537 from the ``SignatureGenerator`` class into the global namespace.
538
Andrew Geisslerf0343792020-11-18 10:42:21 -0600539 :term:`BB_SRCREV_POLICY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500540 Defines the behavior of the fetcher when it interacts with source
541 control systems and dynamic source revisions. The
Patrick Williams213cb262021-08-07 19:21:33 -0500542 :term:`BB_SRCREV_POLICY` variable is useful when working without a
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500543 network.
544
545 The variable can be set using one of two policies:
546
547 - *cache* - Retains the value the system obtained previously rather
548 than querying the source control system each time.
549
550 - *clear* - Queries the source controls system every time. With this
551 policy, there is no cache. The "clear" policy is the default.
552
Andrew Geisslerf0343792020-11-18 10:42:21 -0600553 :term:`BB_STRICT_CHECKSUM`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500554 Sets a more strict checksum mechanism for non-local URLs. Setting
555 this variable to a value causes BitBake to report an error if it
556 encounters a non-local URL that does not have at least one checksum
557 specified.
558
Andrew Geisslerf0343792020-11-18 10:42:21 -0600559 :term:`BB_TASK_IONICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500560 Allows adjustment of a task's Input/Output priority. During
561 Autobuilder testing, random failures can occur for tasks due to I/O
562 starvation. These failures occur during various QEMU runtime
Patrick Williams213cb262021-08-07 19:21:33 -0500563 timeouts. You can use the :term:`BB_TASK_IONICE_LEVEL` variable to adjust
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500564 the I/O priority of these tasks.
565
566 .. note::
567
568 This variable works similarly to the :term:`BB_TASK_NICE_LEVEL`
569 variable except with a task's I/O priorities.
570
Andrew Geisslerc926e172021-05-07 16:11:35 -0500571 Set the variable as follows::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500572
573 BB_TASK_IONICE_LEVEL = "class.prio"
574
575 For *class*, the default value is "2", which is a best effort. You can use
576 "1" for realtime and "3" for idle. If you want to use realtime, you
577 must have superuser privileges.
578
579 For *prio*, you can use any value from "0", which is the highest
580 priority, to "7", which is the lowest. The default value is "4". You
581 do not need any special privileges to use this range of priority
582 values.
583
584 .. note::
585
586 In order for your I/O priority settings to take effect, you need the
587 Completely Fair Queuing (CFQ) Scheduler selected for the backing block
588 device. To select the scheduler, use the following command form where
Andrew Geisslerc926e172021-05-07 16:11:35 -0500589 device is the device (e.g. sda, sdb, and so forth)::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500590
Andrew Geisslerf0343792020-11-18 10:42:21 -0600591 $ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500592
Andrew Geisslerf0343792020-11-18 10:42:21 -0600593 :term:`BB_TASK_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500594 Allows specific tasks to change their priority (i.e. nice level).
595
596 You can use this variable in combination with task overrides to raise
597 or lower priorities of specific tasks. For example, on the `Yocto
Andrew Geisslereff27472021-10-29 15:35:00 -0500598 Project <https://www.yoctoproject.org>`__ autobuilder, QEMU emulation
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500599 in images is given a higher priority as compared to build tasks to
600 ensure that images do not suffer timeouts on loaded systems.
601
Andrew Geisslerf0343792020-11-18 10:42:21 -0600602 :term:`BB_TASKHASH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500603 Within an executing task, this variable holds the hash of the task as
604 returned by the currently enabled signature generator.
605
Andrew Geisslerf0343792020-11-18 10:42:21 -0600606 :term:`BB_VERBOSE_LOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500607 Controls how verbose BitBake is during builds. If set, shell scripts
608 echo commands and shell script output appears on standard out
609 (stdout).
610
Andrew Geisslerf0343792020-11-18 10:42:21 -0600611 :term:`BB_WORKERCONTEXT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500612 Specifies if the current context is executing a task. BitBake sets
613 this variable to "1" when a task is being executed. The value is not
614 set when the task is in server context during parsing or event
615 handling.
616
Andrew Geisslerf0343792020-11-18 10:42:21 -0600617 :term:`BBCLASSEXTEND`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500618 Allows you to extend a recipe so that it builds variants of the
619 software. Some examples of these variants for recipes from the
620 OpenEmbedded-Core metadata are "natives" such as ``quilt-native``,
621 which is a copy of Quilt built to run on the build system; "crosses"
622 such as ``gcc-cross``, which is a compiler built to run on the build
623 machine but produces binaries that run on the target ``MACHINE``;
624 "nativesdk", which targets the SDK machine instead of ``MACHINE``;
625 and "mulitlibs" in the form "``multilib:``\ multilib_name".
626
627 To build a different variant of the recipe with a minimal amount of
628 code, it usually is as simple as adding the variable to your recipe.
629 Here are two examples. The "native" variants are from the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500630 OpenEmbedded-Core metadata::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500631
632 BBCLASSEXTEND =+ "native nativesdk"
633 BBCLASSEXTEND =+ "multilib:multilib_name"
634
635 .. note::
636
Patrick Williams213cb262021-08-07 19:21:33 -0500637 Internally, the :term:`BBCLASSEXTEND` mechanism generates recipe
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500638 variants by rewriting variable values and applying overrides such
639 as ``_class-native``. For example, to generate a native version of
640 a recipe, a :term:`DEPENDS` on "foo" is
Patrick Williams213cb262021-08-07 19:21:33 -0500641 rewritten to a :term:`DEPENDS` on "foo-native".
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500642
Patrick Williams213cb262021-08-07 19:21:33 -0500643 Even when using :term:`BBCLASSEXTEND`, the recipe is only parsed once.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500644 Parsing once adds some limitations. For example, it is not
645 possible to include a different file depending on the variant,
646 since ``include`` statements are processed when the recipe is
647 parsed.
648
Andrew Geisslerf0343792020-11-18 10:42:21 -0600649 :term:`BBDEBUG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500650 Sets the BitBake debug output level to a specific value as
651 incremented by the ``-D`` command line option.
652
653 .. note::
654
655 You must set this variable in the external environment in order
656 for it to work.
657
Andrew Geisslerf0343792020-11-18 10:42:21 -0600658 :term:`BBFILE_COLLECTIONS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500659 Lists the names of configured layers. These names are used to find
660 the other ``BBFILE_*`` variables. Typically, each layer appends its
661 name to this variable in its ``conf/layer.conf`` file.
662
Andrew Geisslerf0343792020-11-18 10:42:21 -0600663 :term:`BBFILE_PATTERN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500664 Variable that expands to match files from
665 :term:`BBFILES` in a particular layer. This
666 variable is used in the ``conf/layer.conf`` file and must be suffixed
667 with the name of the specific layer (e.g.
668 ``BBFILE_PATTERN_emenlow``).
669
Andrew Geisslerf0343792020-11-18 10:42:21 -0600670 :term:`BBFILE_PRIORITY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500671 Assigns the priority for recipe files in each layer.
672
673 This variable is useful in situations where the same recipe appears
674 in more than one layer. Setting this variable allows you to
675 prioritize a layer against other layers that contain the same recipe
676 - effectively letting you control the precedence for the multiple
677 layers. The precedence established through this variable stands
678 regardless of a recipe's version (:term:`PV` variable).
Patrick Williams213cb262021-08-07 19:21:33 -0500679 For example, a layer that has a recipe with a higher :term:`PV` value but
680 for which the :term:`BBFILE_PRIORITY` is set to have a lower precedence
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500681 still has a lower precedence.
682
Patrick Williams213cb262021-08-07 19:21:33 -0500683 A larger value for the :term:`BBFILE_PRIORITY` variable results in a
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500684 higher precedence. For example, the value 6 has a higher precedence
Patrick Williams213cb262021-08-07 19:21:33 -0500685 than the value 5. If not specified, the :term:`BBFILE_PRIORITY` variable
686 is set based on layer dependencies (see the :term:`LAYERDEPENDS` variable
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500687 for more information. The default priority, if unspecified for a
688 layer with no dependencies, is the lowest defined priority + 1 (or 1
689 if no priorities are defined).
690
691 .. tip::
692
693 You can use the command bitbake-layers show-layers to list all
694 configured layers along with their priorities.
695
Andrew Geisslerf0343792020-11-18 10:42:21 -0600696 :term:`BBFILES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500697 A space-separated list of recipe files BitBake uses to build
698 software.
699
700 When specifying recipe files, you can pattern match using Python's
701 `glob <https://docs.python.org/3/library/glob.html>`_ syntax.
702 For details on the syntax, see the documentation by following the
703 previous link.
704
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500705 :term:`BBFILES_DYNAMIC`
706 Activates content depending on presence of identified layers. You
707 identify the layers by the collections that the layers define.
708
Patrick Williams213cb262021-08-07 19:21:33 -0500709 Use the :term:`BBFILES_DYNAMIC` variable to avoid ``.bbappend`` files whose
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500710 corresponding ``.bb`` file is in a layer that attempts to modify other
711 layers through ``.bbappend`` but does not want to introduce a hard
712 dependency on those other layers.
713
714 Additionally you can prefix the rule with "!" to add ``.bbappend`` and
715 ``.bb`` files in case a layer is not present. Use this avoid hard
716 dependency on those other layers.
717
Patrick Williams213cb262021-08-07 19:21:33 -0500718 Use the following form for :term:`BBFILES_DYNAMIC`::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500719
720 collection_name:filename_pattern
721
722 The following example identifies two collection names and two filename
Andrew Geisslerc926e172021-05-07 16:11:35 -0500723 patterns::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500724
725 BBFILES_DYNAMIC += "\
726 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
727 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
728 "
729
730 When the collection name is prefixed with "!" it will add the file pattern in case
Andrew Geisslerc926e172021-05-07 16:11:35 -0500731 the layer is absent::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500732
733 BBFILES_DYNAMIC += "\
734 !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
735 "
736
737 This next example shows an error message that occurs because invalid
Andrew Geissler7e0e3c02022-02-25 20:34:39 +0000738 entries are found, which cause parsing to fail::
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500739
740 ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
741 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
742 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
743
Andrew Geisslerf0343792020-11-18 10:42:21 -0600744 :term:`BBINCLUDED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500745 Contains a space-separated list of all of all files that BitBake's
746 parser included during parsing of the current file.
747
Andrew Geisslerf0343792020-11-18 10:42:21 -0600748 :term:`BBINCLUDELOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500749 If set to a value, enables printing the task log when reporting a
750 failed task.
751
Andrew Geisslerf0343792020-11-18 10:42:21 -0600752 :term:`BBINCLUDELOGS_LINES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500753 If :term:`BBINCLUDELOGS` is set, specifies
754 the maximum number of lines from the task log file to print when
Patrick Williams213cb262021-08-07 19:21:33 -0500755 reporting a failed task. If you do not set :term:`BBINCLUDELOGS_LINES`,
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500756 the entire log is printed.
757
Andrew Geisslerf0343792020-11-18 10:42:21 -0600758 :term:`BBLAYERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500759 Lists the layers to enable during the build. This variable is defined
760 in the ``bblayers.conf`` configuration file in the build directory.
Andrew Geisslerc926e172021-05-07 16:11:35 -0500761 Here is an example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500762
763 BBLAYERS = " \
764 /home/scottrif/poky/meta \
765 /home/scottrif/poky/meta-yocto \
766 /home/scottrif/poky/meta-yocto-bsp \
767 /home/scottrif/poky/meta-mykernel \
768 "
769
770 This example enables four layers, one of which is a custom, user-defined
771 layer named ``meta-mykernel``.
772
Andrew Geisslerf0343792020-11-18 10:42:21 -0600773 :term:`BBLAYERS_FETCH_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500774 Sets the base location where layers are stored. This setting is used
775 in conjunction with ``bitbake-layers layerindex-fetch`` and tells
776 ``bitbake-layers`` where to place the fetched layers.
777
Andrew Geisslerf0343792020-11-18 10:42:21 -0600778 :term:`BBMASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500779 Prevents BitBake from processing recipes and recipe append files.
780
Patrick Williams213cb262021-08-07 19:21:33 -0500781 You can use the :term:`BBMASK` variable to "hide" these ``.bb`` and
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500782 ``.bbappend`` files. BitBake ignores any recipe or recipe append
783 files that match any of the expressions. It is as if BitBake does not
784 see them at all. Consequently, matching files are not parsed or
785 otherwise used by BitBake.
786
787 The values you provide are passed to Python's regular expression
788 compiler. Consequently, the syntax follows Python's Regular
789 Expression (re) syntax. The expressions are compared against the full
790 paths to the files. For complete syntax information, see Python's
791 documentation at http://docs.python.org/3/library/re.html.
792
793 The following example uses a complete regular expression to tell
794 BitBake to ignore all recipe and recipe append files in the
Andrew Geisslerc926e172021-05-07 16:11:35 -0500795 ``meta-ti/recipes-misc/`` directory::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500796
797 BBMASK = "meta-ti/recipes-misc/"
798
799 If you want to mask out multiple directories or recipes, you can
800 specify multiple regular expression fragments. This next example
Andrew Geisslerc926e172021-05-07 16:11:35 -0500801 masks out multiple directories and individual recipes::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500802
803 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
804 BBMASK += "/meta-oe/recipes-support/"
805 BBMASK += "/meta-foo/.*/openldap"
806 BBMASK += "opencv.*\.bbappend"
807 BBMASK += "lzma"
808
809 .. note::
810
811 When specifying a directory name, use the trailing slash character
812 to ensure you match just that directory name.
813
Andrew Geisslerf0343792020-11-18 10:42:21 -0600814 :term:`BBMULTICONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500815 Enables BitBake to perform multiple configuration builds and lists
816 each separate configuration (multiconfig). You can use this variable
817 to cause BitBake to build multiple targets where each target has a
Patrick Williams213cb262021-08-07 19:21:33 -0500818 separate configuration. Define :term:`BBMULTICONFIG` in your
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500819 ``conf/local.conf`` configuration file.
820
821 As an example, the following line specifies three multiconfigs, each
Andrew Geisslerc926e172021-05-07 16:11:35 -0500822 having a separate configuration file::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500823
824 BBMULTIFONFIG = "configA configB configC"
825
826 Each configuration file you use must reside in the
827 build directory within a directory named ``conf/multiconfig`` (e.g.
828 build_directory\ ``/conf/multiconfig/configA.conf``).
829
Patrick Williams213cb262021-08-07 19:21:33 -0500830 For information on how to use :term:`BBMULTICONFIG` in an environment
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500831 that supports building targets with multiple configurations, see the
832 ":ref:`bitbake-user-manual/bitbake-user-manual-intro:executing a multiple configuration build`"
833 section.
834
Andrew Geisslerf0343792020-11-18 10:42:21 -0600835 :term:`BBPATH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500836 Used by BitBake to locate class (``.bbclass``) and configuration
837 (``.conf``) files. This variable is analogous to the ``PATH``
838 variable.
839
840 If you run BitBake from a directory outside of the build directory,
Patrick Williams213cb262021-08-07 19:21:33 -0500841 you must be sure to set :term:`BBPATH` to point to the build directory.
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500842 Set the variable as you would any environment variable and then run
Andrew Geisslerc926e172021-05-07 16:11:35 -0500843 BitBake::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500844
845 $ BBPATH="build_directory"
846 $ export BBPATH
847 $ bitbake target
848
Andrew Geisslerf0343792020-11-18 10:42:21 -0600849 :term:`BBSERVER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500850 Points to the server that runs memory-resident BitBake. The variable
851 is only used when you employ memory-resident BitBake.
852
Andrew Geisslerf0343792020-11-18 10:42:21 -0600853 :term:`BBTARGETS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500854 Allows you to use a configuration file to add to the list of
855 command-line target recipes you want to build.
856
Andrew Geisslerf0343792020-11-18 10:42:21 -0600857 :term:`BITBAKE_UI`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500858 Used to specify the UI module to use when running BitBake. Using this
859 variable is equivalent to using the ``-u`` command-line option.
860
861 .. note::
862
863 You must set this variable in the external environment in order
864 for it to work.
865
Andrew Geisslerf0343792020-11-18 10:42:21 -0600866 :term:`BUILDNAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500867 A name assigned to the build. The name defaults to a datetime stamp
868 of when the build was started but can be defined by the metadata.
869
Andrew Geisslerf0343792020-11-18 10:42:21 -0600870 :term:`BZRDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500871 The directory in which files checked out of a Bazaar system are
872 stored.
873
Andrew Geisslerf0343792020-11-18 10:42:21 -0600874 :term:`CACHE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500875 Specifies the directory BitBake uses to store a cache of the metadata
876 so it does not need to be parsed every time BitBake is started.
877
Andrew Geisslerf0343792020-11-18 10:42:21 -0600878 :term:`CVSDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500879 The directory in which files checked out under the CVS system are
880 stored.
881
Andrew Geisslerf0343792020-11-18 10:42:21 -0600882 :term:`DEFAULT_PREFERENCE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500883 Specifies a weak bias for recipe selection priority.
884
885 The most common usage of this is variable is to set it to "-1" within
886 a recipe for a development version of a piece of software. Using the
887 variable in this way causes the stable version of the recipe to build
Patrick Williams213cb262021-08-07 19:21:33 -0500888 by default in the absence of :term:`PREFERRED_VERSION` being used to
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500889 build the development version.
890
891 .. note::
892
893 The bias provided by DEFAULT_PREFERENCE is weak and is overridden by
894 :term:`BBFILE_PRIORITY` if that variable is different between two
895 layers that contain different versions of the same recipe.
896
Andrew Geisslerf0343792020-11-18 10:42:21 -0600897 :term:`DEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500898 Lists a recipe's build-time dependencies (i.e. other recipe files).
899
900 Consider this simple example for two recipes named "a" and "b" that
Patrick Williams213cb262021-08-07 19:21:33 -0500901 produce similarly named packages. In this example, the :term:`DEPENDS`
Andrew Geisslerc926e172021-05-07 16:11:35 -0500902 statement appears in the "a" recipe::
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500903
904 DEPENDS = "b"
905
906 Here, the dependency is such that the ``do_configure`` task for recipe "a"
907 depends on the ``do_populate_sysroot`` task of recipe "b". This means
908 anything that recipe "b" puts into sysroot is available when recipe "a" is
909 configuring itself.
910
911 For information on runtime dependencies, see the :term:`RDEPENDS`
912 variable.
913
Andrew Geisslerf0343792020-11-18 10:42:21 -0600914 :term:`DESCRIPTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500915 A long description for the recipe.
916
Andrew Geisslerf0343792020-11-18 10:42:21 -0600917 :term:`DL_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500918 The central download directory used by the build process to store
Patrick Williams213cb262021-08-07 19:21:33 -0500919 downloads. By default, :term:`DL_DIR` gets files suitable for mirroring for
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500920 everything except Git repositories. If you want tarballs of Git
921 repositories, use the :term:`BB_GENERATE_MIRROR_TARBALLS` variable.
922
Andrew Geisslerf0343792020-11-18 10:42:21 -0600923 :term:`EXCLUDE_FROM_WORLD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500924 Directs BitBake to exclude a recipe from world builds (i.e.
925 ``bitbake world``). During world builds, BitBake locates, parses and
926 builds all recipes found in every layer exposed in the
927 ``bblayers.conf`` configuration file.
928
929 To exclude a recipe from a world build using this variable, set the
930 variable to "1" in the recipe.
931
932 .. note::
933
Patrick Williams213cb262021-08-07 19:21:33 -0500934 Recipes added to :term:`EXCLUDE_FROM_WORLD` may still be built during a world
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500935 build in order to satisfy dependencies of other recipes. Adding a
Patrick Williams213cb262021-08-07 19:21:33 -0500936 recipe to :term:`EXCLUDE_FROM_WORLD` only ensures that the recipe is not
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500937 explicitly added to the list of build targets in a world build.
938
Andrew Geisslerf0343792020-11-18 10:42:21 -0600939 :term:`FAKEROOT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500940 Contains the command to use when running a shell script in a fakeroot
Patrick Williams213cb262021-08-07 19:21:33 -0500941 environment. The :term:`FAKEROOT` variable is obsolete and has been
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500942 replaced by the other ``FAKEROOT*`` variables. See these entries in
943 the glossary for more information.
944
Andrew Geisslerf0343792020-11-18 10:42:21 -0600945 :term:`FAKEROOTBASEENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500946 Lists environment variables to set when executing the command defined
947 by :term:`FAKEROOTCMD` that starts the
948 bitbake-worker process in the fakeroot environment.
949
Andrew Geisslerf0343792020-11-18 10:42:21 -0600950 :term:`FAKEROOTCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500951 Contains the command that starts the bitbake-worker process in the
952 fakeroot environment.
953
Andrew Geisslerf0343792020-11-18 10:42:21 -0600954 :term:`FAKEROOTDIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500955 Lists directories to create before running a task in the fakeroot
956 environment.
957
Andrew Geisslerf0343792020-11-18 10:42:21 -0600958 :term:`FAKEROOTENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500959 Lists environment variables to set when running a task in the
960 fakeroot environment. For additional information on environment
961 variables and the fakeroot environment, see the
962 :term:`FAKEROOTBASEENV` variable.
963
Andrew Geisslerf0343792020-11-18 10:42:21 -0600964 :term:`FAKEROOTNOENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500965 Lists environment variables to set when running a task that is not in
966 the fakeroot environment. For additional information on environment
967 variables and the fakeroot environment, see the
968 :term:`FAKEROOTENV` variable.
969
Andrew Geisslerf0343792020-11-18 10:42:21 -0600970 :term:`FETCHCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500971 Defines the command the BitBake fetcher module executes when running
972 fetch operations. You need to use an override suffix when you use the
973 variable (e.g. ``FETCHCMD_git`` or ``FETCHCMD_svn``).
974
Andrew Geisslerf0343792020-11-18 10:42:21 -0600975 :term:`FILE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500976 Points at the current file. BitBake sets this variable during the
977 parsing process to identify the file being parsed. BitBake also sets
978 this variable when a recipe is being executed to identify the recipe
979 file.
980
Andrew Geisslerf0343792020-11-18 10:42:21 -0600981 :term:`FILESPATH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500982 Specifies directories BitBake uses when searching for patches and
983 files. The "local" fetcher module uses these directories when
984 handling ``file://`` URLs. The variable behaves like a shell ``PATH``
985 environment variable. The value is a colon-separated list of
986 directories that are searched left-to-right in order.
987
Andrew Geisslerf0343792020-11-18 10:42:21 -0600988 :term:`GITDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500989 The directory in which a local copy of a Git repository is stored
990 when it is cloned.
991
Andrew Geisslerf0343792020-11-18 10:42:21 -0600992 :term:`HGDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500993 The directory in which files checked out of a Mercurial system are
994 stored.
995
Andrew Geisslerf0343792020-11-18 10:42:21 -0600996 :term:`HOMEPAGE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500997 Website where more information about the software the recipe is
998 building can be found.
999
Andrew Geisslerf0343792020-11-18 10:42:21 -06001000 :term:`INHERIT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001001 Causes the named class or classes to be inherited globally. Anonymous
1002 functions in the class or classes are not executed for the base
1003 configuration and in each individual recipe. The OpenEmbedded build
Patrick Williams213cb262021-08-07 19:21:33 -05001004 system ignores changes to :term:`INHERIT` in individual recipes.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001005
Patrick Williams213cb262021-08-07 19:21:33 -05001006 For more information on :term:`INHERIT`, see the
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001007 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration directive`"
1008 section.
1009
Andrew Geisslerf0343792020-11-18 10:42:21 -06001010 :term:`LAYERDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001011 Lists the layers, separated by spaces, upon which this recipe
1012 depends. Optionally, you can specify a specific layer version for a
1013 dependency by adding it to the end of the layer name with a colon,
1014 (e.g. "anotherlayer:3" to be compared against
1015 :term:`LAYERVERSION`\ ``_anotherlayer`` in
1016 this case). BitBake produces an error if any dependency is missing or
1017 the version numbers do not match exactly (if specified).
1018
1019 You use this variable in the ``conf/layer.conf`` file. You must also
1020 use the specific layer name as a suffix to the variable (e.g.
1021 ``LAYERDEPENDS_mylayer``).
1022
Andrew Geisslerf0343792020-11-18 10:42:21 -06001023 :term:`LAYERDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001024 When used inside the ``layer.conf`` configuration file, this variable
1025 provides the path of the current layer. This variable is not
1026 available outside of ``layer.conf`` and references are expanded
1027 immediately when parsing of the file completes.
1028
Andrew Geisslerf0343792020-11-18 10:42:21 -06001029 :term:`LAYERDIR_RE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001030 When used inside the ``layer.conf`` configuration file, this variable
1031 provides the path of the current layer, escaped for use in a regular
1032 expression (:term:`BBFILE_PATTERN`). This
1033 variable is not available outside of ``layer.conf`` and references
1034 are expanded immediately when parsing of the file completes.
1035
Andrew Geisslerf0343792020-11-18 10:42:21 -06001036 :term:`LAYERVERSION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001037 Optionally specifies the version of a layer as a single number. You
1038 can use this variable within
1039 :term:`LAYERDEPENDS` for another layer in
1040 order to depend on a specific version of the layer.
1041
1042 You use this variable in the ``conf/layer.conf`` file. You must also
1043 use the specific layer name as a suffix to the variable (e.g.
1044 ``LAYERDEPENDS_mylayer``).
1045
Andrew Geisslerf0343792020-11-18 10:42:21 -06001046 :term:`LICENSE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001047 The list of source licenses for the recipe.
1048
Andrew Geisslerf0343792020-11-18 10:42:21 -06001049 :term:`MIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001050 Specifies additional paths from which BitBake gets source code. When
1051 the build system searches for source code, it first tries the local
1052 download directory. If that location fails, the build system tries
1053 locations defined by :term:`PREMIRRORS`, the
Patrick Williams213cb262021-08-07 19:21:33 -05001054 upstream source, and then locations specified by :term:`MIRRORS` in that
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001055 order.
1056
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001057 :term:`BB_MULTI_PROVIDER_ALLOWED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001058 Allows you to suppress BitBake warnings caused when building two
1059 separate recipes that provide the same output.
1060
1061 BitBake normally issues a warning when building two different recipes
1062 where each provides the same output. This scenario is usually
1063 something the user does not want. However, cases do exist where it
1064 makes sense, particularly in the ``virtual/*`` namespace. You can use
1065 this variable to suppress BitBake's warnings.
1066
1067 To use the variable, list provider names (e.g. recipe names,
1068 ``virtual/kernel``, and so forth).
1069
Andrew Geisslerf0343792020-11-18 10:42:21 -06001070 :term:`OVERRIDES`
Patrick Williams213cb262021-08-07 19:21:33 -05001071 BitBake uses :term:`OVERRIDES` to control what variables are overridden
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001072 after BitBake parses recipes and configuration files.
1073
1074 Following is a simple example that uses an overrides list based on
1075 machine architectures: OVERRIDES = "arm:x86:mips:powerpc" You can
Patrick Williams213cb262021-08-07 19:21:33 -05001076 find information on how to use :term:`OVERRIDES` in the
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001077 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax
1078 (overrides)`" section.
1079
Andrew Geisslerf0343792020-11-18 10:42:21 -06001080 :term:`P4DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001081 The directory in which a local copy of a Perforce depot is stored
1082 when it is fetched.
1083
Andrew Geisslerf0343792020-11-18 10:42:21 -06001084 :term:`PACKAGES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001085 The list of packages the recipe creates.
1086
Andrew Geisslerf0343792020-11-18 10:42:21 -06001087 :term:`PACKAGES_DYNAMIC`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001088 A promise that your recipe satisfies runtime dependencies for
1089 optional modules that are found in other recipes.
Patrick Williams213cb262021-08-07 19:21:33 -05001090 :term:`PACKAGES_DYNAMIC` does not actually satisfy the dependencies, it
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001091 only states that they should be satisfied. For example, if a hard,
1092 runtime dependency (:term:`RDEPENDS`) of another
1093 package is satisfied during the build through the
Patrick Williams213cb262021-08-07 19:21:33 -05001094 :term:`PACKAGES_DYNAMIC` variable, but a package with the module name is
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001095 never actually produced, then the other package will be broken.
1096
Andrew Geisslerf0343792020-11-18 10:42:21 -06001097 :term:`PE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001098 The epoch of the recipe. By default, this variable is unset. The
1099 variable is used to make upgrades possible when the versioning scheme
1100 changes in some backwards incompatible way.
1101
Andrew Geisslerf0343792020-11-18 10:42:21 -06001102 :term:`PERSISTENT_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001103 Specifies the directory BitBake uses to store data that should be
1104 preserved between builds. In particular, the data stored is the data
1105 that uses BitBake's persistent data API and the data used by the PR
1106 Server and PR Service.
1107
Andrew Geisslerf0343792020-11-18 10:42:21 -06001108 :term:`PF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001109 Specifies the recipe or package name and includes all version and
1110 revision numbers (i.e. ``eglibc-2.13-r20+svnr15508/`` and
1111 ``bash-4.2-r1/``).
1112
Andrew Geisslerf0343792020-11-18 10:42:21 -06001113 :term:`PN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001114 The recipe name.
1115
Andrew Geisslerf0343792020-11-18 10:42:21 -06001116 :term:`PR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001117 The revision of the recipe.
1118
Andrew Geisslerf0343792020-11-18 10:42:21 -06001119 :term:`PREFERRED_PROVIDER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001120 Determines which recipe should be given preference when multiple
1121 recipes provide the same item. You should always suffix the variable
1122 with the name of the provided item, and you should set it to the
1123 :term:`PN` of the recipe to which you want to give
Andrew Geisslerc926e172021-05-07 16:11:35 -05001124 precedence. Some examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001125
1126 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1127 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
1128 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
1129
Andrew Geisslerf0343792020-11-18 10:42:21 -06001130 :term:`PREFERRED_PROVIDERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001131 Determines which recipe should be given preference for cases where
1132 multiple recipes provide the same item. Functionally,
Patrick Williams213cb262021-08-07 19:21:33 -05001133 :term:`PREFERRED_PROVIDERS` is identical to
1134 :term:`PREFERRED_PROVIDER`. However, the :term:`PREFERRED_PROVIDERS` variable
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001135 lets you define preferences for multiple situations using the following
Andrew Geisslerc926e172021-05-07 16:11:35 -05001136 form::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001137
1138 PREFERRED_PROVIDERS = "xxx:yyy aaa:bbb ..."
1139
Andrew Geisslerc926e172021-05-07 16:11:35 -05001140 This form is a convenient replacement for the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001141
1142 PREFERRED_PROVIDER_xxx = "yyy"
1143 PREFERRED_PROVIDER_aaa = "bbb"
1144
Andrew Geisslerf0343792020-11-18 10:42:21 -06001145 :term:`PREFERRED_VERSION`
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001146 If there are multiple versions of a recipe available, this variable
1147 determines which version should be given preference. You must always
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001148 suffix the variable with the :term:`PN` you want to
1149 select, and you should set :term:`PV` accordingly for
1150 precedence.
1151
Patrick Williams213cb262021-08-07 19:21:33 -05001152 The :term:`PREFERRED_VERSION` variable supports limited wildcard use
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001153 through the "``%``" character. You can use the character to match any
1154 number of characters, which can be useful when specifying versions
1155 that contain long revision numbers that potentially change. Here are
Andrew Geisslerc926e172021-05-07 16:11:35 -05001156 two examples::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001157
1158 PREFERRED_VERSION_python = "2.7.3"
1159 PREFERRED_VERSION_linux-yocto = "4.12%"
1160
1161 .. important::
1162
1163 The use of the " % " character is limited in that it only works at the
1164 end of the string. You cannot use the wildcard character in any other
1165 location of the string.
1166
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001167 If a recipe with the specified version is not available, a warning
1168 message will be shown. See :term:`REQUIRED_VERSION` if you want this
1169 to be an error instead.
1170
Andrew Geisslerf0343792020-11-18 10:42:21 -06001171 :term:`PREMIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001172 Specifies additional paths from which BitBake gets source code. When
1173 the build system searches for source code, it first tries the local
1174 download directory. If that location fails, the build system tries
Patrick Williams213cb262021-08-07 19:21:33 -05001175 locations defined by :term:`PREMIRRORS`, the upstream source, and then
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001176 locations specified by :term:`MIRRORS` in that order.
1177
1178 Typically, you would add a specific server for the build system to
1179 attempt before any others by adding something like the following to
Andrew Geisslerc926e172021-05-07 16:11:35 -05001180 your configuration::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001181
Patrick Williams213cb262021-08-07 19:21:33 -05001182 PREMIRRORS:prepend = "\
Andrew Geissler7e0e3c02022-02-25 20:34:39 +00001183 git://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1184 ftp://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1185 http://.*/.* http://downloads.yoctoproject.org/mirror/sources/ \
1186 https://.*/.* http://downloads.yoctoproject.org/mirror/sources/"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001187
1188 These changes cause the build system to intercept Git, FTP, HTTP, and
1189 HTTPS requests and direct them to the ``http://`` sources mirror. You can
1190 use ``file://`` URLs to point to local directories or network shares as
1191 well.
1192
Andrew Geisslerf0343792020-11-18 10:42:21 -06001193 :term:`PROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001194 A list of aliases by which a particular recipe can be known. By
Patrick Williams213cb262021-08-07 19:21:33 -05001195 default, a recipe's own :term:`PN` is implicitly already in its
1196 :term:`PROVIDES` list. If a recipe uses :term:`PROVIDES`, the additional
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001197 aliases are synonyms for the recipe and can be useful satisfying
1198 dependencies of other recipes during the build as specified by
Patrick Williams213cb262021-08-07 19:21:33 -05001199 :term:`DEPENDS`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001200
Patrick Williams213cb262021-08-07 19:21:33 -05001201 Consider the following example :term:`PROVIDES` statement from a recipe
Andrew Geisslerc926e172021-05-07 16:11:35 -05001202 file ``libav_0.8.11.bb``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001203
1204 PROVIDES += "libpostproc"
1205
Patrick Williams213cb262021-08-07 19:21:33 -05001206 The :term:`PROVIDES` statement results in the "libav" recipe also being known
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001207 as "libpostproc".
1208
1209 In addition to providing recipes under alternate names, the
Patrick Williams213cb262021-08-07 19:21:33 -05001210 :term:`PROVIDES` mechanism is also used to implement virtual targets. A
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001211 virtual target is a name that corresponds to some particular
1212 functionality (e.g. a Linux kernel). Recipes that provide the
Patrick Williams213cb262021-08-07 19:21:33 -05001213 functionality in question list the virtual target in :term:`PROVIDES`.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001214 Recipes that depend on the functionality in question can include the
1215 virtual target in :term:`DEPENDS` to leave the
1216 choice of provider open.
1217
1218 Conventionally, virtual targets have names on the form
1219 "virtual/function" (e.g. "virtual/kernel"). The slash is simply part
1220 of the name and has no syntactical significance.
1221
Andrew Geisslerf0343792020-11-18 10:42:21 -06001222 :term:`PRSERV_HOST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001223 The network based :term:`PR` service host and port.
1224
Patrick Williams213cb262021-08-07 19:21:33 -05001225 Following is an example of how the :term:`PRSERV_HOST` variable is set::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001226
1227 PRSERV_HOST = "localhost:0"
1228
1229 You must set the variable if you want to automatically start a local PR
Patrick Williams213cb262021-08-07 19:21:33 -05001230 service. You can set :term:`PRSERV_HOST` to other values to use a remote PR
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001231 service.
1232
Andrew Geisslerf0343792020-11-18 10:42:21 -06001233 :term:`PV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001234 The version of the recipe.
1235
Andrew Geisslerf0343792020-11-18 10:42:21 -06001236 :term:`RDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001237 Lists a package's runtime dependencies (i.e. other packages) that
1238 must be installed in order for the built package to run correctly. If
1239 a package in this list cannot be found during the build, you will get
1240 a build error.
1241
Patrick Williams213cb262021-08-07 19:21:33 -05001242 Because the :term:`RDEPENDS` variable applies to packages being built,
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001243 you should always use the variable in a form with an attached package
1244 name. For example, suppose you are building a development package
1245 that depends on the ``perl`` package. In this case, you would use the
Patrick Williams213cb262021-08-07 19:21:33 -05001246 following :term:`RDEPENDS` statement::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001247
Patrick Williams213cb262021-08-07 19:21:33 -05001248 RDEPENDS:${PN}-dev += "perl"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001249
1250 In the example, the development package depends on the ``perl`` package.
Patrick Williams213cb262021-08-07 19:21:33 -05001251 Thus, the :term:`RDEPENDS` variable has the ``${PN}-dev`` package name as part
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001252 of the variable.
1253
1254 BitBake supports specifying versioned dependencies. Although the
1255 syntax varies depending on the packaging format, BitBake hides these
1256 differences from you. Here is the general syntax to specify versions
Patrick Williams213cb262021-08-07 19:21:33 -05001257 with the :term:`RDEPENDS` variable::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001258
Patrick Williams213cb262021-08-07 19:21:33 -05001259 RDEPENDS:${PN} = "package (operator version)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001260
Andrew Geisslerc926e172021-05-07 16:11:35 -05001261 For ``operator``, you can specify the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001262
1263 =
1264 <
1265 >
1266 <=
1267 >=
1268
1269 For example, the following sets up a dependency on version 1.2 or
Andrew Geisslerc926e172021-05-07 16:11:35 -05001270 greater of the package ``foo``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001271
Patrick Williams213cb262021-08-07 19:21:33 -05001272 RDEPENDS:${PN} = "foo (>= 1.2)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001273
1274 For information on build-time dependencies, see the :term:`DEPENDS`
1275 variable.
1276
Andrew Geisslerf0343792020-11-18 10:42:21 -06001277 :term:`REPODIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001278 The directory in which a local copy of a ``google-repo`` directory is
1279 stored when it is synced.
1280
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001281 :term:`REQUIRED_VERSION`
1282 If there are multiple versions of a recipe available, this variable
Patrick Williams213cb262021-08-07 19:21:33 -05001283 determines which version should be given preference. :term:`REQUIRED_VERSION`
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001284 works in exactly the same manner as :term:`PREFERRED_VERSION`, except
1285 that if the specified version is not available then an error message
1286 is shown and the build fails immediately.
1287
Patrick Williams213cb262021-08-07 19:21:33 -05001288 If both :term:`REQUIRED_VERSION` and :term:`PREFERRED_VERSION` are set for
1289 the same recipe, the :term:`REQUIRED_VERSION` value applies.
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001290
Andrew Geisslerf0343792020-11-18 10:42:21 -06001291 :term:`RPROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001292 A list of package name aliases that a package also provides. These
1293 aliases are useful for satisfying runtime dependencies of other
1294 packages both during the build and on the target (as specified by
Patrick Williams213cb262021-08-07 19:21:33 -05001295 :term:`RDEPENDS`).
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001296
1297 As with all package-controlling variables, you must always use the
1298 variable in conjunction with a package name override. Here is an
Andrew Geisslerc926e172021-05-07 16:11:35 -05001299 example::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001300
Patrick Williams213cb262021-08-07 19:21:33 -05001301 RPROVIDES:${PN} = "widget-abi-2"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001302
Andrew Geisslerf0343792020-11-18 10:42:21 -06001303 :term:`RRECOMMENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001304 A list of packages that extends the usability of a package being
1305 built. The package being built does not depend on this list of
1306 packages in order to successfully build, but needs them for the
1307 extended usability. To specify runtime dependencies for packages, see
Patrick Williams213cb262021-08-07 19:21:33 -05001308 the :term:`RDEPENDS` variable.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001309
1310 BitBake supports specifying versioned recommends. Although the syntax
1311 varies depending on the packaging format, BitBake hides these
1312 differences from you. Here is the general syntax to specify versions
Patrick Williams213cb262021-08-07 19:21:33 -05001313 with the :term:`RRECOMMENDS` variable::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001314
Patrick Williams213cb262021-08-07 19:21:33 -05001315 RRECOMMENDS:${PN} = "package (operator version)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001316
Andrew Geisslerc926e172021-05-07 16:11:35 -05001317 For ``operator``, you can specify the following::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001318
1319 =
1320 <
1321 >
1322 <=
1323 >=
1324
1325 For example, the following sets up a recommend on version
Andrew Geisslerc926e172021-05-07 16:11:35 -05001326 1.2 or greater of the package ``foo``::
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001327
Patrick Williams213cb262021-08-07 19:21:33 -05001328 RRECOMMENDS:${PN} = "foo (>= 1.2)"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001329
Andrew Geisslerf0343792020-11-18 10:42:21 -06001330 :term:`SECTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001331 The section in which packages should be categorized.
1332
Andrew Geisslerf0343792020-11-18 10:42:21 -06001333 :term:`SRC_URI`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001334 The list of source files - local or remote. This variable tells
1335 BitBake which bits to pull for the build and how to pull them. For
1336 example, if the recipe or append file needs to fetch a single tarball
Andrew Geissler595f6302022-01-24 19:11:47 +00001337 from the Internet, the recipe or append file uses a :term:`SRC_URI`
1338 entry that specifies that tarball. On the other hand, if the recipe or
1339 append file needs to fetch a tarball, apply two patches, and include
1340 a custom file, the recipe or append file needs an :term:`SRC_URI`
1341 variable that specifies all those sources.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001342
Andrew Geissler595f6302022-01-24 19:11:47 +00001343 The following list explains the available URI protocols. URI
1344 protocols are highly dependent on particular BitBake Fetcher
1345 submodules. Depending on the fetcher BitBake uses, various URL
1346 parameters are employed. For specifics on the supported Fetchers, see
1347 the :ref:`bitbake-user-manual/bitbake-user-manual-fetching:fetchers`
1348 section.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001349
Andrew Geissler595f6302022-01-24 19:11:47 +00001350 - ``az://`` : Fetches files from an Azure Storage account using HTTPS.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001351
1352 - ``bzr://`` : Fetches files from a Bazaar revision control
1353 repository.
1354
Andrew Geissler595f6302022-01-24 19:11:47 +00001355 - ``ccrc://`` - Fetches files from a ClearCase repository.
1356
1357 - ``cvs://`` : Fetches files from a CVS revision control
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001358 repository.
1359
Andrew Geissler595f6302022-01-24 19:11:47 +00001360 - ``file://`` - Fetches files, which are usually files shipped
1361 with the Metadata, from the local machine.
1362 The path is relative to the :term:`FILESPATH`
1363 variable. Thus, the build system searches, in order, from the
1364 following directories, which are assumed to be a subdirectories of
1365 the directory in which the recipe file (``.bb``) or append file
1366 (``.bbappend``) resides:
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001367
Andrew Geissler595f6302022-01-24 19:11:47 +00001368 - ``${BPN}`` - The base recipe name without any special suffix
1369 or version numbers.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001370
Andrew Geissler595f6302022-01-24 19:11:47 +00001371 - ``${BP}`` - ``${BPN}-${PV}``. The base recipe name and
1372 version but without any special package name suffix.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001373
Andrew Geissler595f6302022-01-24 19:11:47 +00001374 - *files -* Files within a directory, which is named ``files``
1375 and is also alongside the recipe or append file.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001376
1377 - ``ftp://`` : Fetches files from the Internet using FTP.
1378
Andrew Geissler595f6302022-01-24 19:11:47 +00001379 - ``git://`` : Fetches files from a Git revision control
1380 repository.
1381
1382 - ``gitsm://`` : Fetches submodules from a Git revision control
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001383 repository.
1384
1385 - ``hg://`` : Fetches files from a Mercurial (``hg``) revision
1386 control repository.
1387
Andrew Geissler595f6302022-01-24 19:11:47 +00001388 - ``http://`` : Fetches files from the Internet using HTTP.
1389
1390 - ``https://`` : Fetches files from the Internet using HTTPS.
1391
1392 - ``npm://`` - Fetches JavaScript modules from a registry.
1393
1394 - ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
1395 revision control repository.
1396
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001397 - ``p4://`` : Fetches files from a Perforce (``p4``) revision
1398 control repository.
1399
Andrew Geissler595f6302022-01-24 19:11:47 +00001400 - ``repo://`` : Fetches files from a repo (Git) repository.
1401
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001402 - ``ssh://`` : Fetches files from a secure shell.
1403
1404 - ``svn://`` : Fetches files from a Subversion (``svn``) revision
1405 control repository.
1406
1407 Here are some additional options worth mentioning:
1408
Andrew Geissler595f6302022-01-24 19:11:47 +00001409 - ``downloadfilename`` : Specifies the filename used when storing
1410 the downloaded file.
1411
1412 - ``name`` - Specifies a name to be used for association with
1413 :term:`SRC_URI` checksums or :term:`SRCREV` when you have more than one
1414 file or git repository specified in :term:`SRC_URI`. For example::
1415
1416 SRC_URI = "git://example.com/foo.git;name=first \
1417 git://example.com/bar.git;name=second \
1418 http://example.com/file.tar.gz;name=third"
1419
1420 SRCREV_first = "f1d2d2f924e986ac86fdf7b36c94bcdf32beec15"
1421 SRCREV_second = "e242ed3bffccdf271b7fbaf34ed72d089537b42f"
1422 SRC_URI[third.sha256sum] = "13550350a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de"
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001423
1424 - ``subdir`` : Places the file (or extracts its contents) into the
1425 specified subdirectory. This option is useful for unusual tarballs
1426 or other archives that do not have their files already in a
1427 subdirectory within the archive.
1428
Andrew Geissler595f6302022-01-24 19:11:47 +00001429 - ``subpath`` - Limits the checkout to a specific subpath of the
1430 tree when using the Git fetcher is used.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001431
Andrew Geissler595f6302022-01-24 19:11:47 +00001432 - ``unpack`` : Controls whether or not to unpack the file if it is
1433 an archive. The default action is to unpack the file.
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001434
Andrew Geisslerf0343792020-11-18 10:42:21 -06001435 :term:`SRCDATE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001436 The date of the source code used to build the package. This variable
1437 applies only if the source was fetched from a Source Code Manager
1438 (SCM).
1439
Andrew Geisslerf0343792020-11-18 10:42:21 -06001440 :term:`SRCREV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001441 The revision of the source code used to build the package. This
1442 variable applies only when using Subversion, Git, Mercurial and
1443 Bazaar. If you want to build a fixed revision and you want to avoid
1444 performing a query on the remote repository every time BitBake parses
Patrick Williams213cb262021-08-07 19:21:33 -05001445 your recipe, you should specify a :term:`SRCREV` that is a full revision
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001446 identifier and not just a tag.
1447
Andrew Geisslerf0343792020-11-18 10:42:21 -06001448 :term:`SRCREV_FORMAT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001449 Helps construct valid :term:`SRCREV` values when
1450 multiple source controlled URLs are used in
1451 :term:`SRC_URI`.
1452
1453 The system needs help constructing these values under these
Patrick Williams213cb262021-08-07 19:21:33 -05001454 circumstances. Each component in the :term:`SRC_URI` is assigned a name
1455 and these are referenced in the :term:`SRCREV_FORMAT` variable. Consider
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001456 an example with URLs named "machine" and "meta". In this case,
Patrick Williams213cb262021-08-07 19:21:33 -05001457 :term:`SRCREV_FORMAT` could look like "machine_meta" and those names
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001458 would have the SCM versions substituted into each position. Only one
1459 ``AUTOINC`` placeholder is added and if needed. And, this placeholder
1460 is placed at the start of the returned string.
1461
Andrew Geisslerf0343792020-11-18 10:42:21 -06001462 :term:`STAMP`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001463 Specifies the base path used to create recipe stamp files. The path
1464 to an actual stamp file is constructed by evaluating this string and
1465 then appending additional information.
1466
Andrew Geisslerf0343792020-11-18 10:42:21 -06001467 :term:`STAMPCLEAN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001468 Specifies the base path used to create recipe stamp files. Unlike the
Patrick Williams213cb262021-08-07 19:21:33 -05001469 :term:`STAMP` variable, :term:`STAMPCLEAN` can contain
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001470 wildcards to match the range of files a clean operation should
1471 remove. BitBake uses a clean operation to remove any other stamps it
1472 should be removing when creating a new stamp.
1473
Andrew Geisslerf0343792020-11-18 10:42:21 -06001474 :term:`SUMMARY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001475 A short summary for the recipe, which is 72 characters or less.
1476
Andrew Geisslerf0343792020-11-18 10:42:21 -06001477 :term:`SVNDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001478 The directory in which files checked out of a Subversion system are
1479 stored.
1480
Andrew Geisslerf0343792020-11-18 10:42:21 -06001481 :term:`T`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001482 Points to a directory were BitBake places temporary files, which
1483 consist mostly of task logs and scripts, when building a particular
1484 recipe.
1485
Andrew Geisslerf0343792020-11-18 10:42:21 -06001486 :term:`TOPDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001487 Points to the build directory. BitBake automatically sets this
1488 variable.