blob: 489fa15fadd221a6dd768b362291d3f02582dc7a [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
26 - Finally, there are variables mentioned in this glossary that do
27 not appear in the BitBake glossary. These other variables are
28 variables used in systems that use BitBake.
29
30.. glossary::
31
Andrew Geisslerf0343792020-11-18 10:42:21 -060032 :term:`ASSUME_PROVIDED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050033 Lists recipe names (:term:`PN` values) BitBake does not
34 attempt to build. Instead, BitBake assumes these recipes have already
35 been built.
36
37 In OpenEmbedded-Core, ``ASSUME_PROVIDED`` mostly specifies native
38 tools that should not be built. An example is ``git-native``, which
39 when specified allows for the Git binary from the host to be used
40 rather than building ``git-native``.
41
Andrew Geissler95ac1b82021-03-31 14:34:31 -050042 :term:`AZ_SAS`
43 Azure Storage Shared Access Signature, when using the
44 :ref:`Azure Storage fetcher <bitbake-user-manual/bitbake-user-manual-fetching:fetchers>`
45 This variable can be defined to be used by the fetcher to authenticate
46 and gain access to non-public artifacts.
47 ::
48
49 AZ_SAS = ""se=2021-01-01&sp=r&sv=2018-11-09&sr=c&skoid=<skoid>&sig=<signature>""
50
51 For more information see Microsoft's Azure Storage documentation at
52 https://docs.microsoft.com/en-us/azure/storage/common/storage-sas-overview
53
54
Andrew Geisslerf0343792020-11-18 10:42:21 -060055 :term:`B`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050056 The directory in which BitBake executes functions during a recipe's
57 build process.
58
Andrew Geisslerf0343792020-11-18 10:42:21 -060059 :term:`BB_ALLOWED_NETWORKS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -050060 Specifies a space-delimited list of hosts that the fetcher is allowed
61 to use to obtain the required source code. Following are
62 considerations surrounding this variable:
63
64 - This host list is only used if
65 :term:`BB_NO_NETWORK` is either not set or
66 set to "0".
67
68 - Limited support for the "``*``" wildcard character for matching
69 against the beginning of host names exists. For example, the
70 following setting matches ``git.gnu.org``, ``ftp.gnu.org``, and
71 ``foo.git.gnu.org``. ::
72
73 BB_ALLOWED_NETWORKS = "\*.gnu.org"
74
75 .. important::
76
77 The use of the "``*``" character only works at the beginning of
78 a host name and it must be isolated from the remainder of the
79 host name. You cannot use the wildcard character in any other
80 location of the name or combined with the front part of the
81 name.
82
83 For example, ``*.foo.bar`` is supported, while ``*aa.foo.bar``
84 is not.
85
86 - Mirrors not in the host list are skipped and logged in debug.
87
88 - Attempts to access networks not in the host list cause a failure.
89
90 Using ``BB_ALLOWED_NETWORKS`` in conjunction with
91 :term:`PREMIRRORS` is very useful. Adding the
92 host you want to use to ``PREMIRRORS`` results in the source code
93 being fetched from an allowed location and avoids raising an error
94 when a host that is not allowed is in a
95 :term:`SRC_URI` statement. This is because the
96 fetcher does not attempt to use the host listed in ``SRC_URI`` after
97 a successful fetch from the ``PREMIRRORS`` occurs.
98
Andrew Geisslerf0343792020-11-18 10:42:21 -060099 :term:`BB_CONSOLELOG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500100 Specifies the path to a log file into which BitBake's user interface
101 writes output during the build.
102
Andrew Geisslerf0343792020-11-18 10:42:21 -0600103 :term:`BB_CURRENTTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500104 Contains the name of the currently running task. The name does not
105 include the ``do_`` prefix.
106
Andrew Geisslerf0343792020-11-18 10:42:21 -0600107 :term:`BB_DANGLINGAPPENDS_WARNONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500108 Defines how BitBake handles situations where an append file
109 (``.bbappend``) has no corresponding recipe file (``.bb``). This
110 condition often occurs when layers get out of sync (e.g. ``oe-core``
111 bumps a recipe version and the old recipe no longer exists and the
112 other layer has not been updated to the new version of the recipe
113 yet).
114
115 The default fatal behavior is safest because it is the sane reaction
116 given something is out of sync. It is important to realize when your
117 changes are no longer being applied.
118
Andrew Geisslerf0343792020-11-18 10:42:21 -0600119 :term:`BB_DEFAULT_TASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500120 The default task to use when none is specified (e.g. with the ``-c``
121 command line option). The task name specified should not include the
122 ``do_`` prefix.
123
Andrew Geissler9b4d8b02021-02-19 12:26:16 -0600124 :term:`BB_DEFAULT_UMASK`
125 The default umask to apply to tasks if specified and no task specific
126 umask flag is set.
127
Andrew Geisslerf0343792020-11-18 10:42:21 -0600128 :term:`BB_DISKMON_DIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500129 Monitors disk space and available inodes during the build and allows
130 you to control the build based on these parameters.
131
132 Disk space monitoring is disabled by default. When setting this
133 variable, use the following form: ::
134
135 BB_DISKMON_DIRS = "<action>,<dir>,<threshold> [...]"
136
137 where:
138
139 <action> is:
140 ABORT: Immediately abort the build when
141 a threshold is broken.
142 STOPTASKS: Stop the build after the currently
143 executing tasks have finished when
144 a threshold is broken.
145 WARN: Issue a warning but continue the
146 build when a threshold is broken.
147 Subsequent warnings are issued as
148 defined by the
149 BB_DISKMON_WARNINTERVAL variable,
150 which must be defined.
151
152 <dir> is:
153 Any directory you choose. You can specify one or
154 more directories to monitor by separating the
155 groupings with a space. If two directories are
156 on the same device, only the first directory
157 is monitored.
158
159 <threshold> is:
160 Either the minimum available disk space,
161 the minimum number of free inodes, or
162 both. You must specify at least one. To
163 omit one or the other, simply omit the value.
164 Specify the threshold using G, M, K for Gbytes,
165 Mbytes, and Kbytes, respectively. If you do
166 not specify G, M, or K, Kbytes is assumed by
167 default. Do not use GB, MB, or KB.
168
169 Here are some examples: ::
170
171 BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
172 BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
173 BB_DISKMON_DIRS = "ABORT,${TMPDIR},,100K"
174
175 The first example works only if you also set the
176 :term:`BB_DISKMON_WARNINTERVAL`
177 variable. This example causes the build system to immediately abort
178 when either the disk space in ``${TMPDIR}`` drops below 1 Gbyte or
179 the available free inodes drops below 100 Kbytes. Because two
180 directories are provided with the variable, the build system also
181 issues a warning when the disk space in the ``${SSTATE_DIR}``
182 directory drops below 1 Gbyte or the number of free inodes drops
183 below 100 Kbytes. Subsequent warnings are issued during intervals as
184 defined by the ``BB_DISKMON_WARNINTERVAL`` variable.
185
186 The second example stops the build after all currently executing
187 tasks complete when the minimum disk space in the ``${TMPDIR}``
188 directory drops below 1 Gbyte. No disk monitoring occurs for the free
189 inodes in this case.
190
191 The final example immediately aborts the build when the number of
192 free inodes in the ``${TMPDIR}`` directory drops below 100 Kbytes. No
193 disk space monitoring for the directory itself occurs in this case.
194
Andrew Geisslerf0343792020-11-18 10:42:21 -0600195 :term:`BB_DISKMON_WARNINTERVAL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500196 Defines the disk space and free inode warning intervals.
197
198 If you are going to use the ``BB_DISKMON_WARNINTERVAL`` variable, you
199 must also use the :term:`BB_DISKMON_DIRS`
200 variable and define its action as "WARN". During the build,
201 subsequent warnings are issued each time disk space or number of free
202 inodes further reduces by the respective interval.
203
204 If you do not provide a ``BB_DISKMON_WARNINTERVAL`` variable and you
205 do use ``BB_DISKMON_DIRS`` with the "WARN" action, the disk
206 monitoring interval defaults to the following:
207 BB_DISKMON_WARNINTERVAL = "50M,5K"
208
209 When specifying the variable in your configuration file, use the
210 following form: ::
211
212 BB_DISKMON_WARNINTERVAL = "<disk_space_interval>,<disk_inode_interval>"
213
214 where:
215
216 <disk_space_interval> is:
217 An interval of memory expressed in either
218 G, M, or K for Gbytes, Mbytes, or Kbytes,
219 respectively. You cannot use GB, MB, or KB.
220
221 <disk_inode_interval> is:
222 An interval of free inodes expressed in either
223 G, M, or K for Gbytes, Mbytes, or Kbytes,
224 respectively. You cannot use GB, MB, or KB.
225
226 Here is an example: ::
227
228 BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
229 BB_DISKMON_WARNINTERVAL = "50M,5K"
230
231 These variables cause BitBake to
232 issue subsequent warnings each time the available disk space further
233 reduces by 50 Mbytes or the number of free inodes further reduces by
234 5 Kbytes in the ``${SSTATE_DIR}`` directory. Subsequent warnings
235 based on the interval occur each time a respective interval is
236 reached beyond the initial warning (i.e. 1 Gbytes and 100 Kbytes).
237
Andrew Geisslerf0343792020-11-18 10:42:21 -0600238 :term:`BB_ENV_WHITELIST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500239 Specifies the internal whitelist of variables to allow through from
240 the external environment into BitBake's datastore. If the value of
241 this variable is not specified (which is the default), the following
242 list is used: :term:`BBPATH`, :term:`BB_PRESERVE_ENV`,
243 :term:`BB_ENV_WHITELIST`, and :term:`BB_ENV_EXTRAWHITE`.
244
245 .. note::
246
247 You must set this variable in the external environment in order
248 for it to work.
249
Andrew Geisslerf0343792020-11-18 10:42:21 -0600250 :term:`BB_ENV_EXTRAWHITE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500251 Specifies an additional set of variables to allow through (whitelist)
252 from the external environment into BitBake's datastore. This list of
253 variables are on top of the internal list set in
254 :term:`BB_ENV_WHITELIST`.
255
256 .. note::
257
258 You must set this variable in the external environment in order
259 for it to work.
260
Andrew Geisslerf0343792020-11-18 10:42:21 -0600261 :term:`BB_FETCH_PREMIRRORONLY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500262 When set to "1", causes BitBake's fetcher module to only search
263 :term:`PREMIRRORS` for files. BitBake will not
264 search the main :term:`SRC_URI` or
265 :term:`MIRRORS`.
266
Andrew Geisslerf0343792020-11-18 10:42:21 -0600267 :term:`BB_FILENAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500268 Contains the filename of the recipe that owns the currently running
269 task. For example, if the ``do_fetch`` task that resides in the
270 ``my-recipe.bb`` is executing, the ``BB_FILENAME`` variable contains
271 "/foo/path/my-recipe.bb".
272
Andrew Geisslerf0343792020-11-18 10:42:21 -0600273 :term:`BB_GENERATE_MIRROR_TARBALLS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500274 Causes tarballs of the Git repositories, including the Git metadata,
275 to be placed in the :term:`DL_DIR` directory. Anyone
276 wishing to create a source mirror would want to enable this variable.
277
278 For performance reasons, creating and placing tarballs of the Git
279 repositories is not the default action by BitBake. ::
280
281 BB_GENERATE_MIRROR_TARBALLS = "1"
282
Andrew Geisslerf0343792020-11-18 10:42:21 -0600283 :term:`BB_HASHCONFIG_WHITELIST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500284 Lists variables that are excluded from base configuration checksum,
285 which is used to determine if the cache can be reused.
286
287 One of the ways BitBake determines whether to re-parse the main
288 metadata is through checksums of the variables in the datastore of
289 the base configuration data. There are variables that you typically
290 want to exclude when checking whether or not to re-parse and thus
291 rebuild the cache. As an example, you would usually exclude ``TIME``
292 and ``DATE`` because these variables are always changing. If you did
293 not exclude them, BitBake would never reuse the cache.
294
Andrew Geisslerf0343792020-11-18 10:42:21 -0600295 :term:`BB_HASHBASE_WHITELIST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500296 Lists variables that are excluded from checksum and dependency data.
297 Variables that are excluded can therefore change without affecting
298 the checksum mechanism. A common example would be the variable for
299 the path of the build. BitBake's output should not (and usually does
300 not) depend on the directory in which it was built.
301
Andrew Geisslerf0343792020-11-18 10:42:21 -0600302 :term:`BB_HASHCHECK_FUNCTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500303 Specifies the name of the function to call during the "setscene" part
304 of the task's execution in order to validate the list of task hashes.
305 The function returns the list of setscene tasks that should be
306 executed.
307
308 At this point in the execution of the code, the objective is to
309 quickly verify if a given setscene function is likely to work or not.
310 It's easier to check the list of setscene functions in one pass than
311 to call many individual tasks. The returned list need not be
312 completely accurate. A given setscene task can still later fail.
313 However, the more accurate the data returned, the more efficient the
314 build will be.
315
Andrew Geisslerf0343792020-11-18 10:42:21 -0600316 :term:`BB_INVALIDCONF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500317 Used in combination with the ``ConfigParsed`` event to trigger
318 re-parsing the base metadata (i.e. all the recipes). The
319 ``ConfigParsed`` event can set the variable to trigger the re-parse.
320 You must be careful to avoid recursive loops with this functionality.
321
Andrew Geisslerf0343792020-11-18 10:42:21 -0600322 :term:`BB_LOGCONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500323 Specifies the name of a config file that contains the user logging
324 configuration. See
325 :ref:`bitbake-user-manual/bitbake-user-manual-execution:logging`
326 for additional information
327
Andrew Geisslerf0343792020-11-18 10:42:21 -0600328 :term:`BB_LOGFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500329 Specifies the name of the log files saved into
330 ``${``\ :term:`T`\ ``}``. By default, the ``BB_LOGFMT``
331 variable is undefined and the log file names get created using the
332 following form: ::
333
334 log.{task}.{pid}
335
336 If you want to force log files to take a specific name, you can set this
337 variable in a configuration file.
338
Andrew Geisslerf0343792020-11-18 10:42:21 -0600339 :term:`BB_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500340 Allows BitBake to run at a specific priority (i.e. nice level).
341 System permissions usually mean that BitBake can reduce its priority
342 but not raise it again. See :term:`BB_TASK_NICE_LEVEL` for
343 additional information.
344
Andrew Geisslerf0343792020-11-18 10:42:21 -0600345 :term:`BB_NO_NETWORK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500346 Disables network access in the BitBake fetcher modules. With this
347 access disabled, any command that attempts to access the network
348 becomes an error.
349
350 Disabling network access is useful for testing source mirrors,
351 running builds when not connected to the Internet, and when operating
352 in certain kinds of firewall environments.
353
Andrew Geisslerf0343792020-11-18 10:42:21 -0600354 :term:`BB_NUMBER_THREADS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500355 The maximum number of tasks BitBake should run in parallel at any one
356 time. If your host development system supports multiple cores, a good
357 rule of thumb is to set this variable to twice the number of cores.
358
Andrew Geisslerf0343792020-11-18 10:42:21 -0600359 :term:`BB_NUMBER_PARSE_THREADS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500360 Sets the number of threads BitBake uses when parsing. By default, the
361 number of threads is equal to the number of cores on the system.
362
Andrew Geisslerf0343792020-11-18 10:42:21 -0600363 :term:`BB_ORIGENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500364 Contains a copy of the original external environment in which BitBake
365 was run. The copy is taken before any whitelisted variable values are
366 filtered into BitBake's datastore.
367
368 .. note::
369
370 The contents of this variable is a datastore object that can be
371 queried using the normal datastore operations.
372
Andrew Geisslerf0343792020-11-18 10:42:21 -0600373 :term:`BB_PRESERVE_ENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500374 Disables whitelisting and instead allows all variables through from
375 the external environment into BitBake's datastore.
376
377 .. note::
378
379 You must set this variable in the external environment in order
380 for it to work.
381
Andrew Geisslerf0343792020-11-18 10:42:21 -0600382 :term:`BB_RUNFMT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500383 Specifies the name of the executable script files (i.e. run files)
384 saved into ``${``\ :term:`T`\ ``}``. By default, the
385 ``BB_RUNFMT`` variable is undefined and the run file names get
386 created using the following form: ::
387
388 run.{task}.{pid}
389
390 If you want to force run files to take a specific name, you can set this
391 variable in a configuration file.
392
Andrew Geisslerf0343792020-11-18 10:42:21 -0600393 :term:`BB_RUNTASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500394 Contains the name of the currently executing task. The value includes
395 the "do\_" prefix. For example, if the currently executing task is
396 ``do_config``, the value is "do_config".
397
Andrew Geisslerf0343792020-11-18 10:42:21 -0600398 :term:`BB_SCHEDULER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500399 Selects the name of the scheduler to use for the scheduling of
400 BitBake tasks. Three options exist:
401
402 - *basic* - The basic framework from which everything derives. Using
403 this option causes tasks to be ordered numerically as they are
404 parsed.
405
406 - *speed* - Executes tasks first that have more tasks depending on
407 them. The "speed" option is the default.
408
409 - *completion* - Causes the scheduler to try to complete a given
410 recipe once its build has started.
411
Andrew Geisslerf0343792020-11-18 10:42:21 -0600412 :term:`BB_SCHEDULERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500413 Defines custom schedulers to import. Custom schedulers need to be
414 derived from the ``RunQueueScheduler`` class.
415
416 For information how to select a scheduler, see the
417 :term:`BB_SCHEDULER` variable.
418
Andrew Geisslerf0343792020-11-18 10:42:21 -0600419 :term:`BB_SETSCENE_DEPVALID`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500420 Specifies a function BitBake calls that determines whether BitBake
421 requires a setscene dependency to be met.
422
423 When running a setscene task, BitBake needs to know which
424 dependencies of that setscene task also need to be run. Whether
425 dependencies also need to be run is highly dependent on the metadata.
426 The function specified by this variable returns a "True" or "False"
427 depending on whether the dependency needs to be met.
428
Andrew Geisslerf0343792020-11-18 10:42:21 -0600429 :term:`BB_SETSCENE_VERIFY_FUNCTION2`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500430 Specifies a function to call that verifies the list of planned task
431 execution before the main task execution happens. The function is
432 called once BitBake has a list of setscene tasks that have run and
433 either succeeded or failed.
434
435 The function allows for a task list check to see if they make sense.
436 Even if BitBake was planning to skip a task, the returned value of
437 the function can force BitBake to run the task, which is necessary
438 under certain metadata defined circumstances.
439
Andrew Geisslerf0343792020-11-18 10:42:21 -0600440 :term:`BB_SIGNATURE_EXCLUDE_FLAGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500441 Lists variable flags (varflags) that can be safely excluded from
442 checksum and dependency data for keys in the datastore. When
443 generating checksum or dependency data for keys in the datastore, the
444 flags set against that key are normally included in the checksum.
445
446 For more information on varflags, see the
447 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variable flags`"
448 section.
449
Andrew Geisslerf0343792020-11-18 10:42:21 -0600450 :term:`BB_SIGNATURE_HANDLER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500451 Defines the name of the signature handler BitBake uses. The signature
452 handler defines the way stamp files are created and handled, if and
453 how the signature is incorporated into the stamps, and how the
454 signature itself is generated.
455
456 A new signature handler can be added by injecting a class derived
457 from the ``SignatureGenerator`` class into the global namespace.
458
Andrew Geisslerf0343792020-11-18 10:42:21 -0600459 :term:`BB_SRCREV_POLICY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500460 Defines the behavior of the fetcher when it interacts with source
461 control systems and dynamic source revisions. The
462 ``BB_SRCREV_POLICY`` variable is useful when working without a
463 network.
464
465 The variable can be set using one of two policies:
466
467 - *cache* - Retains the value the system obtained previously rather
468 than querying the source control system each time.
469
470 - *clear* - Queries the source controls system every time. With this
471 policy, there is no cache. The "clear" policy is the default.
472
Andrew Geisslerf0343792020-11-18 10:42:21 -0600473 :term:`BB_STAMP_POLICY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500474 Defines the mode used for how timestamps of stamp files are compared.
475 You can set the variable to one of the following modes:
476
477 - *perfile* - Timestamp comparisons are only made between timestamps
478 of a specific recipe. This is the default mode.
479
480 - *full* - Timestamp comparisons are made for all dependencies.
481
482 - *whitelist* - Identical to "full" mode except timestamp
483 comparisons are made for recipes listed in the
484 :term:`BB_STAMP_WHITELIST` variable.
485
486 .. note::
487
488 Stamp policies are largely obsolete with the introduction of
489 setscene tasks.
490
Andrew Geisslerf0343792020-11-18 10:42:21 -0600491 :term:`BB_STAMP_WHITELIST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500492 Lists files whose stamp file timestamps are compared when the stamp
493 policy mode is set to "whitelist". For information on stamp policies,
494 see the :term:`BB_STAMP_POLICY` variable.
495
Andrew Geisslerf0343792020-11-18 10:42:21 -0600496 :term:`BB_STRICT_CHECKSUM`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500497 Sets a more strict checksum mechanism for non-local URLs. Setting
498 this variable to a value causes BitBake to report an error if it
499 encounters a non-local URL that does not have at least one checksum
500 specified.
501
Andrew Geisslerf0343792020-11-18 10:42:21 -0600502 :term:`BB_TASK_IONICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500503 Allows adjustment of a task's Input/Output priority. During
504 Autobuilder testing, random failures can occur for tasks due to I/O
505 starvation. These failures occur during various QEMU runtime
506 timeouts. You can use the ``BB_TASK_IONICE_LEVEL`` variable to adjust
507 the I/O priority of these tasks.
508
509 .. note::
510
511 This variable works similarly to the :term:`BB_TASK_NICE_LEVEL`
512 variable except with a task's I/O priorities.
513
514 Set the variable as follows: ::
515
516 BB_TASK_IONICE_LEVEL = "class.prio"
517
518 For *class*, the default value is "2", which is a best effort. You can use
519 "1" for realtime and "3" for idle. If you want to use realtime, you
520 must have superuser privileges.
521
522 For *prio*, you can use any value from "0", which is the highest
523 priority, to "7", which is the lowest. The default value is "4". You
524 do not need any special privileges to use this range of priority
525 values.
526
527 .. note::
528
529 In order for your I/O priority settings to take effect, you need the
530 Completely Fair Queuing (CFQ) Scheduler selected for the backing block
531 device. To select the scheduler, use the following command form where
532 device is the device (e.g. sda, sdb, and so forth): ::
533
Andrew Geisslerf0343792020-11-18 10:42:21 -0600534 $ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500535
Andrew Geisslerf0343792020-11-18 10:42:21 -0600536 :term:`BB_TASK_NICE_LEVEL`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500537 Allows specific tasks to change their priority (i.e. nice level).
538
539 You can use this variable in combination with task overrides to raise
540 or lower priorities of specific tasks. For example, on the `Yocto
541 Project <http://www.yoctoproject.org>`__ autobuilder, QEMU emulation
542 in images is given a higher priority as compared to build tasks to
543 ensure that images do not suffer timeouts on loaded systems.
544
Andrew Geisslerf0343792020-11-18 10:42:21 -0600545 :term:`BB_TASKHASH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500546 Within an executing task, this variable holds the hash of the task as
547 returned by the currently enabled signature generator.
548
Andrew Geisslerf0343792020-11-18 10:42:21 -0600549 :term:`BB_VERBOSE_LOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500550 Controls how verbose BitBake is during builds. If set, shell scripts
551 echo commands and shell script output appears on standard out
552 (stdout).
553
Andrew Geisslerf0343792020-11-18 10:42:21 -0600554 :term:`BB_WORKERCONTEXT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500555 Specifies if the current context is executing a task. BitBake sets
556 this variable to "1" when a task is being executed. The value is not
557 set when the task is in server context during parsing or event
558 handling.
559
Andrew Geisslerf0343792020-11-18 10:42:21 -0600560 :term:`BBCLASSEXTEND`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500561 Allows you to extend a recipe so that it builds variants of the
562 software. Some examples of these variants for recipes from the
563 OpenEmbedded-Core metadata are "natives" such as ``quilt-native``,
564 which is a copy of Quilt built to run on the build system; "crosses"
565 such as ``gcc-cross``, which is a compiler built to run on the build
566 machine but produces binaries that run on the target ``MACHINE``;
567 "nativesdk", which targets the SDK machine instead of ``MACHINE``;
568 and "mulitlibs" in the form "``multilib:``\ multilib_name".
569
570 To build a different variant of the recipe with a minimal amount of
571 code, it usually is as simple as adding the variable to your recipe.
572 Here are two examples. The "native" variants are from the
573 OpenEmbedded-Core metadata: ::
574
575 BBCLASSEXTEND =+ "native nativesdk"
576 BBCLASSEXTEND =+ "multilib:multilib_name"
577
578 .. note::
579
580 Internally, the ``BBCLASSEXTEND`` mechanism generates recipe
581 variants by rewriting variable values and applying overrides such
582 as ``_class-native``. For example, to generate a native version of
583 a recipe, a :term:`DEPENDS` on "foo" is
584 rewritten to a ``DEPENDS`` on "foo-native".
585
586 Even when using ``BBCLASSEXTEND``, the recipe is only parsed once.
587 Parsing once adds some limitations. For example, it is not
588 possible to include a different file depending on the variant,
589 since ``include`` statements are processed when the recipe is
590 parsed.
591
Andrew Geisslerf0343792020-11-18 10:42:21 -0600592 :term:`BBDEBUG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500593 Sets the BitBake debug output level to a specific value as
594 incremented by the ``-D`` command line option.
595
596 .. note::
597
598 You must set this variable in the external environment in order
599 for it to work.
600
Andrew Geisslerf0343792020-11-18 10:42:21 -0600601 :term:`BBFILE_COLLECTIONS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500602 Lists the names of configured layers. These names are used to find
603 the other ``BBFILE_*`` variables. Typically, each layer appends its
604 name to this variable in its ``conf/layer.conf`` file.
605
Andrew Geisslerf0343792020-11-18 10:42:21 -0600606 :term:`BBFILE_PATTERN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500607 Variable that expands to match files from
608 :term:`BBFILES` in a particular layer. This
609 variable is used in the ``conf/layer.conf`` file and must be suffixed
610 with the name of the specific layer (e.g.
611 ``BBFILE_PATTERN_emenlow``).
612
Andrew Geisslerf0343792020-11-18 10:42:21 -0600613 :term:`BBFILE_PRIORITY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500614 Assigns the priority for recipe files in each layer.
615
616 This variable is useful in situations where the same recipe appears
617 in more than one layer. Setting this variable allows you to
618 prioritize a layer against other layers that contain the same recipe
619 - effectively letting you control the precedence for the multiple
620 layers. The precedence established through this variable stands
621 regardless of a recipe's version (:term:`PV` variable).
622 For example, a layer that has a recipe with a higher ``PV`` value but
623 for which the ``BBFILE_PRIORITY`` is set to have a lower precedence
624 still has a lower precedence.
625
626 A larger value for the ``BBFILE_PRIORITY`` variable results in a
627 higher precedence. For example, the value 6 has a higher precedence
628 than the value 5. If not specified, the ``BBFILE_PRIORITY`` variable
629 is set based on layer dependencies (see the ``LAYERDEPENDS`` variable
630 for more information. The default priority, if unspecified for a
631 layer with no dependencies, is the lowest defined priority + 1 (or 1
632 if no priorities are defined).
633
634 .. tip::
635
636 You can use the command bitbake-layers show-layers to list all
637 configured layers along with their priorities.
638
Andrew Geisslerf0343792020-11-18 10:42:21 -0600639 :term:`BBFILES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500640 A space-separated list of recipe files BitBake uses to build
641 software.
642
643 When specifying recipe files, you can pattern match using Python's
644 `glob <https://docs.python.org/3/library/glob.html>`_ syntax.
645 For details on the syntax, see the documentation by following the
646 previous link.
647
Andrew Geissler95ac1b82021-03-31 14:34:31 -0500648 :term:`BBFILES_DYNAMIC`
649 Activates content depending on presence of identified layers. You
650 identify the layers by the collections that the layers define.
651
652 Use the ``BBFILES_DYNAMIC`` variable to avoid ``.bbappend`` files whose
653 corresponding ``.bb`` file is in a layer that attempts to modify other
654 layers through ``.bbappend`` but does not want to introduce a hard
655 dependency on those other layers.
656
657 Additionally you can prefix the rule with "!" to add ``.bbappend`` and
658 ``.bb`` files in case a layer is not present. Use this avoid hard
659 dependency on those other layers.
660
661 Use the following form for ``BBFILES_DYNAMIC``: ::
662
663 collection_name:filename_pattern
664
665 The following example identifies two collection names and two filename
666 patterns: ::
667
668 BBFILES_DYNAMIC += "\
669 clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
670 core:${LAYERDIR}/bbappends/openembedded-core/meta/*/*/*.bbappend \
671 "
672
673 When the collection name is prefixed with "!" it will add the file pattern in case
674 the layer is absent: ::
675
676 BBFILES_DYNAMIC += "\
677 !clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
678 "
679
680 This next example shows an error message that occurs because invalid
681 entries are found, which cause parsing to abort: ::
682
683 ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
684 /work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
685 /work/my-layer/bbappends/openembedded-core/meta/*/*/*.bbappend
686
Andrew Geisslerf0343792020-11-18 10:42:21 -0600687 :term:`BBINCLUDED`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500688 Contains a space-separated list of all of all files that BitBake's
689 parser included during parsing of the current file.
690
Andrew Geisslerf0343792020-11-18 10:42:21 -0600691 :term:`BBINCLUDELOGS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500692 If set to a value, enables printing the task log when reporting a
693 failed task.
694
Andrew Geisslerf0343792020-11-18 10:42:21 -0600695 :term:`BBINCLUDELOGS_LINES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500696 If :term:`BBINCLUDELOGS` is set, specifies
697 the maximum number of lines from the task log file to print when
698 reporting a failed task. If you do not set ``BBINCLUDELOGS_LINES``,
699 the entire log is printed.
700
Andrew Geisslerf0343792020-11-18 10:42:21 -0600701 :term:`BBLAYERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500702 Lists the layers to enable during the build. This variable is defined
703 in the ``bblayers.conf`` configuration file in the build directory.
704 Here is an example: ::
705
706 BBLAYERS = " \
707 /home/scottrif/poky/meta \
708 /home/scottrif/poky/meta-yocto \
709 /home/scottrif/poky/meta-yocto-bsp \
710 /home/scottrif/poky/meta-mykernel \
711 "
712
713 This example enables four layers, one of which is a custom, user-defined
714 layer named ``meta-mykernel``.
715
Andrew Geisslerf0343792020-11-18 10:42:21 -0600716 :term:`BBLAYERS_FETCH_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500717 Sets the base location where layers are stored. This setting is used
718 in conjunction with ``bitbake-layers layerindex-fetch`` and tells
719 ``bitbake-layers`` where to place the fetched layers.
720
Andrew Geisslerf0343792020-11-18 10:42:21 -0600721 :term:`BBMASK`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500722 Prevents BitBake from processing recipes and recipe append files.
723
724 You can use the ``BBMASK`` variable to "hide" these ``.bb`` and
725 ``.bbappend`` files. BitBake ignores any recipe or recipe append
726 files that match any of the expressions. It is as if BitBake does not
727 see them at all. Consequently, matching files are not parsed or
728 otherwise used by BitBake.
729
730 The values you provide are passed to Python's regular expression
731 compiler. Consequently, the syntax follows Python's Regular
732 Expression (re) syntax. The expressions are compared against the full
733 paths to the files. For complete syntax information, see Python's
734 documentation at http://docs.python.org/3/library/re.html.
735
736 The following example uses a complete regular expression to tell
737 BitBake to ignore all recipe and recipe append files in the
738 ``meta-ti/recipes-misc/`` directory: ::
739
740 BBMASK = "meta-ti/recipes-misc/"
741
742 If you want to mask out multiple directories or recipes, you can
743 specify multiple regular expression fragments. This next example
744 masks out multiple directories and individual recipes: ::
745
746 BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
747 BBMASK += "/meta-oe/recipes-support/"
748 BBMASK += "/meta-foo/.*/openldap"
749 BBMASK += "opencv.*\.bbappend"
750 BBMASK += "lzma"
751
752 .. note::
753
754 When specifying a directory name, use the trailing slash character
755 to ensure you match just that directory name.
756
Andrew Geisslerf0343792020-11-18 10:42:21 -0600757 :term:`BBMULTICONFIG`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500758 Enables BitBake to perform multiple configuration builds and lists
759 each separate configuration (multiconfig). You can use this variable
760 to cause BitBake to build multiple targets where each target has a
761 separate configuration. Define ``BBMULTICONFIG`` in your
762 ``conf/local.conf`` configuration file.
763
764 As an example, the following line specifies three multiconfigs, each
765 having a separate configuration file: ::
766
767 BBMULTIFONFIG = "configA configB configC"
768
769 Each configuration file you use must reside in the
770 build directory within a directory named ``conf/multiconfig`` (e.g.
771 build_directory\ ``/conf/multiconfig/configA.conf``).
772
773 For information on how to use ``BBMULTICONFIG`` in an environment
774 that supports building targets with multiple configurations, see the
775 ":ref:`bitbake-user-manual/bitbake-user-manual-intro:executing a multiple configuration build`"
776 section.
777
Andrew Geisslerf0343792020-11-18 10:42:21 -0600778 :term:`BBPATH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500779 Used by BitBake to locate class (``.bbclass``) and configuration
780 (``.conf``) files. This variable is analogous to the ``PATH``
781 variable.
782
783 If you run BitBake from a directory outside of the build directory,
784 you must be sure to set ``BBPATH`` to point to the build directory.
785 Set the variable as you would any environment variable and then run
786 BitBake: ::
787
788 $ BBPATH="build_directory"
789 $ export BBPATH
790 $ bitbake target
791
Andrew Geisslerf0343792020-11-18 10:42:21 -0600792 :term:`BBSERVER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500793 Points to the server that runs memory-resident BitBake. The variable
794 is only used when you employ memory-resident BitBake.
795
Andrew Geisslerf0343792020-11-18 10:42:21 -0600796 :term:`BBTARGETS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500797 Allows you to use a configuration file to add to the list of
798 command-line target recipes you want to build.
799
Andrew Geisslerf0343792020-11-18 10:42:21 -0600800 :term:`BBVERSIONS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500801 Allows a single recipe to build multiple versions of a project from a
802 single recipe file. You also able to specify conditional metadata
803 using the :term:`OVERRIDES` mechanism for a
804 single version or for an optionally named range of versions.
805
806 For more information on ``BBVERSIONS``, see the
807 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:variants - class extension mechanism`"
808 section.
809
Andrew Geisslerf0343792020-11-18 10:42:21 -0600810 :term:`BITBAKE_UI`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500811 Used to specify the UI module to use when running BitBake. Using this
812 variable is equivalent to using the ``-u`` command-line option.
813
814 .. note::
815
816 You must set this variable in the external environment in order
817 for it to work.
818
Andrew Geisslerf0343792020-11-18 10:42:21 -0600819 :term:`BUILDNAME`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500820 A name assigned to the build. The name defaults to a datetime stamp
821 of when the build was started but can be defined by the metadata.
822
Andrew Geisslerf0343792020-11-18 10:42:21 -0600823 :term:`BZRDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500824 The directory in which files checked out of a Bazaar system are
825 stored.
826
Andrew Geisslerf0343792020-11-18 10:42:21 -0600827 :term:`CACHE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500828 Specifies the directory BitBake uses to store a cache of the metadata
829 so it does not need to be parsed every time BitBake is started.
830
Andrew Geisslerf0343792020-11-18 10:42:21 -0600831 :term:`CVSDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500832 The directory in which files checked out under the CVS system are
833 stored.
834
Andrew Geisslerf0343792020-11-18 10:42:21 -0600835 :term:`DEFAULT_PREFERENCE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500836 Specifies a weak bias for recipe selection priority.
837
838 The most common usage of this is variable is to set it to "-1" within
839 a recipe for a development version of a piece of software. Using the
840 variable in this way causes the stable version of the recipe to build
841 by default in the absence of ``PREFERRED_VERSION`` being used to
842 build the development version.
843
844 .. note::
845
846 The bias provided by DEFAULT_PREFERENCE is weak and is overridden by
847 :term:`BBFILE_PRIORITY` if that variable is different between two
848 layers that contain different versions of the same recipe.
849
Andrew Geisslerf0343792020-11-18 10:42:21 -0600850 :term:`DEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500851 Lists a recipe's build-time dependencies (i.e. other recipe files).
852
853 Consider this simple example for two recipes named "a" and "b" that
854 produce similarly named packages. In this example, the ``DEPENDS``
855 statement appears in the "a" recipe: ::
856
857 DEPENDS = "b"
858
859 Here, the dependency is such that the ``do_configure`` task for recipe "a"
860 depends on the ``do_populate_sysroot`` task of recipe "b". This means
861 anything that recipe "b" puts into sysroot is available when recipe "a" is
862 configuring itself.
863
864 For information on runtime dependencies, see the :term:`RDEPENDS`
865 variable.
866
Andrew Geisslerf0343792020-11-18 10:42:21 -0600867 :term:`DESCRIPTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500868 A long description for the recipe.
869
Andrew Geisslerf0343792020-11-18 10:42:21 -0600870 :term:`DL_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500871 The central download directory used by the build process to store
872 downloads. By default, ``DL_DIR`` gets files suitable for mirroring for
873 everything except Git repositories. If you want tarballs of Git
874 repositories, use the :term:`BB_GENERATE_MIRROR_TARBALLS` variable.
875
Andrew Geisslerf0343792020-11-18 10:42:21 -0600876 :term:`EXCLUDE_FROM_WORLD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500877 Directs BitBake to exclude a recipe from world builds (i.e.
878 ``bitbake world``). During world builds, BitBake locates, parses and
879 builds all recipes found in every layer exposed in the
880 ``bblayers.conf`` configuration file.
881
882 To exclude a recipe from a world build using this variable, set the
883 variable to "1" in the recipe.
884
885 .. note::
886
887 Recipes added to ``EXCLUDE_FROM_WORLD`` may still be built during a world
888 build in order to satisfy dependencies of other recipes. Adding a
889 recipe to ``EXCLUDE_FROM_WORLD`` only ensures that the recipe is not
890 explicitly added to the list of build targets in a world build.
891
Andrew Geisslerf0343792020-11-18 10:42:21 -0600892 :term:`FAKEROOT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500893 Contains the command to use when running a shell script in a fakeroot
894 environment. The ``FAKEROOT`` variable is obsolete and has been
895 replaced by the other ``FAKEROOT*`` variables. See these entries in
896 the glossary for more information.
897
Andrew Geisslerf0343792020-11-18 10:42:21 -0600898 :term:`FAKEROOTBASEENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500899 Lists environment variables to set when executing the command defined
900 by :term:`FAKEROOTCMD` that starts the
901 bitbake-worker process in the fakeroot environment.
902
Andrew Geisslerf0343792020-11-18 10:42:21 -0600903 :term:`FAKEROOTCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500904 Contains the command that starts the bitbake-worker process in the
905 fakeroot environment.
906
Andrew Geisslerf0343792020-11-18 10:42:21 -0600907 :term:`FAKEROOTDIRS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500908 Lists directories to create before running a task in the fakeroot
909 environment.
910
Andrew Geisslerf0343792020-11-18 10:42:21 -0600911 :term:`FAKEROOTENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500912 Lists environment variables to set when running a task in the
913 fakeroot environment. For additional information on environment
914 variables and the fakeroot environment, see the
915 :term:`FAKEROOTBASEENV` variable.
916
Andrew Geisslerf0343792020-11-18 10:42:21 -0600917 :term:`FAKEROOTNOENV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500918 Lists environment variables to set when running a task that is not in
919 the fakeroot environment. For additional information on environment
920 variables and the fakeroot environment, see the
921 :term:`FAKEROOTENV` variable.
922
Andrew Geisslerf0343792020-11-18 10:42:21 -0600923 :term:`FETCHCMD`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500924 Defines the command the BitBake fetcher module executes when running
925 fetch operations. You need to use an override suffix when you use the
926 variable (e.g. ``FETCHCMD_git`` or ``FETCHCMD_svn``).
927
Andrew Geisslerf0343792020-11-18 10:42:21 -0600928 :term:`FILE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500929 Points at the current file. BitBake sets this variable during the
930 parsing process to identify the file being parsed. BitBake also sets
931 this variable when a recipe is being executed to identify the recipe
932 file.
933
Andrew Geisslerf0343792020-11-18 10:42:21 -0600934 :term:`FILESPATH`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500935 Specifies directories BitBake uses when searching for patches and
936 files. The "local" fetcher module uses these directories when
937 handling ``file://`` URLs. The variable behaves like a shell ``PATH``
938 environment variable. The value is a colon-separated list of
939 directories that are searched left-to-right in order.
940
Andrew Geisslerf0343792020-11-18 10:42:21 -0600941 :term:`GITDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500942 The directory in which a local copy of a Git repository is stored
943 when it is cloned.
944
Andrew Geisslerf0343792020-11-18 10:42:21 -0600945 :term:`HGDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500946 The directory in which files checked out of a Mercurial system are
947 stored.
948
Andrew Geisslerf0343792020-11-18 10:42:21 -0600949 :term:`HOMEPAGE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500950 Website where more information about the software the recipe is
951 building can be found.
952
Andrew Geisslerf0343792020-11-18 10:42:21 -0600953 :term:`INHERIT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500954 Causes the named class or classes to be inherited globally. Anonymous
955 functions in the class or classes are not executed for the base
956 configuration and in each individual recipe. The OpenEmbedded build
957 system ignores changes to ``INHERIT`` in individual recipes.
958
959 For more information on ``INHERIT``, see the
960 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:\`\`inherit\`\` configuration directive`"
961 section.
962
Andrew Geisslerf0343792020-11-18 10:42:21 -0600963 :term:`LAYERDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500964 Lists the layers, separated by spaces, upon which this recipe
965 depends. Optionally, you can specify a specific layer version for a
966 dependency by adding it to the end of the layer name with a colon,
967 (e.g. "anotherlayer:3" to be compared against
968 :term:`LAYERVERSION`\ ``_anotherlayer`` in
969 this case). BitBake produces an error if any dependency is missing or
970 the version numbers do not match exactly (if specified).
971
972 You use this variable in the ``conf/layer.conf`` file. You must also
973 use the specific layer name as a suffix to the variable (e.g.
974 ``LAYERDEPENDS_mylayer``).
975
Andrew Geisslerf0343792020-11-18 10:42:21 -0600976 :term:`LAYERDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500977 When used inside the ``layer.conf`` configuration file, this variable
978 provides the path of the current layer. This variable is not
979 available outside of ``layer.conf`` and references are expanded
980 immediately when parsing of the file completes.
981
Andrew Geisslerf0343792020-11-18 10:42:21 -0600982 :term:`LAYERDIR_RE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500983 When used inside the ``layer.conf`` configuration file, this variable
984 provides the path of the current layer, escaped for use in a regular
985 expression (:term:`BBFILE_PATTERN`). This
986 variable is not available outside of ``layer.conf`` and references
987 are expanded immediately when parsing of the file completes.
988
Andrew Geisslerf0343792020-11-18 10:42:21 -0600989 :term:`LAYERVERSION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -0500990 Optionally specifies the version of a layer as a single number. You
991 can use this variable within
992 :term:`LAYERDEPENDS` for another layer in
993 order to depend on a specific version of the layer.
994
995 You use this variable in the ``conf/layer.conf`` file. You must also
996 use the specific layer name as a suffix to the variable (e.g.
997 ``LAYERDEPENDS_mylayer``).
998
Andrew Geisslerf0343792020-11-18 10:42:21 -0600999 :term:`LICENSE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001000 The list of source licenses for the recipe.
1001
Andrew Geisslerf0343792020-11-18 10:42:21 -06001002 :term:`MIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001003 Specifies additional paths from which BitBake gets source code. When
1004 the build system searches for source code, it first tries the local
1005 download directory. If that location fails, the build system tries
1006 locations defined by :term:`PREMIRRORS`, the
1007 upstream source, and then locations specified by ``MIRRORS`` in that
1008 order.
1009
Andrew Geisslerf0343792020-11-18 10:42:21 -06001010 :term:`MULTI_PROVIDER_WHITELIST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001011 Allows you to suppress BitBake warnings caused when building two
1012 separate recipes that provide the same output.
1013
1014 BitBake normally issues a warning when building two different recipes
1015 where each provides the same output. This scenario is usually
1016 something the user does not want. However, cases do exist where it
1017 makes sense, particularly in the ``virtual/*`` namespace. You can use
1018 this variable to suppress BitBake's warnings.
1019
1020 To use the variable, list provider names (e.g. recipe names,
1021 ``virtual/kernel``, and so forth).
1022
Andrew Geisslerf0343792020-11-18 10:42:21 -06001023 :term:`OVERRIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001024 BitBake uses ``OVERRIDES`` to control what variables are overridden
1025 after BitBake parses recipes and configuration files.
1026
1027 Following is a simple example that uses an overrides list based on
1028 machine architectures: OVERRIDES = "arm:x86:mips:powerpc" You can
1029 find information on how to use ``OVERRIDES`` in the
1030 ":ref:`bitbake-user-manual/bitbake-user-manual-metadata:conditional syntax
1031 (overrides)`" section.
1032
Andrew Geisslerf0343792020-11-18 10:42:21 -06001033 :term:`P4DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001034 The directory in which a local copy of a Perforce depot is stored
1035 when it is fetched.
1036
Andrew Geisslerf0343792020-11-18 10:42:21 -06001037 :term:`PACKAGES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001038 The list of packages the recipe creates.
1039
Andrew Geisslerf0343792020-11-18 10:42:21 -06001040 :term:`PACKAGES_DYNAMIC`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001041 A promise that your recipe satisfies runtime dependencies for
1042 optional modules that are found in other recipes.
1043 ``PACKAGES_DYNAMIC`` does not actually satisfy the dependencies, it
1044 only states that they should be satisfied. For example, if a hard,
1045 runtime dependency (:term:`RDEPENDS`) of another
1046 package is satisfied during the build through the
1047 ``PACKAGES_DYNAMIC`` variable, but a package with the module name is
1048 never actually produced, then the other package will be broken.
1049
Andrew Geisslerf0343792020-11-18 10:42:21 -06001050 :term:`PE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001051 The epoch of the recipe. By default, this variable is unset. The
1052 variable is used to make upgrades possible when the versioning scheme
1053 changes in some backwards incompatible way.
1054
Andrew Geisslerf0343792020-11-18 10:42:21 -06001055 :term:`PERSISTENT_DIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001056 Specifies the directory BitBake uses to store data that should be
1057 preserved between builds. In particular, the data stored is the data
1058 that uses BitBake's persistent data API and the data used by the PR
1059 Server and PR Service.
1060
Andrew Geisslerf0343792020-11-18 10:42:21 -06001061 :term:`PF`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001062 Specifies the recipe or package name and includes all version and
1063 revision numbers (i.e. ``eglibc-2.13-r20+svnr15508/`` and
1064 ``bash-4.2-r1/``).
1065
Andrew Geisslerf0343792020-11-18 10:42:21 -06001066 :term:`PN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001067 The recipe name.
1068
Andrew Geisslerf0343792020-11-18 10:42:21 -06001069 :term:`PR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001070 The revision of the recipe.
1071
Andrew Geisslerf0343792020-11-18 10:42:21 -06001072 :term:`PREFERRED_PROVIDER`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001073 Determines which recipe should be given preference when multiple
1074 recipes provide the same item. You should always suffix the variable
1075 with the name of the provided item, and you should set it to the
1076 :term:`PN` of the recipe to which you want to give
1077 precedence. Some examples: ::
1078
1079 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
1080 PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
1081 PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
1082
Andrew Geisslerf0343792020-11-18 10:42:21 -06001083 :term:`PREFERRED_PROVIDERS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001084 Determines which recipe should be given preference for cases where
1085 multiple recipes provide the same item. Functionally,
1086 ``PREFERRED_PROVIDERS`` is identical to
1087 :term:`PREFERRED_PROVIDER`. However, the ``PREFERRED_PROVIDERS`` variable
1088 lets you define preferences for multiple situations using the following
1089 form: ::
1090
1091 PREFERRED_PROVIDERS = "xxx:yyy aaa:bbb ..."
1092
1093 This form is a convenient replacement for the following: ::
1094
1095 PREFERRED_PROVIDER_xxx = "yyy"
1096 PREFERRED_PROVIDER_aaa = "bbb"
1097
Andrew Geisslerf0343792020-11-18 10:42:21 -06001098 :term:`PREFERRED_VERSION`
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001099 If there are multiple versions of a recipe available, this variable
1100 determines which version should be given preference. You must always
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001101 suffix the variable with the :term:`PN` you want to
1102 select, and you should set :term:`PV` accordingly for
1103 precedence.
1104
1105 The ``PREFERRED_VERSION`` variable supports limited wildcard use
1106 through the "``%``" character. You can use the character to match any
1107 number of characters, which can be useful when specifying versions
1108 that contain long revision numbers that potentially change. Here are
1109 two examples: ::
1110
1111 PREFERRED_VERSION_python = "2.7.3"
1112 PREFERRED_VERSION_linux-yocto = "4.12%"
1113
1114 .. important::
1115
1116 The use of the " % " character is limited in that it only works at the
1117 end of the string. You cannot use the wildcard character in any other
1118 location of the string.
1119
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001120 If a recipe with the specified version is not available, a warning
1121 message will be shown. See :term:`REQUIRED_VERSION` if you want this
1122 to be an error instead.
1123
Andrew Geisslerf0343792020-11-18 10:42:21 -06001124 :term:`PREMIRRORS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001125 Specifies additional paths from which BitBake gets source code. When
1126 the build system searches for source code, it first tries the local
1127 download directory. If that location fails, the build system tries
1128 locations defined by ``PREMIRRORS``, the upstream source, and then
1129 locations specified by :term:`MIRRORS` in that order.
1130
1131 Typically, you would add a specific server for the build system to
1132 attempt before any others by adding something like the following to
1133 your configuration: ::
1134
1135 PREMIRRORS_prepend = "\
1136 git://.*/.* http://www.yoctoproject.org/sources/ \n \
1137 ftp://.*/.* http://www.yoctoproject.org/sources/ \n \
1138 http://.*/.* http://www.yoctoproject.org/sources/ \n \
1139 https://.*/.* http://www.yoctoproject.org/sources/ \n"
1140
1141 These changes cause the build system to intercept Git, FTP, HTTP, and
1142 HTTPS requests and direct them to the ``http://`` sources mirror. You can
1143 use ``file://`` URLs to point to local directories or network shares as
1144 well.
1145
Andrew Geisslerf0343792020-11-18 10:42:21 -06001146 :term:`PROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001147 A list of aliases by which a particular recipe can be known. By
1148 default, a recipe's own ``PN`` is implicitly already in its
1149 ``PROVIDES`` list. If a recipe uses ``PROVIDES``, the additional
1150 aliases are synonyms for the recipe and can be useful satisfying
1151 dependencies of other recipes during the build as specified by
1152 ``DEPENDS``.
1153
1154 Consider the following example ``PROVIDES`` statement from a recipe
1155 file ``libav_0.8.11.bb``: ::
1156
1157 PROVIDES += "libpostproc"
1158
1159 The ``PROVIDES`` statement results in the "libav" recipe also being known
1160 as "libpostproc".
1161
1162 In addition to providing recipes under alternate names, the
1163 ``PROVIDES`` mechanism is also used to implement virtual targets. A
1164 virtual target is a name that corresponds to some particular
1165 functionality (e.g. a Linux kernel). Recipes that provide the
1166 functionality in question list the virtual target in ``PROVIDES``.
1167 Recipes that depend on the functionality in question can include the
1168 virtual target in :term:`DEPENDS` to leave the
1169 choice of provider open.
1170
1171 Conventionally, virtual targets have names on the form
1172 "virtual/function" (e.g. "virtual/kernel"). The slash is simply part
1173 of the name and has no syntactical significance.
1174
Andrew Geisslerf0343792020-11-18 10:42:21 -06001175 :term:`PRSERV_HOST`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001176 The network based :term:`PR` service host and port.
1177
1178 Following is an example of how the ``PRSERV_HOST`` variable is set: ::
1179
1180 PRSERV_HOST = "localhost:0"
1181
1182 You must set the variable if you want to automatically start a local PR
1183 service. You can set ``PRSERV_HOST`` to other values to use a remote PR
1184 service.
1185
Andrew Geisslerf0343792020-11-18 10:42:21 -06001186 :term:`PV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001187 The version of the recipe.
1188
Andrew Geisslerf0343792020-11-18 10:42:21 -06001189 :term:`RDEPENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001190 Lists a package's runtime dependencies (i.e. other packages) that
1191 must be installed in order for the built package to run correctly. If
1192 a package in this list cannot be found during the build, you will get
1193 a build error.
1194
1195 Because the ``RDEPENDS`` variable applies to packages being built,
1196 you should always use the variable in a form with an attached package
1197 name. For example, suppose you are building a development package
1198 that depends on the ``perl`` package. In this case, you would use the
1199 following ``RDEPENDS`` statement: ::
1200
1201 RDEPENDS_${PN}-dev += "perl"
1202
1203 In the example, the development package depends on the ``perl`` package.
1204 Thus, the ``RDEPENDS`` variable has the ``${PN}-dev`` package name as part
1205 of the variable.
1206
1207 BitBake supports specifying versioned dependencies. Although the
1208 syntax varies depending on the packaging format, BitBake hides these
1209 differences from you. Here is the general syntax to specify versions
1210 with the ``RDEPENDS`` variable: ::
1211
1212 RDEPENDS_${PN} = "package (operator version)"
1213
1214 For ``operator``, you can specify the following: ::
1215
1216 =
1217 <
1218 >
1219 <=
1220 >=
1221
1222 For example, the following sets up a dependency on version 1.2 or
1223 greater of the package ``foo``: ::
1224
1225 RDEPENDS_${PN} = "foo (>= 1.2)"
1226
1227 For information on build-time dependencies, see the :term:`DEPENDS`
1228 variable.
1229
Andrew Geisslerf0343792020-11-18 10:42:21 -06001230 :term:`REPODIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001231 The directory in which a local copy of a ``google-repo`` directory is
1232 stored when it is synced.
1233
Andrew Geissler3b8a17c2021-04-15 15:55:55 -05001234 :term:`REQUIRED_VERSION`
1235 If there are multiple versions of a recipe available, this variable
1236 determines which version should be given preference. ``REQUIRED_VERSION``
1237 works in exactly the same manner as :term:`PREFERRED_VERSION`, except
1238 that if the specified version is not available then an error message
1239 is shown and the build fails immediately.
1240
1241 If both ``REQUIRED_VERSION`` and ``PREFERRED_VERSION`` are set for
1242 the same recipe, the ``REQUIRED_VERSION`` value applies.
1243
Andrew Geisslerf0343792020-11-18 10:42:21 -06001244 :term:`RPROVIDES`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001245 A list of package name aliases that a package also provides. These
1246 aliases are useful for satisfying runtime dependencies of other
1247 packages both during the build and on the target (as specified by
1248 ``RDEPENDS``).
1249
1250 As with all package-controlling variables, you must always use the
1251 variable in conjunction with a package name override. Here is an
1252 example: ::
1253
1254 RPROVIDES_${PN} = "widget-abi-2"
1255
Andrew Geisslerf0343792020-11-18 10:42:21 -06001256 :term:`RRECOMMENDS`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001257 A list of packages that extends the usability of a package being
1258 built. The package being built does not depend on this list of
1259 packages in order to successfully build, but needs them for the
1260 extended usability. To specify runtime dependencies for packages, see
1261 the ``RDEPENDS`` variable.
1262
1263 BitBake supports specifying versioned recommends. Although the syntax
1264 varies depending on the packaging format, BitBake hides these
1265 differences from you. Here is the general syntax to specify versions
1266 with the ``RRECOMMENDS`` variable: ::
1267
1268 RRECOMMENDS_${PN} = "package (operator version)"
1269
1270 For ``operator``, you can specify the following: ::
1271
1272 =
1273 <
1274 >
1275 <=
1276 >=
1277
1278 For example, the following sets up a recommend on version
1279 1.2 or greater of the package ``foo``: ::
1280
1281 RRECOMMENDS_${PN} = "foo (>= 1.2)"
1282
Andrew Geisslerf0343792020-11-18 10:42:21 -06001283 :term:`SECTION`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001284 The section in which packages should be categorized.
1285
Andrew Geisslerf0343792020-11-18 10:42:21 -06001286 :term:`SRC_URI`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001287 The list of source files - local or remote. This variable tells
1288 BitBake which bits to pull for the build and how to pull them. For
1289 example, if the recipe or append file needs to fetch a single tarball
1290 from the Internet, the recipe or append file uses a ``SRC_URI`` entry
1291 that specifies that tarball. On the other hand, if the recipe or
1292 append file needs to fetch a tarball and include a custom file, the
1293 recipe or append file needs an ``SRC_URI`` variable that specifies
1294 all those sources.
1295
1296 The following list explains the available URI protocols:
1297
1298 - ``file://`` : Fetches files, which are usually files shipped
1299 with the metadata, from the local machine. The path is relative to
1300 the :term:`FILESPATH` variable.
1301
1302 - ``bzr://`` : Fetches files from a Bazaar revision control
1303 repository.
1304
1305 - ``git://`` : Fetches files from a Git revision control
1306 repository.
1307
1308 - ``osc://`` : Fetches files from an OSC (OpenSUSE Build service)
1309 revision control repository.
1310
1311 - ``repo://`` : Fetches files from a repo (Git) repository.
1312
1313 - ``http://`` : Fetches files from the Internet using HTTP.
1314
1315 - ``https://`` : Fetches files from the Internet using HTTPS.
1316
1317 - ``ftp://`` : Fetches files from the Internet using FTP.
1318
1319 - ``cvs://`` : Fetches files from a CVS revision control
1320 repository.
1321
1322 - ``hg://`` : Fetches files from a Mercurial (``hg``) revision
1323 control repository.
1324
1325 - ``p4://`` : Fetches files from a Perforce (``p4``) revision
1326 control repository.
1327
1328 - ``ssh://`` : Fetches files from a secure shell.
1329
1330 - ``svn://`` : Fetches files from a Subversion (``svn``) revision
1331 control repository.
1332
Andrew Geissler95ac1b82021-03-31 14:34:31 -05001333 - ``az://`` : Fetches files from an Azure Storage account using HTTPS.
1334
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001335 Here are some additional options worth mentioning:
1336
1337 - ``unpack`` : Controls whether or not to unpack the file if it is
1338 an archive. The default action is to unpack the file.
1339
1340 - ``subdir`` : Places the file (or extracts its contents) into the
1341 specified subdirectory. This option is useful for unusual tarballs
1342 or other archives that do not have their files already in a
1343 subdirectory within the archive.
1344
1345 - ``name`` : Specifies a name to be used for association with
1346 ``SRC_URI`` checksums when you have more than one file specified
1347 in ``SRC_URI``.
1348
1349 - ``downloadfilename`` : Specifies the filename used when storing
1350 the downloaded file.
1351
Andrew Geisslerf0343792020-11-18 10:42:21 -06001352 :term:`SRCDATE`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001353 The date of the source code used to build the package. This variable
1354 applies only if the source was fetched from a Source Code Manager
1355 (SCM).
1356
Andrew Geisslerf0343792020-11-18 10:42:21 -06001357 :term:`SRCREV`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001358 The revision of the source code used to build the package. This
1359 variable applies only when using Subversion, Git, Mercurial and
1360 Bazaar. If you want to build a fixed revision and you want to avoid
1361 performing a query on the remote repository every time BitBake parses
1362 your recipe, you should specify a ``SRCREV`` that is a full revision
1363 identifier and not just a tag.
1364
Andrew Geisslerf0343792020-11-18 10:42:21 -06001365 :term:`SRCREV_FORMAT`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001366 Helps construct valid :term:`SRCREV` values when
1367 multiple source controlled URLs are used in
1368 :term:`SRC_URI`.
1369
1370 The system needs help constructing these values under these
1371 circumstances. Each component in the ``SRC_URI`` is assigned a name
1372 and these are referenced in the ``SRCREV_FORMAT`` variable. Consider
1373 an example with URLs named "machine" and "meta". In this case,
1374 ``SRCREV_FORMAT`` could look like "machine_meta" and those names
1375 would have the SCM versions substituted into each position. Only one
1376 ``AUTOINC`` placeholder is added and if needed. And, this placeholder
1377 is placed at the start of the returned string.
1378
Andrew Geisslerf0343792020-11-18 10:42:21 -06001379 :term:`STAMP`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001380 Specifies the base path used to create recipe stamp files. The path
1381 to an actual stamp file is constructed by evaluating this string and
1382 then appending additional information.
1383
Andrew Geisslerf0343792020-11-18 10:42:21 -06001384 :term:`STAMPCLEAN`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001385 Specifies the base path used to create recipe stamp files. Unlike the
1386 :term:`STAMP` variable, ``STAMPCLEAN`` can contain
1387 wildcards to match the range of files a clean operation should
1388 remove. BitBake uses a clean operation to remove any other stamps it
1389 should be removing when creating a new stamp.
1390
Andrew Geisslerf0343792020-11-18 10:42:21 -06001391 :term:`SUMMARY`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001392 A short summary for the recipe, which is 72 characters or less.
1393
Andrew Geisslerf0343792020-11-18 10:42:21 -06001394 :term:`SVNDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001395 The directory in which files checked out of a Subversion system are
1396 stored.
1397
Andrew Geisslerf0343792020-11-18 10:42:21 -06001398 :term:`T`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001399 Points to a directory were BitBake places temporary files, which
1400 consist mostly of task logs and scripts, when building a particular
1401 recipe.
1402
Andrew Geisslerf0343792020-11-18 10:42:21 -06001403 :term:`TOPDIR`
Andrew Geisslerc9f78652020-09-18 14:11:35 -05001404 Points to the build directory. BitBake automatically sets this
1405 variable.