summaryrefslogtreecommitdiffstats
path: root/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst')
-rw-r--r--bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst237
1 files changed, 156 insertions, 81 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
index ab61b05a87..019afd22f6 100644
--- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
+++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-execution.rst
@@ -16,9 +16,13 @@ data, or simply return information about the execution environment.
16 16
17This chapter describes BitBake's execution process from start to finish 17This chapter describes BitBake's execution process from start to finish
18when you use it to create an image. The execution process is launched 18when you use it to create an image. The execution process is launched
19using the following command form: $ bitbake target For information on 19using the following command form: ::
20the BitBake command and its options, see "`The BitBake 20
21Command <#bitbake-user-manual-command>`__" section. 21 $ bitbake target
22
23For information on
24the BitBake command and its options, see ":ref:`The BitBake Command
25<bitbake-user-manual-command>`" section.
22 26
23.. note:: 27.. note::
24 28
@@ -28,7 +32,11 @@ Command <#bitbake-user-manual-command>`__" section.
28 your project's ``local.conf`` configuration file. 32 your project's ``local.conf`` configuration file.
29 33
30 A common method to determine this value for your build host is to run 34 A common method to determine this value for your build host is to run
31 the following: $ grep processor /proc/cpuinfo This command returns 35 the following: ::
36
37 $ grep processor /proc/cpuinfo
38
39 This command returns
32 the number of processors, which takes into account hyper-threading. 40 the number of processors, which takes into account hyper-threading.
33 Thus, a quad-core build host with hyper-threading most likely shows 41 Thus, a quad-core build host with hyper-threading most likely shows
34 eight processors, which is the value you would then assign to 42 eight processors, which is the value you would then assign to
@@ -46,12 +54,12 @@ to determine what layers BitBake needs to recognize, all necessary
46``layer.conf`` files (one from each layer), and ``bitbake.conf``. The 54``layer.conf`` files (one from each layer), and ``bitbake.conf``. The
47data itself is of various types: 55data itself is of various types:
48 56
49- *Recipes:* Details about particular pieces of software. 57- **Recipes:** Details about particular pieces of software.
50 58
51- *Class Data:* An abstraction of common build information (e.g. how to 59- **Class Data:** An abstraction of common build information (e.g. how to
52 build a Linux kernel). 60 build a Linux kernel).
53 61
54- *Configuration Data:* Machine-specific settings, policy decisions, 62- **Configuration Data:** Machine-specific settings, policy decisions,
55 and so forth. Configuration data acts as the glue to bind everything 63 and so forth. Configuration data acts as the glue to bind everything
56 together. 64 together.
57 65
@@ -72,13 +80,9 @@ Prior to parsing configuration files, BitBake looks at certain
72variables, including: 80variables, including:
73 81
74- :term:`BB_ENV_WHITELIST` 82- :term:`BB_ENV_WHITELIST`
75
76- :term:`BB_ENV_EXTRAWHITE` 83- :term:`BB_ENV_EXTRAWHITE`
77
78- :term:`BB_PRESERVE_ENV` 84- :term:`BB_PRESERVE_ENV`
79
80- :term:`BB_ORIGENV` 85- :term:`BB_ORIGENV`
81
82- :term:`BITBAKE_UI` 86- :term:`BITBAKE_UI`
83 87
84The first four variables in this list relate to how BitBake treats shell 88The first four variables in this list relate to how BitBake treats shell
@@ -87,8 +91,8 @@ the environment variables and provides tight control over the shell
87execution environment. However, through the use of these first four 91execution environment. However, through the use of these first four
88variables, you can apply your control regarding the environment 92variables, you can apply your control regarding the environment
89variables allowed to be used by BitBake in the shell during execution of 93variables allowed to be used by BitBake in the shell during execution of
90tasks. See the "`Passing Information Into the Build Task 94tasks. See the
91Environment <#passing-information-into-the-build-task-environment>`__" 95":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
92section and the information about these variables in the variable 96section and the information about these variables in the variable
93glossary for more information on how they work and on how to use them. 97glossary for more information on how they work and on how to use them.
94 98
@@ -118,8 +122,8 @@ Only variable definitions and include directives are allowed in BitBake
118``.conf`` files. Some variables directly influence BitBake's behavior. 122``.conf`` files. Some variables directly influence BitBake's behavior.
119These variables might have been set from the environment depending on 123These variables might have been set from the environment depending on
120the environment variables previously mentioned or set in the 124the environment variables previously mentioned or set in the
121configuration files. The "`Variables 125configuration files. The ":ref:`bitbake-user-manual/bitbake-user-manual-ref-variables:Variables Glossary`"
122Glossary <#ref-bb-variables-glos>`__" chapter presents a full list of 126chapter presents a full list of
123variables. 127variables.
124 128
125After parsing configuration files, BitBake uses its rudimentary 129After parsing configuration files, BitBake uses its rudimentary
@@ -135,7 +139,11 @@ in ``BBPATH`` in the same way as configuration files.
135 139
136A good way to get an idea of the configuration files and the class files 140A good way to get an idea of the configuration files and the class files
137used in your execution environment is to run the following BitBake 141used in your execution environment is to run the following BitBake
138command: $ bitbake -e > mybb.log Examining the top of the ``mybb.log`` 142command: ::
143
144 $ bitbake -e > mybb.log
145
146Examining the top of the ``mybb.log``
139shows you the many configuration files and class files used in your 147shows you the many configuration files and class files used in your
140execution environment. 148execution environment.
141 149
@@ -147,15 +155,28 @@ execution environment.
147 pair of curly braces in a shell function, the closing curly brace 155 pair of curly braces in a shell function, the closing curly brace
148 must not be located at the start of the line without leading spaces. 156 must not be located at the start of the line without leading spaces.
149 157
150 Here is an example that causes BitBake to produce a parsing error: 158 Here is an example that causes BitBake to produce a parsing error: ::
151 fakeroot create_shar() { cat << "EOF" > 159
152 ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh usage() { echo "test" ###### 160 fakeroot create_shar() {
153 The following "}" at the start of the line causes a parsing error 161 cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
154 ###### } EOF } Writing the recipe this way avoids the error: fakeroot 162 usage()
155 create_shar() { cat << "EOF" > 163 {
156 ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh usage() { echo "test" 164 echo "test"
157 ######The following "}" with a leading space at the start of the line 165 ###### The following "}" at the start of the line causes a parsing error ######
158 avoids the error ###### } EOF } 166 }
167 EOF
168 }
169
170 Writing the recipe this way avoids the error:
171 fakeroot create_shar() {
172 cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
173 usage()
174 {
175 echo "test"
176 ###### The following "}" with a leading space at the start of the line avoids the error ######
177 }
178 EOF
179 }
159 180
160Locating and Parsing Recipes 181Locating and Parsing Recipes
161============================ 182============================
@@ -164,16 +185,17 @@ During the configuration phase, BitBake will have set
164:term:`BBFILES`. BitBake now uses it to construct a 185:term:`BBFILES`. BitBake now uses it to construct a
165list of recipes to parse, along with any append files (``.bbappend``) to 186list of recipes to parse, along with any append files (``.bbappend``) to
166apply. ``BBFILES`` is a space-separated list of available files and 187apply. ``BBFILES`` is a space-separated list of available files and
167supports wildcards. An example would be: BBFILES = 188supports wildcards. An example would be: ::
168"/path/to/bbfiles/*.bb /path/to/appends/*.bbappend" BitBake parses each 189
190 BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
191
192BitBake parses each
169recipe and append file located with ``BBFILES`` and stores the values of 193recipe and append file located with ``BBFILES`` and stores the values of
170various variables into the datastore. 194various variables into the datastore.
171 195
172.. note:: 196.. note::
173 197
174 Append files are applied in the order they are encountered in 198 Append files are applied in the order they are encountered in BBFILES.
175 BBFILES
176 .
177 199
178For each file, a fresh copy of the base configuration is made, then the 200For each file, a fresh copy of the base configuration is made, then the
179recipe is parsed line by line. Any inherit statements cause BitBake to 201recipe is parsed line by line. Any inherit statements cause BitBake to
@@ -184,11 +206,12 @@ parses in order any append files found in ``BBFILES``.
184One common convention is to use the recipe filename to define pieces of 206One common convention is to use the recipe filename to define pieces of
185metadata. For example, in ``bitbake.conf`` the recipe name and version 207metadata. For example, in ``bitbake.conf`` the recipe name and version
186are used to set the variables :term:`PN` and 208are used to set the variables :term:`PN` and
187:term:`PV`: PN = 209:term:`PV`: ::
188"${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 210
189'defaultpkgname'}" PV = 211 PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
190"${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or 212 PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
191'1.0'}" In this example, a recipe called "something_1.2.3.bb" would set 213
214In this example, a recipe called "something_1.2.3.bb" would set
192``PN`` to "something" and ``PV`` to "1.2.3". 215``PN`` to "something" and ``PV`` to "1.2.3".
193 216
194By the time parsing is complete for a recipe, BitBake has a list of 217By the time parsing is complete for a recipe, BitBake has a list of
@@ -215,11 +238,13 @@ Recipe file collections exist to allow the user to have multiple
215repositories of ``.bb`` files that contain the same exact package. For 238repositories of ``.bb`` files that contain the same exact package. For
216example, one could easily use them to make one's own local copy of an 239example, one could easily use them to make one's own local copy of an
217upstream repository, but with custom modifications that one does not 240upstream repository, but with custom modifications that one does not
218want upstream. Here is an example: BBFILES = "/stuff/openembedded/*/*.bb 241want upstream. Here is an example: ::
219/stuff/openembedded.modified/*/*.bb" BBFILE_COLLECTIONS = "upstream 242
220local" BBFILE_PATTERN_upstream = "^/stuff/openembedded/" 243 BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
221BBFILE_PATTERN_local = "^/stuff/openembedded.modified/" 244 BBFILE_COLLECTIONS = "upstream local"
222BBFILE_PRIORITY_upstream = "5" BBFILE_PRIORITY_local = "10" 245 BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
246 BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
247 BBFILE_PRIORITY_upstream = "5" BBFILE_PRIORITY_local = "10"
223 248
224.. note:: 249.. note::
225 250
@@ -244,7 +269,11 @@ variable, which is optional.
244When a recipe uses ``PROVIDES``, that recipe's functionality can be 269When a recipe uses ``PROVIDES``, that recipe's functionality can be
245found under an alternative name or names other than the implicit ``PN`` 270found under an alternative name or names other than the implicit ``PN``
246name. As an example, suppose a recipe named ``keyboard_1.0.bb`` 271name. As an example, suppose a recipe named ``keyboard_1.0.bb``
247contained the following: PROVIDES += "fullkeyboard" The ``PROVIDES`` 272contained the following: ::
273
274 PROVIDES += "fullkeyboard"
275
276The ``PROVIDES``
248list for this recipe becomes "keyboard", which is implicit, and 277list for this recipe becomes "keyboard", which is implicit, and
249"fullkeyboard", which is explicit. Consequently, the functionality found 278"fullkeyboard", which is explicit. Consequently, the functionality found
250in ``keyboard_1.0.bb`` can be found under two different names. 279in ``keyboard_1.0.bb`` can be found under two different names.
@@ -261,9 +290,11 @@ needs to prioritize providers by determining provider preferences.
261A common example in which a target has multiple providers is 290A common example in which a target has multiple providers is
262"virtual/kernel", which is on the ``PROVIDES`` list for each kernel 291"virtual/kernel", which is on the ``PROVIDES`` list for each kernel
263recipe. Each machine often selects the best kernel provider by using a 292recipe. Each machine often selects the best kernel provider by using a
264line similar to the following in the machine configuration file: 293line similar to the following in the machine configuration file: ::
265PREFERRED_PROVIDER_virtual/kernel = "linux-yocto" The default 294
266:term:`PREFERRED_PROVIDER` is the provider 295 PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
296
297The default :term:`PREFERRED_PROVIDER` is the provider
267with the same name as the target. BitBake iterates through each target 298with the same name as the target. BitBake iterates through each target
268it needs to build and resolves them and their dependencies using this 299it needs to build and resolves them and their dependencies using this
269process. 300process.
@@ -299,8 +330,9 @@ If the first recipe is named ``a_1.1.bb``, then the
299 330
300Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by 331Thus, if a recipe named ``a_1.2.bb`` exists, BitBake will choose 1.2 by
301default. However, if you define the following variable in a ``.conf`` 332default. However, if you define the following variable in a ``.conf``
302file that BitBake parses, you can change that preference: 333file that BitBake parses, you can change that preference: ::
303PREFERRED_VERSION_a = "1.1" 334
335 PREFERRED_VERSION_a = "1.1"
304 336
305.. note:: 337.. note::
306 338
@@ -312,7 +344,11 @@ PREFERRED_VERSION_a = "1.1"
312 For example, in the OpenEmbedded codebase, there is a standard, 344 For example, in the OpenEmbedded codebase, there is a standard,
313 versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there 345 versioned recipe file for BusyBox, ``busybox_1.22.1.bb``, but there
314 is also a Git-based version, ``busybox_git.bb``, which explicitly 346 is also a Git-based version, ``busybox_git.bb``, which explicitly
315 contains the line DEFAULT_PREFERENCE = "-1" to ensure that the 347 contains the line ::
348
349 DEFAULT_PREFERENCE = "-1"
350
351 to ensure that the
316 numbered, stable version is always preferred unless the developer 352 numbered, stable version is always preferred unless the developer
317 selects otherwise. 353 selects otherwise.
318 354
@@ -327,15 +363,16 @@ performance on multi-core systems, BitBake considers each task as an
327independent entity with its own set of dependencies. 363independent entity with its own set of dependencies.
328 364
329Dependencies are defined through several variables. You can find 365Dependencies are defined through several variables. You can find
330information about variables BitBake uses in the `Variables 366information about variables BitBake uses in the
331Glossary <#ref-bb-variables-glos>`__ near the end of this manual. At a 367:doc:`bitbake-user-manual-ref-variables` near the end of this manual. At a
332basic level, it is sufficient to know that BitBake uses the 368basic level, it is sufficient to know that BitBake uses the
333:term:`DEPENDS` and 369:term:`DEPENDS` and
334:term:`RDEPENDS` variables when calculating 370:term:`RDEPENDS` variables when calculating
335dependencies. 371dependencies.
336 372
337For more information on how BitBake handles dependencies, see the 373For more information on how BitBake handles dependencies, see the
338"`Dependencies <#dependencies>`__" section. 374:ref:`bitbake-user-manual/bitbake-user-manual-metadata:Dependencies`
375section.
339 376
340.. _ref-bitbake-tasklist: 377.. _ref-bitbake-tasklist:
341 378
@@ -344,7 +381,8 @@ The Task List
344 381
345Based on the generated list of providers and the dependency information, 382Based on the generated list of providers and the dependency information,
346BitBake can now calculate exactly what tasks it needs to run and in what 383BitBake can now calculate exactly what tasks it needs to run and in what
347order it needs to run them. The "`Executing Tasks <#executing-tasks>`__" 384order it needs to run them. The
385:ref:`bitbake-user-manual/bitbake-user-manual-execution:executing tasks`
348section has more information on how BitBake chooses which task to 386section has more information on how BitBake chooses which task to
349execute next. 387execute next.
350 388
@@ -371,8 +409,9 @@ The exact format of the stamps is partly configurable. In modern
371versions of BitBake, a hash is appended to the stamp so that if the 409versions of BitBake, a hash is appended to the stamp so that if the
372configuration changes, the stamp becomes invalid and the task is 410configuration changes, the stamp becomes invalid and the task is
373automatically rerun. This hash, or signature used, is governed by the 411automatically rerun. This hash, or signature used, is governed by the
374signature policy that is configured (see the "`Checksums 412signature policy that is configured (see the
375(Signatures) <#checksums>`__" section for information). It is also 413:ref:`bitbake-user-manual/bitbake-user-manual-execution:checksums (signatures)`
414section for information). It is also
376possible to append extra metadata to the stamp using the 415possible to append extra metadata to the stamp using the
377``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this 416``[stamp-extra-info]`` task flag. For example, OpenEmbedded uses this
378flag to make some tasks machine-specific. 417flag to make some tasks machine-specific.
@@ -383,7 +422,8 @@ flag to make some tasks machine-specific.
383 created when these tasks are run. Consequently, "nostamp" tasks are 422 created when these tasks are run. Consequently, "nostamp" tasks are
384 always rerun. 423 always rerun.
385 424
386For more information on tasks, see the "`Tasks <#tasks>`__" section. 425For more information on tasks, see the
426:ref:`bitbake-user-manual/bitbake-user-manual-metadata:tasks` section.
387 427
388Executing Tasks 428Executing Tasks
389=============== 429===============
@@ -457,14 +497,21 @@ to the task.
457 497
458Like the working directory case, situations exist where dependencies 498Like the working directory case, situations exist where dependencies
459should be ignored. For these cases, you can instruct the build process 499should be ignored. For these cases, you can instruct the build process
460to ignore a dependency by using a line like the following: 500to ignore a dependency by using a line like the following: ::
461PACKAGE_ARCHS[vardepsexclude] = "MACHINE" This example ensures that the 501
502 PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
503
504This example ensures that the
462``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``, 505``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
463even if it does reference it. 506even if it does reference it.
464 507
465Equally, there are cases where we need to add dependencies BitBake is 508Equally, there are cases where we need to add dependencies BitBake is
466not able to find. You can accomplish this by using a line like the 509not able to find. You can accomplish this by using a line like the
467following: PACKAGE_ARCHS[vardeps] = "MACHINE" This example explicitly 510following: ::
511
512 PACKAGE_ARCHS[vardeps] = "MACHINE"
513
514This example explicitly
468adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``. 515adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
469 516
470Consider a case with in-line Python, for example, where BitBake is not 517Consider a case with in-line Python, for example, where BitBake is not
@@ -488,13 +535,15 @@ configuration file, we can give BitBake some extra information to help
488it construct the basehash. The following statement effectively results 535it construct the basehash. The following statement effectively results
489in a list of global variable dependency excludes - variables never 536in a list of global variable dependency excludes - variables never
490included in any checksum. This example uses variables from OpenEmbedded 537included in any checksum. This example uses variables from OpenEmbedded
491to help illustrate the concept: BB_HASHBASE_WHITELIST ?= "TMPDIR FILE 538to help illustrate the concept: ::
492PATH PWD BB_TASKHASH BBPATH DL_DIR \\ SSTATE_DIR THISDIR FILESEXTRAPATHS 539
493FILE_DIRNAME HOME LOGNAME SHELL \\ USER FILESPATH STAGING_DIR_HOST 540 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
494STAGING_DIR_TARGET COREBASE PRSERV_HOST \\ PRSERV_DUMPDIR 541 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
495PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \\ CCACHE_DIR 542 USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
496EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX" The 543 PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
497previous example excludes the work directory, which is part of 544 CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
545
546The previous example excludes the work directory, which is part of
498``TMPDIR``. 547``TMPDIR``.
499 548
500The rules for deciding which hashes of dependent tasks to include 549The rules for deciding which hashes of dependent tasks to include
@@ -507,8 +556,11 @@ OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
507is a dummy "noop" signature handler enabled in BitBake. This means that 556is a dummy "noop" signature handler enabled in BitBake. This means that
508behavior is unchanged from previous versions. ``OE-Core`` uses the 557behavior is unchanged from previous versions. ``OE-Core`` uses the
509"OEBasicHash" signature handler by default through this setting in the 558"OEBasicHash" signature handler by default through this setting in the
510``bitbake.conf`` file: BB_SIGNATURE_HANDLER ?= "OEBasicHash" The 559``bitbake.conf`` file: ::
511"OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same as the "OEBasic" 560
561 BB_SIGNATURE_HANDLER ?= "OEBasicHash"
562
563The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same as the "OEBasic"
512version but adds the task hash to the stamp files. This results in any 564version but adds the task hash to the stamp files. This results in any
513metadata change that changes the task hash, automatically causing the 565metadata change that changes the task hash, automatically causing the
514task to be run again. This removes the need to bump 566task to be run again. This removes the need to bump
@@ -519,13 +571,13 @@ It is also worth noting that the end result of these signature
519generators is to make some dependency and hash information available to 571generators is to make some dependency and hash information available to
520the build. This information includes: 572the build. This information includes:
521 573
522- ``BB_BASEHASH_task-``\ taskname: The base hashes for each task in the 574- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
523 recipe. 575 recipe.
524 576
525- ``BB_BASEHASH_``\ filename\ ``:``\ taskname: The base hashes for each 577- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
526 dependent task. 578 dependent task.
527 579
528- ``BBHASHDEPS_``\ filename\ ``:``\ taskname: The task dependencies for 580- ``BBHASHDEPS_``\ *filename:taskname*: The task dependencies for
529 each task. 581 each task.
530 582
531- ``BB_TASKHASH``: The hash of the currently running task. 583- ``BB_TASKHASH``: The hash of the currently running task.
@@ -547,8 +599,9 @@ where these two stamp trees diverge.
547 It is likely that future versions of BitBake will provide other 599 It is likely that future versions of BitBake will provide other
548 signature handlers triggered through additional "-S" parameters. 600 signature handlers triggered through additional "-S" parameters.
549 601
550You can find more information on checksum metadata in the "`Task 602You can find more information on checksum metadata in the
551Checksums and Setscene <#task-checksums-and-setscene>`__" section. 603:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
604section.
552 605
553Setscene 606Setscene
554======== 607========
@@ -601,8 +654,9 @@ with the list of tasks BitBake thinks has been "covered". The metadata
601can then ensure that this list is correct and can inform BitBake that it 654can then ensure that this list is correct and can inform BitBake that it
602wants specific tasks to be run regardless of the setscene result. 655wants specific tasks to be run regardless of the setscene result.
603 656
604You can find more information on setscene metadata in the "`Task 657You can find more information on setscene metadata in the
605Checksums and Setscene <#task-checksums-and-setscene>`__" section. 658:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
659section.
606 660
607Logging 661Logging
608======= 662=======
@@ -648,11 +702,32 @@ logging configuration is merged using the following rules:
648 702
649As an example, consider the following user logging configuration file 703As an example, consider the following user logging configuration file
650which logs all Hash Equivalence related messages of VERBOSE or higher to 704which logs all Hash Equivalence related messages of VERBOSE or higher to
651a file called ``hashequiv.log`` { "version": 1, "handlers": { 705a file called ``hashequiv.log`` ::
652"autobuilderlog": { "class": "logging.FileHandler", "formatter": 706
653"logfileFormatter", "level": "DEBUG", "filename": "hashequiv.log", 707 {
654"mode": "w" } }, "formatters": { "logfileFormatter": { "format": 708 "version": 1,
655"%(name)s: %(levelname)s: %(message)s" } }, "loggers": { 709 "handlers": {
656"BitBake.SigGen.HashEquiv": { "level": "VERBOSE", "handlers": 710 "autobuilderlog": {
657["autobuilderlog"] }, "BitBake.RunQueue.HashEquiv": { "level": 711 "class": "logging.FileHandler",
658"VERBOSE", "handlers": ["autobuilderlog"] } } } 712 "formatter": "logfileFormatter",
713 "level": "DEBUG",
714 "filename": "hashequiv.log",
715 "mode": "w"
716 }
717 },
718 "formatters": {
719 "logfileFormatter": {
720 "format": "%(name)s: %(levelname)s: %(message)s"
721 }
722 },
723 "loggers": {
724 "BitBake.SigGen.HashEquiv": {
725 "level": "VERBOSE",
726 "handlers": ["autobuilderlog"]
727 },
728 "BitBake.RunQueue.HashEquiv": {
729 "level": "VERBOSE",
730 "handlers": ["autobuilderlog"]
731 }
732 }
733 }