summaryrefslogtreecommitdiffstats
path: root/documentation/overview-manual
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/overview-manual')
-rw-r--r--documentation/overview-manual/overview-manual-concepts.rst249
-rw-r--r--documentation/overview-manual/overview-manual-development-environment.rst151
-rw-r--r--documentation/overview-manual/overview-manual-intro.rst24
-rw-r--r--documentation/overview-manual/overview-manual-yp-intro.rst82
4 files changed, 270 insertions, 236 deletions
diff --git a/documentation/overview-manual/overview-manual-concepts.rst b/documentation/overview-manual/overview-manual-concepts.rst
index 7f8f735b37..695984ff1e 100644
--- a/documentation/overview-manual/overview-manual-concepts.rst
+++ b/documentation/overview-manual/overview-manual-concepts.rst
@@ -34,14 +34,14 @@ itself is of various types:
34 34
35BitBake knows how to combine multiple data sources together and refers 35BitBake knows how to combine multiple data sources together and refers
36to each data source as a layer. For information on layers, see the 36to each data source as a layer. For information on layers, see the
37"`Understanding and Creating 37":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
38Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
39section of the Yocto Project Development Tasks Manual. 38section of the Yocto Project Development Tasks Manual.
40 39
41Following are some brief details on these core components. For 40Following are some brief details on these core components. For
42additional information on how these components interact during a build, 41additional information on how these components interact during a build,
43see the "`OpenEmbedded Build System 42see the
44Concepts <#openembedded-build-system-build-concepts>`__" section. 43":ref:`overview-manual/overview-manual-concepts:openembedded build system concepts`"
44section.
45 45
46.. _usingpoky-components-bitbake: 46.. _usingpoky-components-bitbake:
47 47
@@ -57,14 +57,23 @@ This section briefly introduces BitBake. If you want more information on
57BitBake, see the :doc:`BitBake User Manual <bitbake:index>`. 57BitBake, see the :doc:`BitBake User Manual <bitbake:index>`.
58 58
59To see a list of the options BitBake supports, use either of the 59To see a list of the options BitBake supports, use either of the
60following commands: $ bitbake -h $ bitbake --help 60following commands:
61::
62
63 $ bitbake -h
64 $ bitbake --help
61 65
62The most common usage for BitBake is ``bitbake packagename``, where 66The most common usage for BitBake is ``bitbake packagename``, where
63``packagename`` is the name of the package you want to build (referred 67``packagename`` is the name of the package you want to build (referred
64to as the "target"). The target often equates to the first part of a 68to as the "target"). The target often equates to the first part of a
65recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``). 69recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``).
66So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might 70So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might
67type the following: $ bitbake matchbox-desktop Several different 71type the following:
72::
73
74 $ bitbake matchbox-desktop
75
76Several different
68versions of ``matchbox-desktop`` might exist. BitBake chooses the one 77versions of ``matchbox-desktop`` might exist. BitBake chooses the one
69selected by the distribution configuration. You can get more details 78selected by the distribution configuration. You can get more details
70about how BitBake chooses between different target versions and 79about how BitBake chooses between different target versions and
@@ -153,9 +162,8 @@ By convention, layers in the Yocto Project follow a specific form.
153Conforming to a known structure allows BitBake to make assumptions 162Conforming to a known structure allows BitBake to make assumptions
154during builds on where to find types of metadata. You can find 163during builds on where to find types of metadata. You can find
155procedures and learn about tools (i.e. ``bitbake-layers``) for creating 164procedures and learn about tools (i.e. ``bitbake-layers``) for creating
156layers suitable for the Yocto Project in the "`Understanding and 165layers suitable for the Yocto Project in the
157Creating 166":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
158Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
159section of the Yocto Project Development Tasks Manual. 167section of the Yocto Project Development Tasks Manual.
160 168
161.. _openembedded-build-system-build-concepts: 169.. _openembedded-build-system-build-concepts:
@@ -225,7 +233,7 @@ reside as example files in the ``build/conf`` directory of the
225:term:`Source Directory`. For simplicity, 233:term:`Source Directory`. For simplicity,
226this section refers to the Source Directory as the "Poky Directory." 234this section refers to the Source Directory as the "Poky Directory."
227 235
228When you clone the `Poky <&YOCTO_DOCS_REF_URL;#poky>`__ Git repository 236When you clone the :term:`Poky` Git repository
229or you download and unpack a Yocto Project release, you can set up the 237or you download and unpack a Yocto Project release, you can set up the
230Source Directory to be named anything you want. For this discussion, the 238Source Directory to be named anything you want. For this discussion, the
231cloned repository uses the default name ``poky``. 239cloned repository uses the default name ``poky``.
@@ -238,7 +246,7 @@ cloned repository uses the default name ``poky``.
238The ``meta-poky`` layer inside Poky contains a ``conf`` directory that 246The ``meta-poky`` layer inside Poky contains a ``conf`` directory that
239has example configuration files. These example files are used as a basis 247has example configuration files. These example files are used as a basis
240for creating actual configuration files when you source 248for creating actual configuration files when you source
241````` <&YOCTO_DOCS_REF_URL;#structure-core-script>`__, which is the 249:ref:`structure-core-script`, which is the
242build environment script. 250build environment script.
243 251
244Sourcing the build environment script creates a 252Sourcing the build environment script creates a
@@ -251,8 +259,8 @@ if versions do not already exist in the Build Directory at the time you
251source the build environment setup script. 259source the build environment setup script.
252 260
253Because the Poky repository is fundamentally an aggregation of existing 261Because the Poky repository is fundamentally an aggregation of existing
254repositories, some users might be familiar with running the ```` script 262repositories, some users might be familiar with running the
255in the context of separate 263:ref:`structure-core-script` script in the context of separate
256:term:`OpenEmbedded-Core (OE-Core)` and BitBake 264:term:`OpenEmbedded-Core (OE-Core)` and BitBake
257repositories rather than a single Poky repository. This discussion 265repositories rather than a single Poky repository. This discussion
258assumes the script is executed from within a cloned or unpacked version 266assumes the script is executed from within a cloned or unpacked version
@@ -320,16 +328,16 @@ The ``bblayers.conf`` file tells BitBake what layers you want considered
320during the build. By default, the layers listed in this file include 328during the build. By default, the layers listed in this file include
321layers minimally needed by the build system. However, you must manually 329layers minimally needed by the build system. However, you must manually
322add any custom layers you have created. You can find more information on 330add any custom layers you have created. You can find more information on
323working with the ``bblayers.conf`` file in the "`Enabling Your 331working with the ``bblayers.conf`` file in the
324Layer <&YOCTO_DOCS_DEV_URL;#enabling-your-layer>`__" section in the 332":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`"
325Yocto Project Development Tasks Manual. 333section in the Yocto Project Development Tasks Manual.
326 334
327The files ``site.conf`` and ``auto.conf`` are not created by the 335The files ``site.conf`` and ``auto.conf`` are not created by the
328environment initialization script. If you want the ``site.conf`` file, 336environment initialization script. If you want the ``site.conf`` file,
329you need to create that yourself. The ``auto.conf`` file is typically 337you need to create that yourself. The ``auto.conf`` file is typically
330created by an autobuilder: 338created by an autobuilder:
331 339
332- *``site.conf``:* You can use the ``conf/site.conf`` configuration 340- *site.conf:* You can use the ``conf/site.conf`` configuration
333 file to configure multiple build directories. For example, suppose 341 file to configure multiple build directories. For example, suppose
334 you had several build environments and they shared some common 342 you had several build environments and they shared some common
335 features. You can set these default build properties here. A good 343 features. You can set these default build properties here. A good
@@ -346,7 +354,7 @@ created by an autobuilder:
346 configurations within that build directory's ``conf/local.conf`` 354 configurations within that build directory's ``conf/local.conf``
347 file. 355 file.
348 356
349- *``auto.conf``:* The file is usually created and written to by an 357- *auto.conf:* The file is usually created and written to by an
350 autobuilder. The settings put into the file are typically the same as 358 autobuilder. The settings put into the file are typically the same as
351 you would find in the ``conf/local.conf`` or the ``conf/site.conf`` 359 you would find in the ``conf/local.conf`` or the ``conf/site.conf``
352 files. 360 files.
@@ -382,10 +390,10 @@ In general, three types of layer input exists. You can see them below
382the "User Configuration" box in the `general workflow 390the "User Configuration" box in the `general workflow
383figure <#general-workflow-figure>`__: 391figure <#general-workflow-figure>`__:
384 392
385- *Metadata (``.bb`` + Patches):* Software layers containing 393- *Metadata (.bb + Patches):* Software layers containing
386 user-supplied recipe files, patches, and append files. A good example 394 user-supplied recipe files, patches, and append files. A good example
387 of a software layer might be the 395 of a software layer might be the
388 ```meta-qt5`https://github.com/meta-qt5/meta-qt5 layer from 396 `meta-qt5 layer <https://github.com/meta-qt5/meta-qt5>`__ from
389 the `OpenEmbedded Layer 397 the `OpenEmbedded Layer
390 Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__. 398 Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__.
391 This layer is for version 5.0 of the popular 399 This layer is for version 5.0 of the popular
@@ -421,8 +429,9 @@ licensing file (e.g. ``COPYING.MIT``) if the layer is to be distributed,
421a ``README`` file as good practice and especially if the layer is to be 429a ``README`` file as good practice and especially if the layer is to be
422distributed, a configuration directory, and recipe directories. You can 430distributed, a configuration directory, and recipe directories. You can
423learn about the general structure for layers used with the Yocto Project 431learn about the general structure for layers used with the Yocto Project
424in the "`Creating Your Own 432in the
425Layer <&YOCTO_DOCS_DEV_URL;#creating-your-own-layer>`__" section in the 433":ref:`dev-manual/dev-manual-common-tasks:creating your own layer`"
434section in the
426Yocto Project Development Tasks Manual. For a general discussion on 435Yocto Project Development Tasks Manual. For a general discussion on
427layers and the many layers from which you can draw, see the 436layers and the many layers from which you can draw, see the
428"`Layers <#overview-layers>`__" and "`The Yocto Project Layer 437"`Layers <#overview-layers>`__" and "`The Yocto Project Layer
@@ -485,8 +494,7 @@ The BSP Layer provides machine configurations that target specific
485hardware. Everything in this layer is specific to the machine for which 494hardware. Everything in this layer is specific to the machine for which
486you are building the image or the SDK. A common structure or form is 495you are building the image or the SDK. A common structure or form is
487defined for BSP layers. You can learn more about this structure in the 496defined for BSP layers. You can learn more about this structure in the
488`Yocto Project Board Support Package (BSP) Developer's 497:doc:`../bsp-guide/bsp-guide`.
489Guide <&YOCTO_DOCS_BSP_URL;>`__.
490 498
491.. note:: 499.. note::
492 500
@@ -704,8 +712,8 @@ architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
704 712
705.. _bitbake-dev-environment: 713.. _bitbake-dev-environment:
706 714
707BitBake 715BitBake Tool
708------- 716------------
709 717
710The OpenEmbedded build system uses 718The OpenEmbedded build system uses
711:term:`BitBake` to produce images and 719:term:`BitBake` to produce images and
@@ -751,8 +759,7 @@ the source files and unpack them into the
751 759
752By default, everything is accomplished in the Build Directory, which has 760By default, everything is accomplished in the Build Directory, which has
753a defined structure. For additional general information on the Build 761a defined structure. For additional general information on the Build
754Directory, see the 762Directory, see the ":ref:`structure-core-build`" section in
755"```build/`` <&YOCTO_DOCS_REF_URL;#structure-core-build>`__" section in
756the Yocto Project Reference Manual. 763the Yocto Project Reference Manual.
757 764
758Each recipe has an area in the Build Directory where the unpacked source 765Each recipe has an area in the Build Directory where the unpacked source
@@ -769,8 +776,7 @@ Build Directory's hierarchy:
769- :term:`PACKAGE_ARCH`: The 776- :term:`PACKAGE_ARCH`: The
770 architecture of the built package or packages. Depending on the 777 architecture of the built package or packages. Depending on the
771 eventual destination of the package or packages (i.e. machine 778 eventual destination of the package or packages (i.e. machine
772 architecture, `build 779 architecture, :term:`Build Host`, SDK, or
773 host <&YOCTO_DOCS_REF_URL;#hardware-build-system-term>`__, SDK, or
774 specific machine), ``PACKAGE_ARCH`` varies. See the variable's 780 specific machine), ``PACKAGE_ARCH`` varies. See the variable's
775 description for details. 781 description for details.
776 782
@@ -846,15 +852,14 @@ source files, which are located in the
846For more information on how the source directories are created, see the 852For more information on how the source directories are created, see the
847"`Source Fetching <#source-fetching-dev-environment>`__" section. For 853"`Source Fetching <#source-fetching-dev-environment>`__" section. For
848more information on how to create patches and how the build system 854more information on how to create patches and how the build system
849processes patches, see the "`Patching 855processes patches, see the
850Code <&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code>`__" section in the 856":ref:`dev-manual/dev-manual-common-tasks:patching code`"
851Yocto Project Development Tasks Manual. You can also see the "`Use 857section in the
852``devtool modify`` to Modify the Source of an Existing 858Yocto Project Development Tasks Manual. You can also see the
853Component <&YOCTO_DOCS_SDK_URL;#sdk-devtool-use-devtool-modify-to-modify-the-source-of-an-existing-component>`__" 859":ref:`sdk-manual/sdk-extensible:use \`\`devtool modify\`\` to modify the source of an existing component`"
854section in the Yocto Project Application Development and the Extensible 860section in the Yocto Project Application Development and the Extensible
855Software Development Kit (SDK) manual and the "`Using Traditional Kernel 861Software Development Kit (SDK) manual and the
856Development to Patch the 862":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`"
857Kernel <&YOCTO_DOCS_KERNEL_DEV_URL;#using-traditional-kernel-development-to-patch-the-kernel>`__"
858section in the Yocto Project Linux Kernel Development Manual. 863section in the Yocto Project Linux Kernel Development Manual.
859 864
860.. _configuration-compilation-and-staging-dev-environment: 865.. _configuration-compilation-and-staging-dev-environment:
@@ -882,7 +887,7 @@ This step in the build process consists of the following tasks:
882 depends. A sysroot exists for both the target and for the native 887 depends. A sysroot exists for both the target and for the native
883 binaries, which run on the host system. 888 binaries, which run on the host system.
884 889
885- *``do_configure``*: This task configures the source by enabling and 890- *do_configure*: This task configures the source by enabling and
886 disabling any build-time and configuration options for the software 891 disabling any build-time and configuration options for the software
887 being built. Configurations can come from the recipe itself as well 892 being built. Configurations can come from the recipe itself as well
888 as from an inherited class. Additionally, the software itself might 893 as from an inherited class. Additionally, the software itself might
@@ -903,7 +908,7 @@ This step in the build process consists of the following tasks:
903 :ref:`autotools <ref-classes-autotools>` class 908 :ref:`autotools <ref-classes-autotools>` class
904 :yocto_git:`here </cgit/cgit.cgi/poky/tree/meta/classes/autotools.bbclass>`. 909 :yocto_git:`here </cgit/cgit.cgi/poky/tree/meta/classes/autotools.bbclass>`.
905 910
906- *``do_compile``*: Once a configuration task has been satisfied, 911- *do_compile*: Once a configuration task has been satisfied,
907 BitBake compiles the source using the 912 BitBake compiles the source using the
908 :ref:`ref-tasks-compile` task. 913 :ref:`ref-tasks-compile` task.
909 Compilation occurs in the directory pointed to by the 914 Compilation occurs in the directory pointed to by the
@@ -911,7 +916,7 @@ This step in the build process consists of the following tasks:
911 ``B`` directory is, by default, the same as the 916 ``B`` directory is, by default, the same as the
912 :term:`S` directory. 917 :term:`S` directory.
913 918
914- *``do_install``*: After compilation completes, BitBake executes the 919- *do_install*: After compilation completes, BitBake executes the
915 :ref:`ref-tasks-install` task. 920 :ref:`ref-tasks-install` task.
916 This task copies files from the ``B`` directory and places them in a 921 This task copies files from the ``B`` directory and places them in a
917 holding area pointed to by the :term:`D` 922 holding area pointed to by the :term:`D`
@@ -1055,8 +1060,8 @@ data files are deleted from the root filesystem. As part of the final
1055stage of package installation, post installation scripts that are part 1060stage of package installation, post installation scripts that are part
1056of the packages are run. Any scripts that fail to run on the build host 1061of the packages are run. Any scripts that fail to run on the build host
1057are run on the target when the target system is first booted. If you are 1062are run on the target when the target system is first booted. If you are
1058using a `read-only root 1063using a
1059filesystem <&YOCTO_DOCS_DEV_URL;#creating-a-read-only-root-filesystem>`__, 1064:ref:`read-only root filesystem <dev-manual/dev-manual-common-tasks:creating a read-only root filesystem>`,
1060all the post installation scripts must succeed on the build host during 1065all the post installation scripts must succeed on the build host during
1061the package installation phase since the root filesystem on the target 1066the package installation phase since the root filesystem on the target
1062is read-only. 1067is read-only.
@@ -1097,9 +1102,17 @@ the image. The formats used for the root filesystem depend on the
1097support compression. 1102support compression.
1098 1103
1099As an example, a dynamically created task when creating a particular 1104As an example, a dynamically created task when creating a particular
1100image type would take the following form: do_image_type So, if the type 1105image type would take the following form:
1106::
1107
1108 do_image_type
1109
1110So, if the type
1101as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically 1111as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically
1102generated task would be as follows: do_image_ext4 1112generated task would be as follows:
1113::
1114
1115 do_image_ext4
1103 1116
1104The final task involved in image creation is the 1117The final task involved in image creation is the
1105:ref:`do_image_complete <ref-tasks-image-complete>` 1118:ref:`do_image_complete <ref-tasks-image-complete>`
@@ -1217,8 +1230,7 @@ varflag. If some other task depends on such a task, then that task will
1217also always be considered out of date, which might not be what you want. 1230also always be considered out of date, which might not be what you want.
1218 1231
1219For details on how to view information about a task's signature, see the 1232For details on how to view information about a task's signature, see the
1220"`Viewing Task Variable 1233":ref:`dev-manual/dev-manual-common-tasks:viewing task variable dependencies`"
1221Dependencies <&YOCTO_DOCS_DEV_URL;#dev-viewing-task-variable-dependencies>`__"
1222section in the Yocto Project Development Tasks Manual. 1234section in the Yocto Project Development Tasks Manual.
1223 1235
1224Setscene Tasks and Shared State 1236Setscene Tasks and Shared State
@@ -1397,8 +1409,7 @@ can initialize the environment before using the tools.
1397 section. 1409 section.
1398 1410
1399 - For information on setting up a cross-development environment, see 1411 - For information on setting up a cross-development environment, see
1400 the `Yocto Project Application Development and the Extensible 1412 the :doc:`../sdk-manual/sdk-manual` manual.
1401 Software Development Kit (eSDK) <&YOCTO_DOCS_SDK_URL;>`__ manual.
1402 1413
1403All the output files for an SDK are written to the ``deploy/sdk`` folder 1414All the output files for an SDK are written to the ``deploy/sdk`` folder
1404inside the :term:`Build Directory` as 1415inside the :term:`Build Directory` as
@@ -1475,13 +1486,10 @@ Cross-Development Toolchain Generation
1475====================================== 1486======================================
1476 1487
1477The Yocto Project does most of the work for you when it comes to 1488The Yocto Project does most of the work for you when it comes to
1478creating `cross-development 1489creating :ref:`sdk-manual/sdk-intro:the cross-development toolchain`. This
1479toolchains <&YOCTO_DOCS_REF_URL;#cross-development-toolchain>`__. This
1480section provides some technical background on how cross-development 1490section provides some technical background on how cross-development
1481toolchains are created and used. For more information on toolchains, you 1491toolchains are created and used. For more information on toolchains, you
1482can also see the `Yocto Project Application Development and the 1492can also see the :doc:`../sdk-manual/sdk-manual` manual.
1483Extensible Software Development Kit (eSDK) <&YOCTO_DOCS_SDK_URL;>`__
1484manual.
1485 1493
1486In the Yocto Project development environment, cross-development 1494In the Yocto Project development environment, cross-development
1487toolchains are used to build images and applications that run on the 1495toolchains are used to build images and applications that run on the
@@ -1514,8 +1522,10 @@ cross-compiler that is used internally within BitBake only.
1514 . 1522 .
1515 1523
1516The chain of events that occurs when ``gcc-cross`` is bootstrapped is as 1524The chain of events that occurs when ``gcc-cross`` is bootstrapped is as
1517follows: gcc -> binutils-cross -> gcc-cross-initial -> 1525follows:
1518linux-libc-headers -> glibc-initial -> glibc -> gcc-cross -> gcc-runtime 1526::
1527
1528 gcc -> binutils-cross -> gcc-cross-initial -> linux-libc-headers -> glibc-initial -> glibc -> gcc-cross -> gcc-runtime
1519 1529
1520- ``gcc``: The build host's GNU Compiler Collection (GCC). 1530- ``gcc``: The build host's GNU Compiler Collection (GCC).
1521 1531
@@ -1571,9 +1581,10 @@ might not be the same machine as the Build Host.
1571 can take advantage of pre-built images that ship with the Yocto 1581 can take advantage of pre-built images that ship with the Yocto
1572 Project and already contain cross-development toolchain installers. 1582 Project and already contain cross-development toolchain installers.
1573 1583
1574Here is the bootstrap process for the relocatable toolchain: gcc -> 1584Here is the bootstrap process for the relocatable toolchain:
1575binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> 1585::
1576glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian 1586
1587 gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian
1577 1588
1578- ``gcc``: The build host's GNU Compiler Collection (GCC). 1589- ``gcc``: The build host's GNU Compiler Collection (GCC).
1579 1590
@@ -1668,18 +1679,15 @@ them if they are deemed to be valid.
1668 the shared state packages. Consequently, considerations exist that 1679 the shared state packages. Consequently, considerations exist that
1669 affect maintaining shared state feeds. For information on how the 1680 affect maintaining shared state feeds. For information on how the
1670 build system works with packages and can track incrementing ``PR`` 1681 build system works with packages and can track incrementing ``PR``
1671 information, see the "`Automatically Incrementing a Binary Package 1682 information, see the ":ref:`dev-manual/dev-manual-common-tasks:automatically incrementing a package version number`"
1672 Revision
1673 Number <&YOCTO_DOCS_DEV_URL;#automatically-incrementing-a-binary-package-revision-number>`__"
1674 section in the Yocto Project Development Tasks Manual. 1683 section in the Yocto Project Development Tasks Manual.
1675 1684
1676 - The code in the build system that supports incremental builds is 1685 - The code in the build system that supports incremental builds is
1677 not simple code. For techniques that help you work around issues 1686 not simple code. For techniques that help you work around issues
1678 related to shared state code, see the "`Viewing Metadata Used to 1687 related to shared state code, see the
1679 Create the Input Signature of a Shared State 1688 ":ref:`dev-manual/dev-manual-common-tasks:viewing metadata used to create the input signature of a shared state task`"
1680 Task <&YOCTO_DOCS_DEV_URL;#dev-viewing-metadata-used-to-create-the-input-signature-of-a-shared-state-task>`__" 1689 and
1681 and "`Invalidating Shared State to Force a Task to 1690 ":ref:`dev-manual/dev-manual-common-tasks:invalidating shared state to force a task to run`"
1682 Run <&YOCTO_DOCS_DEV_URL;#dev-invalidating-shared-state-to-force-a-task-to-run>`__"
1683 sections both in the Yocto Project Development Tasks Manual. 1691 sections both in the Yocto Project Development Tasks Manual.
1684 1692
1685The rest of this section goes into detail about the overall incremental 1693The rest of this section goes into detail about the overall incremental
@@ -1754,15 +1762,22 @@ to the task.
1754Like the ``WORKDIR`` case, situations exist where dependencies should be 1762Like the ``WORKDIR`` case, situations exist where dependencies should be
1755ignored. For these situations, you can instruct the build process to 1763ignored. For these situations, you can instruct the build process to
1756ignore a dependency by using a line like the following: 1764ignore a dependency by using a line like the following:
1757PACKAGE_ARCHS[vardepsexclude] = "MACHINE" This example ensures that the 1765::
1758:term:`PACKAGE_ARCHS` variable 1766
1759does not depend on the value of 1767 PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
1760:term:`MACHINE`, even if it does 1768
1769This example ensures that the :term:`PACKAGE_ARCHS` variable
1770does not depend on the value of :term:`MACHINE`, even if it does
1761reference it. 1771reference it.
1762 1772
1763Equally, there are cases where you need to add dependencies BitBake is 1773Equally, there are cases where you need to add dependencies BitBake is
1764not able to find. You can accomplish this by using a line like the 1774not able to find. You can accomplish this by using a line like the
1765following: PACKAGE_ARCHS[vardeps] = "MACHINE" This example explicitly 1775following:
1776::
1777
1778 PACKAGE_ARCHS[vardeps] = "MACHINE"
1779
1780This example explicitly
1766adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``. 1781adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
1767 1782
1768As an example, consider a case with in-line Python where BitBake is not 1783As an example, consider a case with in-line Python where BitBake is not
@@ -1788,12 +1803,16 @@ and the dependent task hashes can be influenced. Within the BitBake
1788configuration file, you can give BitBake some extra information to help 1803configuration file, you can give BitBake some extra information to help
1789it construct the basehash. The following statement effectively results 1804it construct the basehash. The following statement effectively results
1790in a list of global variable dependency excludes (i.e. variables never 1805in a list of global variable dependency excludes (i.e. variables never
1791included in any checksum): BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH 1806included in any checksum):
1792PWD BB_TASKHASH BBPATH DL_DIR \\ SSTATE_DIR THISDIR FILESEXTRAPATHS 1807::
1793FILE_DIRNAME HOME LOGNAME SHELL TERM \\ USER FILESPATH STAGING_DIR_HOST 1808
1794STAGING_DIR_TARGET COREBASE PRSERV_HOST \\ PRSERV_DUMPDIR 1809 BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\
1795PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \\ CCACHE_DIR 1810 SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\
1796EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX" The 1811 USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \\
1812 PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \\
1813 CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
1814
1815The
1797previous example excludes 1816previous example excludes
1798:term:`WORKDIR` since that variable 1817:term:`WORKDIR` since that variable
1799is actually constructed as a path within 1818is actually constructed as a path within
@@ -1810,8 +1829,12 @@ desired. This file defines the two basic signature generators
1810"OEBasicHash". By default, a dummy "noop" signature handler is enabled 1829"OEBasicHash". By default, a dummy "noop" signature handler is enabled
1811in BitBake. This means that behavior is unchanged from previous 1830in BitBake. This means that behavior is unchanged from previous
1812versions. OE-Core uses the "OEBasicHash" signature handler by default 1831versions. OE-Core uses the "OEBasicHash" signature handler by default
1813through this setting in the ``bitbake.conf`` file: BB_SIGNATURE_HANDLER 1832through this setting in the ``bitbake.conf`` file:
1814?= "OEBasicHash" The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same 1833::
1834
1835 BB_SIGNATURE_HANDLER ?= "OEBasicHash"
1836
1837The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same
1815as the "OEBasic" version but adds the task hash to the `stamp 1838as the "OEBasic" version but adds the task hash to the `stamp
1816files <#stamp-files-and-the-rerunning-of-tasks>`__. This results in any 1839files <#stamp-files-and-the-rerunning-of-tasks>`__. This results in any
1817metadata change that changes the task hash, automatically causing the 1840metadata change that changes the task hash, automatically causing the
@@ -1862,12 +1885,21 @@ implementation hidden in ``sstate`` class. From a user's perspective,
1862adding shared state wrapping to a task is as simple as this 1885adding shared state wrapping to a task is as simple as this
1863:ref:`ref-tasks-deploy` example taken 1886:ref:`ref-tasks-deploy` example taken
1864from the :ref:`deploy <ref-classes-deploy>` class: 1887from the :ref:`deploy <ref-classes-deploy>` class:
1865DEPLOYDIR = "${WORKDIR}/deploy-${PN}" SSTATETASKS += "do_deploy" 1888::
1866do_deploy[sstate-inputdirs] = "${DEPLOYDIR}" 1889
1867do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" python 1890 DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
1868do_deploy_setscene () { sstate_setscene(d) } addtask do_deploy_setscene 1891 SSTATETASKS += "do_deploy"
1869do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[stamp-extra-info] = 1892 do_deploy[sstate-inputdirs] = "${DEPLOYDIR}"
1870"${MACHINE_ARCH}" The following list explains the previous example: 1893 do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
1894
1895 python do_deploy_setscene () {
1896 sstate_setscene(d)
1897 }
1898 addtask do_deploy_setscene
1899 do_deploy[dirs] = "${DEPLOYDIR} ${B}"
1900 do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"
1901
1902The following list explains the previous example:
1871 1903
1872- Adding "do_deploy" to ``SSTATETASKS`` adds some required 1904- Adding "do_deploy" to ``SSTATETASKS`` adds some required
1873 sstate-related processing, which is implemented in the 1905 sstate-related processing, which is implemented in the
@@ -1907,9 +1939,15 @@ do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[stamp-extra-info] =
1907 task. 1939 task.
1908 1940
1909- The following task definition is glue logic needed to make the 1941- The following task definition is glue logic needed to make the
1910 previous settings effective: python do_deploy_setscene () { 1942 previous settings effective:
1911 sstate_setscene(d) } addtask do_deploy_setscene ``sstate_setscene()`` 1943 ::
1912 takes the flags above as input and accelerates the ``do_deploy`` task 1944
1945 python do_deploy_setscene () {
1946 sstate_setscene(d)
1947 }
1948 addtask do_deploy_setscene
1949
1950 ``sstate_setscene()`` takes the flags above as input and accelerates the ``do_deploy`` task
1913 through the shared state cache if possible. If the task was 1951 through the shared state cache if possible. If the task was
1914 accelerated, ``sstate_setscene()`` returns True. Otherwise, it 1952 accelerated, ``sstate_setscene()`` returns True. Otherwise, it
1915 returns False, and the normal ``do_deploy`` task runs. For more 1953 returns False, and the normal ``do_deploy`` task runs. For more
@@ -1941,7 +1979,7 @@ do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[stamp-extra-info] =
1941 :: 1979 ::
1942 1980
1943 do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}" 1981 do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
1944 1982
1945 1983
1946- The ``do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"`` line appends 1984- The ``do_deploy[stamp-extra-info] = "${MACHINE_ARCH}"`` line appends
1947 extra metadata to the `stamp 1985 extra metadata to the `stamp
@@ -1956,20 +1994,27 @@ do_deploy[dirs] = "${DEPLOYDIR} ${B}" do_deploy[stamp-extra-info] =
1956 ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories, 1994 ``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories,
1957 which populates the shared state cache, and ``PKGDATA_DIR`` and 1995 which populates the shared state cache, and ``PKGDATA_DIR`` and
1958 ``SHLIBSDIR`` as the corresponding shared state output directories: 1996 ``SHLIBSDIR`` as the corresponding shared state output directories:
1959 do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}" 1997 ::
1960 do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}" 1998
1999 do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
2000 do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
1961 2001
1962- These methods also include the ability to take a lockfile when 2002- These methods also include the ability to take a lockfile when
1963 manipulating shared state directory structures, for cases where file 2003 manipulating shared state directory structures, for cases where file
1964 additions or removals are sensitive: do_package[sstate-lockfile] = 2004 additions or removals are sensitive:
1965 "${PACKAGELOCK}" 2005 ::
2006
2007 do_package[sstate-lockfile] = "${PACKAGELOCK}"
1966 2008
1967Behind the scenes, the shared state code works by looking in 2009Behind the scenes, the shared state code works by looking in
1968:term:`SSTATE_DIR` and 2010:term:`SSTATE_DIR` and
1969:term:`SSTATE_MIRRORS` for 2011:term:`SSTATE_MIRRORS` for
1970shared state files. Here is an example: SSTATE_MIRRORS ?= "\\ file://.\* 2012shared state files. Here is an example:
1971http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \\n \\ 2013::
1972file://.\* file:///some/local/dir/sstate/PATH" 2014
2015 SSTATE_MIRRORS ?= "\
2016 file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
2017 file://.\* file:///some/local/dir/sstate/PATH"
1973 2018
1974.. note:: 2019.. note::
1975 2020
@@ -2164,11 +2209,11 @@ accomplished using fakeroot.
2164 , giving the following: 2209 , giving the following:
2165 :: 2210 ::
2166 2211
2167 fakeroot do_mytask () { 2212 fakeroot do_mytask () {
2168 ... 2213 ...
2169 } 2214 }
2170 do_mytask[depends] += "virtual/fakeroot-native:do_populate_sysroot" 2215 do_mytask[depends] += "virtual/fakeroot-native:do_populate_sysroot"
2171 2216
2172 2217
2173For more information, see the 2218For more information, see the
2174:term:`FAKEROOT* <bitbake:FAKEROOT>` variables in the 2219:term:`FAKEROOT* <bitbake:FAKEROOT>` variables in the
diff --git a/documentation/overview-manual/overview-manual-development-environment.rst b/documentation/overview-manual/overview-manual-development-environment.rst
index f89e9b9dd4..273e1027da 100644
--- a/documentation/overview-manual/overview-manual-development-environment.rst
+++ b/documentation/overview-manual/overview-manual-development-environment.rst
@@ -50,8 +50,7 @@ Community
50The Development Host 50The Development Host
51==================== 51====================
52 52
53A development host or `build 53A development host or :term:`Build Host` is key to
54host <&YOCTO_DOCS_REF_URL;#hardware-build-system-term>`__ is key to
55using the Yocto Project. Because the goal of the Yocto Project is to 54using the Yocto Project. Because the goal of the Yocto Project is to
56develop images or applications that run on embedded hardware, 55develop images or applications that run on embedded hardware,
57development of those images and applications generally takes place on a 56development of those images and applications generally takes place on a
@@ -68,8 +67,9 @@ set it up as the development host by using
68to set up a CROPS machine, you effectively have access to a shell 67to set up a CROPS machine, you effectively have access to a shell
69environment that is similar to what you see when using a Linux-based 68environment that is similar to what you see when using a Linux-based
70development host. For the steps needed to set up a system using CROPS, 69development host. For the steps needed to set up a system using CROPS,
71see the "`Setting Up to Use CROss PlatformS 70see the
72(CROPS) <&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops>`__" section in 71":ref:`dev-manual/dev-manual-start:setting up to use cross platforms (crops)`"
72section in
73the Yocto Project Development Tasks Manual. 73the Yocto Project Development Tasks Manual.
74 74
75If your development host is going to be a system that runs a Linux 75If your development host is going to be a system that runs a Linux
@@ -78,8 +78,8 @@ for use with the Yocto Project. You need to be sure that the Linux
78distribution on the system is one that supports the Yocto Project. You 78distribution on the system is one that supports the Yocto Project. You
79also need to be sure that the correct set of host packages are installed 79also need to be sure that the correct set of host packages are installed
80that allow development using the Yocto Project. For the steps needed to 80that allow development using the Yocto Project. For the steps needed to
81set up a development host that runs Linux, see the "`Setting Up a Native 81set up a development host that runs Linux, see the
82Linux Host <&YOCTO_DOCS_DEV_URL;#setting-up-a-native-linux-host>`__" 82":ref:`dev-manual/dev-manual-start:setting up a native linux host`"
83section in the Yocto Project Development Tasks Manual. 83section in the Yocto Project Development Tasks Manual.
84 84
85Once your development host is set up to use the Yocto Project, several 85Once your development host is set up to use the Yocto Project, several
@@ -95,8 +95,8 @@ methods exist for you to do work in the Yocto Project environment:
95 within a shell-based environment using components and tools available 95 within a shell-based environment using components and tools available
96 through your Linux distribution and the Yocto Project. 96 through your Linux distribution and the Yocto Project.
97 97
98 For a general flow of the build procedures, see the "`Building a 98 For a general flow of the build procedures, see the
99 Simple Image <&YOCTO_DOCS_DEV_URL;#dev-building-a-simple-image>`__" 99 ":ref:`dev-manual/dev-manual-common-tasks:building a simple image`"
100 section in the Yocto Project Development Tasks Manual. 100 section in the Yocto Project Development Tasks Manual.
101 101
102- *Board Support Package (BSP) Development:* Development of BSPs 102- *Board Support Package (BSP) Development:* Development of BSPs
@@ -105,11 +105,9 @@ methods exist for you to do work in the Yocto Project environment:
105 hardware. To development BSPs, you need to take some additional steps 105 hardware. To development BSPs, you need to take some additional steps
106 beyond what was described in setting up a development host. 106 beyond what was described in setting up a development host.
107 107
108 The `Yocto Project Board Support Package (BSP) Developer's 108 The :doc:`../bsp-guide/bsp-guide` provides BSP-related development
109 Guide <&YOCTO_DOCS_BSP_URL;>`__ provides BSP-related development
110 information. For specifics on development host preparation, see the 109 information. For specifics on development host preparation, see the
111 "`Preparing Your Build Host to Work With BSP 110 ":ref:`bsp-guide/bsp:preparing your build host to work with bsp layers`"
112 Layers <&YOCTO_DOCS_BSP_URL;#preparing-your-build-host-to-work-with-bsp-layers>`__"
113 section in the Yocto Project Board Support Package (BSP) Developer's 111 section in the Yocto Project Board Support Package (BSP) Developer's
114 Guide. 112 Guide.
115 113
@@ -118,11 +116,10 @@ methods exist for you to do work in the Yocto Project environment:
118 using ``devtool`` makes kernel development quicker by reducing 116 using ``devtool`` makes kernel development quicker by reducing
119 iteration cycle times. 117 iteration cycle times.
120 118
121 The `Yocto Project Linux Kernel Development 119 The :doc:`../kernel-dev/kernel-dev` provides kernel-related
122 Manual <&YOCTO_DOCS_KERNEL_DEV_URL;>`__ provides kernel-related
123 development information. For specifics on development host 120 development information. For specifics on development host
124 preparation, see the "`Preparing the Build Host to Work on the 121 preparation, see the
125 Kernel <&YOCTO_DOCS_KERNEL_DEV_URL;#preparing-the-build-host-to-work-on-the-kernel>`__" 122 ":ref:`kernel-dev/kernel-dev-common:preparing the build host to work on the kernel`"
126 section in the Yocto Project Linux Kernel Development Manual. 123 section in the Yocto Project Linux Kernel Development Manual.
127 124
128- *Using Toaster:* The other Yocto Project development method that 125- *Using Toaster:* The other Yocto Project development method that
@@ -134,8 +131,8 @@ methods exist for you to do work in the Yocto Project environment:
134 multiple remote build servers. 131 multiple remote build servers.
135 132
136 For steps that show you how to set up your development host to use 133 For steps that show you how to set up your development host to use
137 Toaster and on how to use Toaster in general, see the `Toaster User 134 Toaster and on how to use Toaster in general, see the
138 Manual <&YOCTO_DOCS_TOAST_URL;>`__. 135 :doc:`../toaster-manual/toaster-manual`.
139 136
140.. _yocto-project-repositories: 137.. _yocto-project-repositories:
141 138
@@ -185,8 +182,7 @@ development:
185 :align: center 182 :align: center
186 183
187 For steps on how to view and access these upstream Git repositories, 184 For steps on how to view and access these upstream Git repositories,
188 see the "`Accessing Source 185 see the ":ref:`dev-manual/dev-manual-start:accessing source repositories`"
189 Repositories <&YOCTO_DOCS_DEV_URL;#accessing-source-repositories>`__"
190 Section in the Yocto Project Development Tasks Manual. 186 Section in the Yocto Project Development Tasks Manual.
191 187
192- :yocto_dl:`Index of /releases: <releases>` This is an index 188- :yocto_dl:`Index of /releases: <releases>` This is an index
@@ -199,9 +195,8 @@ development:
199 .. image:: figures/index-downloads.png 195 .. image:: figures/index-downloads.png
200 :align: center 196 :align: center
201 197
202 For steps on how to view and access these files, see the "`Accessing 198 For steps on how to view and access these files, see the
203 Index of 199 ":ref:`dev-manual/dev-manual-start:accessing index of releases`"
204 Releases <&YOCTO_DOCS_DEV_URL;#accessing-index-of-releases>`__"
205 section in the Yocto Project Development Tasks Manual. 200 section in the Yocto Project Development Tasks Manual.
206 201
207- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:* 202- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
@@ -215,8 +210,8 @@ development:
215 .. image:: figures/yp-download.png 210 .. image:: figures/yp-download.png
216 :align: center 211 :align: center
217 212
218 For steps on how to use the "DOWNLOADS" page, see the "`Using the 213 For steps on how to use the "DOWNLOADS" page, see the
219 Downloads Page <&YOCTO_DOCS_DEV_URL;#using-the-downloads-page>`__" 214 ":ref:`dev-manual/dev-manual-start:using the downloads page`"
220 section in the Yocto Project Development Tasks Manual. 215 section in the Yocto Project Development Tasks Manual.
221 216
222.. _gs-git-workflows-and-the-yocto-project: 217.. _gs-git-workflows-and-the-yocto-project:
@@ -252,9 +247,9 @@ and so forth.
252.. note:: 247.. note::
253 248
254 For information on finding out who is responsible for (maintains) a 249 For information on finding out who is responsible for (maintains) a
255 particular area of code in the Yocto Project, see the " 250 particular area of code in the Yocto Project, see the
256 Submitting a Change to the Yocto Project 251 ":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
257 " section of the Yocto Project Development Tasks Manual. 252 section of the Yocto Project Development Tasks Manual.
258 253
259The Yocto Project ``poky`` Git repository also has an upstream 254The Yocto Project ``poky`` Git repository also has an upstream
260contribution Git repository named ``poky-contrib``. You can see all the 255contribution Git repository named ``poky-contrib``. You can see all the
@@ -284,9 +279,9 @@ A somewhat formal method exists by which developers commit changes and
284push them into the "contrib" area and subsequently request that the 279push them into the "contrib" area and subsequently request that the
285maintainer include them into an upstream branch. This process is called 280maintainer include them into an upstream branch. This process is called
286“submitting a patch” or "submitting a change." For information on 281“submitting a patch” or "submitting a change." For information on
287submitting patches and changes, see the "`Submitting a Change to the 282submitting patches and changes, see the
288Yocto Project <&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change>`__" section 283":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
289in the Yocto Project Development Tasks Manual. 284section in the Yocto Project Development Tasks Manual.
290 285
291In summary, a single point of entry exists for changes into a "master" 286In summary, a single point of entry exists for changes into a "master"
292or development branch of the Git repository, which is controlled by the 287or development branch of the Git repository, which is controlled by the
@@ -351,20 +346,18 @@ Book <http://book.git-scm.com>`__.
351 release to facilitate this workflow. You can find these scripts in 346 release to facilitate this workflow. You can find these scripts in
352 the ``scripts`` folder of the 347 the ``scripts`` folder of the
353 :term:`Source Directory`. For information 348 :term:`Source Directory`. For information
354 on how to use these scripts, see the "`Using Scripts to Push a Change 349 on how to use these scripts, see the
355 Upstream and Request a 350 ":ref:`dev-manual/dev-manual-common-tasks:using scripts to push a change upstream and request a pull`"
356 Pull <&YOCTO_DOCS_DEV_URL;#pushing-a-change-upstream>`__" section in 351 section in the Yocto Project Development Tasks Manual.
357 the Yocto Project Development Tasks Manual.
358 352
359- *Patch Workflow:* This workflow allows you to notify the maintainer 353- *Patch Workflow:* This workflow allows you to notify the maintainer
360 through an email that you have a change (or patch) you would like 354 through an email that you have a change (or patch) you would like
361 considered for the "master" branch of the Git repository. To send 355 considered for the "master" branch of the Git repository. To send
362 this type of change, you format the patch and then send the email 356 this type of change, you format the patch and then send the email
363 using the Git commands ``git format-patch`` and ``git send-email``. 357 using the Git commands ``git format-patch`` and ``git send-email``.
364 For information on how to use these scripts, see the "`Submitting a 358 For information on how to use these scripts, see the
365 Change to the Yocto 359 ":ref:`dev-manual/dev-manual-common-tasks:submitting a change to the yocto project`"
366 Project <&YOCTO_DOCS_DEV_URL;#how-to-submit-a-change>`__" section in 360 section in the Yocto Project Development Tasks Manual.
367 the Yocto Project Development Tasks Manual.
368 361
369Git 362Git
370=== 363===
@@ -389,8 +382,7 @@ commands.
389 page, see http://git-scm.com/download. 382 page, see http://git-scm.com/download.
390 383
391 - For information beyond the introductory nature in this section, 384 - For information beyond the introductory nature in this section,
392 see the "`Locating Yocto Project Source 385 see the ":ref:`dev-manual/dev-manual-start:locating yocto project source files`"
393 Files <&YOCTO_DOCS_DEV_URL;#locating-yocto-project-source-files>`__"
394 section in the Yocto Project Development Tasks Manual. 386 section in the Yocto Project Development Tasks Manual.
395 387
396Repositories, Tags, and Branches 388Repositories, Tags, and Branches
@@ -422,14 +414,13 @@ You can create a local copy of any repository by "cloning" it with the
422an identical copy of the repository on your development system. Once you 414an identical copy of the repository on your development system. Once you
423have a local copy of a repository, you can take steps to develop 415have a local copy of a repository, you can take steps to develop
424locally. For examples on how to clone Git repositories, see the 416locally. For examples on how to clone Git repositories, see the
425"`Locating Yocto Project Source 417":ref:`dev-manual/dev-manual-start:locating yocto project source files`"
426Files <&YOCTO_DOCS_DEV_URL;#locating-yocto-project-source-files>`__"
427section in the Yocto Project Development Tasks Manual. 418section in the Yocto Project Development Tasks Manual.
428 419
429It is important to understand that Git tracks content change and not 420It is important to understand that Git tracks content change and not
430files. Git uses "branches" to organize different development efforts. 421files. Git uses "branches" to organize different development efforts.
431For example, the ``poky`` repository has several branches that include 422For example, the ``poky`` repository has several branches that include
432the current "DISTRO_NAME_NO_CAP" branch, the "master" branch, and many 423the current "&DISTRO_NAME_NO_CAP;" branch, the "master" branch, and many
433branches for past Yocto Project releases. You can see all the branches 424branches for past Yocto Project releases. You can see all the branches
434by going to https://git.yoctoproject.org/cgit.cgi/poky/ and clicking on the 425by going to https://git.yoctoproject.org/cgit.cgi/poky/ and clicking on the
435``[...]`` link beneath the "Branch" heading. 426``[...]`` link beneath the "Branch" heading.
@@ -444,17 +435,23 @@ local working area (also called a branch) that tracks a specific
444development branch from the upstream source Git repository. in other 435development branch from the upstream source Git repository. in other
445words, you can define your local Git environment to work on any 436words, you can define your local Git environment to work on any
446development branch in the repository. To help illustrate, consider the 437development branch in the repository. To help illustrate, consider the
447following example Git commands: $ cd ~ $ git clone 438following example Git commands:
448git://git.yoctoproject.org/poky $ cd poky $ git checkout -b 439::
449DISTRO_NAME_NO_CAP origin/DISTRO_NAME_NO_CAP In the previous example 440
441 $ cd ~
442 $ git clone git://git.yoctoproject.org/poky
443 $ cd poky
444 $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
445
446In the previous example
450after moving to the home directory, the ``git clone`` command creates a 447after moving to the home directory, the ``git clone`` command creates a
451local copy of the upstream ``poky`` Git repository. By default, Git 448local copy of the upstream ``poky`` Git repository. By default, Git
452checks out the "master" branch for your work. After changing the working 449checks out the "master" branch for your work. After changing the working
453directory to the new local repository (i.e. ``poky``), the 450directory to the new local repository (i.e. ``poky``), the
454``git checkout`` command creates and checks out a local branch named 451``git checkout`` command creates and checks out a local branch named
455"DISTRO_NAME_NO_CAP", which tracks the upstream 452"&DISTRO_NAME_NO_CAP;", which tracks the upstream
456"origin/DISTRO_NAME_NO_CAP" branch. Changes you make while in this 453"origin/&DISTRO_NAME_NO_CAP;" branch. Changes you make while in this
457branch would ultimately affect the upstream "DISTRO_NAME_NO_CAP" branch 454branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch
458of the ``poky`` repository. 455of the ``poky`` repository.
459 456
460It is important to understand that when you create and checkout a local 457It is important to understand that when you create and checkout a local
@@ -462,7 +459,7 @@ working branch based on a branch name, your local environment matches
462the "tip" of that particular development branch at the time you created 459the "tip" of that particular development branch at the time you created
463your local branch, which could be different from the files in the 460your local branch, which could be different from the files in the
464"master" branch of the upstream repository. In other words, creating and 461"master" branch of the upstream repository. In other words, creating and
465checking out a local branch based on the "DISTRO_NAME_NO_CAP" branch 462checking out a local branch based on the "&DISTRO_NAME_NO_CAP;" branch
466name is not the same as checking out the "master" branch in the 463name is not the same as checking out the "master" branch in the
467repository. Keep reading to see how you create a local snapshot of a 464repository. Keep reading to see how you create a local snapshot of a
468Yocto Project Release. 465Yocto Project Release.
@@ -476,7 +473,7 @@ beneath the "Tag" heading.
476 473
477Some key tags for the ``poky`` repository are ``jethro-14.0.3``, 474Some key tags for the ``poky`` repository are ``jethro-14.0.3``,
478``morty-16.0.1``, ``pyro-17.0.0``, and 475``morty-16.0.1``, ``pyro-17.0.0``, and
479``DISTRO_NAME_NO_CAP-POKYVERSION``. These tags represent Yocto Project 476``&DISTRO_NAME_NO_CAP;-&POKYVERSION;``. These tags represent Yocto Project
480releases. 477releases.
481 478
482When you create a local copy of the Git repository, you also have access 479When you create a local copy of the Git repository, you also have access
@@ -485,9 +482,16 @@ create and checkout a local working Git branch based on a tag name. When
485you do this, you get a snapshot of the Git repository that reflects the 482you do this, you get a snapshot of the Git repository that reflects the
486state of the files when the change was made associated with that tag. 483state of the files when the change was made associated with that tag.
487The most common use is to checkout a working branch that matches a 484The most common use is to checkout a working branch that matches a
488specific Yocto Project release. Here is an example: $ cd ~ $ git clone 485specific Yocto Project release. Here is an example:
489git://git.yoctoproject.org/poky $ cd poky $ git fetch --tags $ git 486::
490checkout tags/rocko-18.0.0 -b my_rocko-18.0.0 In this example, the name 487
488 $ cd ~
489 $ git clone git://git.yoctoproject.org/poky
490 $ cd poky
491 $ git fetch --tags
492 $ git checkout tags/rocko-18.0.0 -b my_rocko-18.0.0
493
494In this example, the name
491of the top-level directory of your local Yocto Project repository is 495of the top-level directory of your local Yocto Project repository is
492``poky``. After moving to the ``poky`` directory, the ``git fetch`` 496``poky``. After moving to the ``poky`` directory, the ``git fetch``
493command makes all the upstream tags available locally in your 497command makes all the upstream tags available locally in your
@@ -518,62 +522,62 @@ list (in most cases) simply shows the base command and omits the many
518arguments it supports. See the Git documentation for complete 522arguments it supports. See the Git documentation for complete
519descriptions and strategies on how to use these commands: 523descriptions and strategies on how to use these commands:
520 524
521- *``git init``:* Initializes an empty Git repository. You cannot use 525- *git init:* Initializes an empty Git repository. You cannot use
522 Git commands unless you have a ``.git`` repository. 526 Git commands unless you have a ``.git`` repository.
523 527
524- *``git clone``:* Creates a local clone of a Git repository that is on 528- *git clone:* Creates a local clone of a Git repository that is on
525 equal footing with a fellow developer’s Git repository or an upstream 529 equal footing with a fellow developer’s Git repository or an upstream
526 repository. 530 repository.
527 531
528- *``git add``:* Locally stages updated file contents to the index that 532- *git add:* Locally stages updated file contents to the index that
529 Git uses to track changes. You must stage all files that have changed 533 Git uses to track changes. You must stage all files that have changed
530 before you can commit them. 534 before you can commit them.
531 535
532- *``git commit``:* Creates a local "commit" that documents the changes 536- *git commit:* Creates a local "commit" that documents the changes
533 you made. Only changes that have been staged can be committed. 537 you made. Only changes that have been staged can be committed.
534 Commits are used for historical purposes, for determining if a 538 Commits are used for historical purposes, for determining if a
535 maintainer of a project will allow the change, and for ultimately 539 maintainer of a project will allow the change, and for ultimately
536 pushing the change from your local Git repository into the project’s 540 pushing the change from your local Git repository into the project’s
537 upstream repository. 541 upstream repository.
538 542
539- *``git status``:* Reports any modified files that possibly need to be 543- *git status:* Reports any modified files that possibly need to be
540 staged and gives you a status of where you stand regarding local 544 staged and gives you a status of where you stand regarding local
541 commits as compared to the upstream repository. 545 commits as compared to the upstream repository.
542 546
543- *``git checkout`` branch-name:* Changes your local working branch and 547- *git checkout branch-name:* Changes your local working branch and
544 in this form assumes the local branch already exists. This command is 548 in this form assumes the local branch already exists. This command is
545 analogous to "cd". 549 analogous to "cd".
546 550
547- *``git checkout –b`` working-branch upstream-branch:* Creates and 551- *git checkout –b working-branch upstream-branch:* Creates and
548 checks out a working branch on your local machine. The local branch 552 checks out a working branch on your local machine. The local branch
549 tracks the upstream branch. You can use your local branch to isolate 553 tracks the upstream branch. You can use your local branch to isolate
550 your work. It is a good idea to use local branches when adding 554 your work. It is a good idea to use local branches when adding
551 specific features or changes. Using isolated branches facilitates 555 specific features or changes. Using isolated branches facilitates
552 easy removal of changes if they do not work out. 556 easy removal of changes if they do not work out.
553 557
554- *``git branch``:* Displays the existing local branches associated 558- *git branch:* Displays the existing local branches associated
555 with your local repository. The branch that you have currently 559 with your local repository. The branch that you have currently
556 checked out is noted with an asterisk character. 560 checked out is noted with an asterisk character.
557 561
558- *``git branch -D`` branch-name:* Deletes an existing local branch. 562- *git branch -D branch-name:* Deletes an existing local branch.
559 You need to be in a local branch other than the one you are deleting 563 You need to be in a local branch other than the one you are deleting
560 in order to delete branch-name. 564 in order to delete branch-name.
561 565
562- *``git pull --rebase``:* Retrieves information from an upstream Git 566- *git pull --rebase:* Retrieves information from an upstream Git
563 repository and places it in your local Git repository. You use this 567 repository and places it in your local Git repository. You use this
564 command to make sure you are synchronized with the repository from 568 command to make sure you are synchronized with the repository from
565 which you are basing changes (.e.g. the "master" branch). The 569 which you are basing changes (.e.g. the "master" branch). The
566 "--rebase" option ensures that any local commits you have in your 570 "--rebase" option ensures that any local commits you have in your
567 branch are preserved at the top of your local branch. 571 branch are preserved at the top of your local branch.
568 572
569- *``git push`` repo-name local-branch\ ``:``\ upstream-branch:* Sends 573- *git push repo-name local-branch:upstream-branch:* Sends
570 all your committed local changes to the upstream Git repository that 574 all your committed local changes to the upstream Git repository that
571 your local repository is tracking (e.g. a contribution repository). 575 your local repository is tracking (e.g. a contribution repository).
572 The maintainer of the project draws from these repositories to merge 576 The maintainer of the project draws from these repositories to merge
573 changes (commits) into the appropriate branch of project's upstream 577 changes (commits) into the appropriate branch of project's upstream
574 repository. 578 repository.
575 579
576- *``git merge``:* Combines or adds changes from one local branch of 580- *git merge:* Combines or adds changes from one local branch of
577 your repository with another branch. When you create a local Git 581 your repository with another branch. When you create a local Git
578 repository, the default branch is named "master". A typical workflow 582 repository, the default branch is named "master". A typical workflow
579 is to create a temporary branch that is based off "master" that you 583 is to create a temporary branch that is based off "master" that you
@@ -585,12 +589,12 @@ descriptions and strategies on how to use these commands:
585 done with working in that isolated branch, you can safely delete the 589 done with working in that isolated branch, you can safely delete the
586 isolated branch. 590 isolated branch.
587 591
588- *``git cherry-pick`` commits:* Choose and apply specific commits from 592- *git cherry-pick commits:* Choose and apply specific commits from
589 one branch into another branch. There are times when you might not be 593 one branch into another branch. There are times when you might not be
590 able to merge all the changes in one branch with another but need to 594 able to merge all the changes in one branch with another but need to
591 pick out certain ones. 595 pick out certain ones.
592 596
593- *``gitk``:* Provides a GUI view of the branches and changes in your 597- *gitk:* Provides a GUI view of the branches and changes in your
594 local Git repository. This command is a good way to graphically see 598 local Git repository. This command is a good way to graphically see
595 where things have diverged in your local repository. 599 where things have diverged in your local repository.
596 600
@@ -600,11 +604,11 @@ descriptions and strategies on how to use these commands:
600 gitk 604 gitk
601 package on your development system to use this command. 605 package on your development system to use this command.
602 606
603- *``git log``:* Reports a history of your commits to the repository. 607- *git log:* Reports a history of your commits to the repository.
604 This report lists all commits regardless of whether you have pushed 608 This report lists all commits regardless of whether you have pushed
605 them upstream or not. 609 them upstream or not.
606 610
607- *``git diff``:* Displays line-by-line differences between a local 611- *git diff:* Displays line-by-line differences between a local
608 working file and the same file as understood by Git. This command is 612 working file and the same file as understood by Git. This command is
609 useful to see what you have changed in any given file. 613 useful to see what you have changed in any given file.
610 614
@@ -663,7 +667,6 @@ Project uses in the ``meta/files/common-licenses`` directory in your
663 667
664For information that can help you maintain compliance with various open 668For information that can help you maintain compliance with various open
665source licensing during the lifecycle of a product created using the 669source licensing during the lifecycle of a product created using the
666Yocto Project, see the "`Maintaining Open Source License Compliance 670Yocto Project, see the
667During Your Product's 671":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`"
668Lifecycle <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__"
669section in the Yocto Project Development Tasks Manual. 672section in the Yocto Project Development Tasks Manual.
diff --git a/documentation/overview-manual/overview-manual-intro.rst b/documentation/overview-manual/overview-manual-intro.rst
index 2e96f1e338..3f206fd54b 100644
--- a/documentation/overview-manual/overview-manual-intro.rst
+++ b/documentation/overview-manual/overview-manual-intro.rst
@@ -20,7 +20,7 @@ The following list describes what you can get from this manual:
20 provides an introduction to the Yocto Project. You will learn about 20 provides an introduction to the Yocto Project. You will learn about
21 features and challenges of the Yocto Project, the layer model, 21 features and challenges of the Yocto Project, the layer model,
22 components and tools, development methods, the 22 components and tools, development methods, the
23 `Poky <&YOCTO_DOCS_REF_URL;#poky>`__ reference distribution, the 23 :term:`Poky` reference distribution, the
24 OpenEmbedded build system workflow, and some basic Yocto terms. 24 OpenEmbedded build system workflow, and some basic Yocto terms.
25 25
26- `The Yocto Project Development 26- `The Yocto Project Development
@@ -30,7 +30,7 @@ The following list describes what you can get from this manual:
30 Yocto Project source repositories, workflows using Git and the Yocto 30 Yocto Project source repositories, workflows using Git and the Yocto
31 Project, a Git primer, and information about licensing. 31 Project, a Git primer, and information about licensing.
32 32
33- `Yocto Project Concepts <#overview-manual-concepts>`__\ *:* This 33- :doc:`overview-manual-concepts` *:* This
34 chapter presents various concepts regarding the Yocto Project. You 34 chapter presents various concepts regarding the Yocto Project. You
35 can find conceptual information about components, development, 35 can find conceptual information about components, development,
36 cross-toolchains, and so forth. 36 cross-toolchains, and so forth.
@@ -39,19 +39,17 @@ This manual does not give you the following:
39 39
40- *Step-by-step Instructions for Development Tasks:* Instructional 40- *Step-by-step Instructions for Development Tasks:* Instructional
41 procedures reside in other manuals within the Yocto Project 41 procedures reside in other manuals within the Yocto Project
42 documentation set. For example, the `Yocto Project Development Tasks 42 documentation set. For example, the :doc:`../dev-manual/dev-manual`
43 Manual <&YOCTO_DOCS_DEV_URL;>`__ provides examples on how to perform 43 provides examples on how to perform
44 various development tasks. As another example, the `Yocto Project 44 various development tasks. As another example, the
45 Application Development and the Extensible Software Development Kit 45 :doc:`../sdk-manual/sdk-manual` manual contains detailed
46 (eSDK) <&YOCTO_DOCS_SDK_URL;>`__ manual contains detailed
47 instructions on how to install an SDK, which is used to develop 46 instructions on how to install an SDK, which is used to develop
48 applications for target hardware. 47 applications for target hardware.
49 48
50- *Reference Material:* This type of material resides in an appropriate 49- *Reference Material:* This type of material resides in an appropriate
51 reference manual. For example, system variables are documented in the 50 reference manual. For example, system variables are documented in the
52 `Yocto Project Reference Manual <&YOCTO_DOCS_REF_URL;>`__. As another 51 :doc:`../ref-manual/ref-manual`. As another
53 example, the `Yocto Project Board Support Package (BSP) Developer's 52 example, the :doc:`../bsp-guide/bsp-guide` contains reference information on
54 Guide <&YOCTO_DOCS_BSP_URL;>`__ contains reference information on
55 BSPs. 53 BSPs.
56 54
57- *Detailed Public Information Not Specific to the Yocto Project:* For 55- *Detailed Public Information Not Specific to the Yocto Project:* For
@@ -69,8 +67,8 @@ supplemental information is recommended for full comprehension. For
69additional introductory information on the Yocto Project, see the 67additional introductory information on the Yocto Project, see the
70:yocto_home:`Yocto Project Website <>`. If you want to build an image 68:yocto_home:`Yocto Project Website <>`. If you want to build an image
71with no knowledge of Yocto Project as a way of quickly testing it out, 69with no knowledge of Yocto Project as a way of quickly testing it out,
72see the `Yocto Project Quick Build <&YOCTO_DOCS_BRIEF_URL;>`__ document. 70see the :doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document.
73For a comprehensive list of links and other documentation, see the 71For a comprehensive list of links and other documentation, see the
74"`Links and Related 72":ref:`Links and Related
75Documentation <&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation>`__" 73Documentation <resources-links-and-related-documentation>`"
76section in the Yocto Project Reference Manual. 74section in the Yocto Project Reference Manual.
diff --git a/documentation/overview-manual/overview-manual-yp-intro.rst b/documentation/overview-manual/overview-manual-yp-intro.rst
index 1a71308fc0..13ff7e9f0e 100644
--- a/documentation/overview-manual/overview-manual-yp-intro.rst
+++ b/documentation/overview-manual/overview-manual-yp-intro.rst
@@ -113,7 +113,7 @@ Project:
113 development. 113 development.
114 114
115- *Releases According to a Strict Schedule:* Major releases occur on a 115- *Releases According to a Strict Schedule:* Major releases occur on a
116 `six-month cycle <&YOCTO_DOCS_REF_URL;#ref-release-process>`__ 116 :doc:`six-month cycle <../ref-manual/ref-release-process>`
117 predictably in October and April. The most recent two releases 117 predictably in October and April. The most recent two releases
118 support point releases to address common vulnerabilities and 118 support point releases to address common vulnerabilities and
119 exposures. This predictability is crucial for projects based on the 119 exposures. This predictability is crucial for projects based on the
@@ -131,8 +131,8 @@ Project:
131 in what order to support dependencies, other build systems can 131 in what order to support dependencies, other build systems can
132 arbitrarily include packages. 132 arbitrarily include packages.
133 133
134- *License Manifest:* The Yocto Project provides a `license 134- *License Manifest:* The Yocto Project provides a :ref:`license
135 manifest <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__ 135 manifest <dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle>`
136 for review by people who need to track the use of open source 136 for review by people who need to track the use of open source
137 licenses (e.g.legal teams). 137 licenses (e.g.legal teams).
138 138
@@ -154,10 +154,8 @@ developing using the Yocto Project:
154 changes need to be made for your particular design can require a 154 changes need to be made for your particular design can require a
155 significant amount of research and investigation. For information 155 significant amount of research and investigation. For information
156 that helps you transition from trying out the Yocto Project to using 156 that helps you transition from trying out the Yocto Project to using
157 it for your project, see the "`What I wish I'd 157 it for your project, see the ":ref:`what-i-wish-id-known:what i wish i'd known about yocto project`" and
158 Known <&YOCTO_DOCS_URL;/what-i-wish-id-known/>`__" and 158 ":ref:`transitioning-to-a-custom-environment:transitioning to a custom environment for systems development`"
159 "`Transitioning to a Custom Environment for Systems
160 Development <&YOCTO_DOCS_URL;/transitioning-to-a-custom-environment/>`__"
161 documents on the Yocto Project website. 159 documents on the Yocto Project website.
162 160
163- *Project Workflow Could Be Confusing:* The `Yocto Project 161- *Project Workflow Could Be Confusing:* The `Yocto Project
@@ -233,8 +231,8 @@ your Metadata, the easier it is to cope with future changes.
233 validated. 231 validated.
234 232
235 - Layers support the inclusion of technologies, hardware components, 233 - Layers support the inclusion of technologies, hardware components,
236 and software components. The `Yocto Project 234 and software components. The :ref:`Yocto Project
237 Compatible <&YOCTO_DOCS_DEV_URL;#making-sure-your-layer-is-compatible-with-yocto-project>`__ 235 Compatible <dev-manual/dev-manual-common-tasks:making sure your layer is compatible with yocto project>`
238 designation provides a minimum level of standardization that 236 designation provides a minimum level of standardization that
239 contributes to a strong ecosystem. "YP Compatible" is applied to 237 contributes to a strong ecosystem. "YP Compatible" is applied to
240 appropriate products and software components such as BSPs, other 238 appropriate products and software components such as BSPs, other
@@ -280,9 +278,8 @@ view <https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/>`__ of the
280``meta-yocto-bsp``. Each of these repositories represents a distinct 278``meta-yocto-bsp``. Each of these repositories represents a distinct
281layer. 279layer.
282 280
283For procedures on how to create layers, see the "`Understanding and 281For procedures on how to create layers, see the
284Creating 282":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
285Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
286section in the Yocto Project Development Tasks Manual. 283section in the Yocto Project Development Tasks Manual.
287 284
288Components and Tools 285Components and Tools
@@ -292,7 +289,7 @@ The Yocto Project employs a collection of components and tools used by
292the project itself, by project developers, and by those using the Yocto 289the project itself, by project developers, and by those using the Yocto
293Project. These components and tools are open source projects and 290Project. These components and tools are open source projects and
294metadata that are separate from the reference distribution 291metadata that are separate from the reference distribution
295(`Poky <&YOCTO_DOCS_REF_URL;#poky>`__) and the 292(:term:`Poky`) and the
296:term:`OpenEmbedded Build System`. Most of the 293:term:`OpenEmbedded Build System`. Most of the
297components and tools are downloaded separately. 294components and tools are downloaded separately.
298 295
@@ -336,8 +333,8 @@ applications using the Yocto Project:
336 333
337 You can read about the ``devtool`` workflow in the Yocto Project 334 You can read about the ``devtool`` workflow in the Yocto Project
338 Application Development and Extensible Software Development Kit 335 Application Development and Extensible Software Development Kit
339 (eSDK) Manual in the "`Using ``devtool`` in Your SDK 336 (eSDK) Manual in the
340 Workflow' <&YOCTO_DOCS_SDK_URL;#using-devtool-in-your-sdk-workflow>`__" 337 ":ref:`sdk-manual/sdk-extensible:using \`\`devtool\`\` in your sdk workflow`"
341 section. 338 section.
342 339
343- *Extensible Software Development Kit (eSDK):* The eSDK provides a 340- *Extensible Software Development Kit (eSDK):* The eSDK provides a
@@ -349,14 +346,12 @@ applications using the Yocto Project:
349 experience supplemented with the powerful set of ``devtool`` commands 346 experience supplemented with the powerful set of ``devtool`` commands
350 tailored for the Yocto Project environment. 347 tailored for the Yocto Project environment.
351 348
352 For information on the eSDK, see the `Yocto Project Application 349 For information on the eSDK, see the :doc:`../sdk-manual/sdk-manual` Manual.
353 Development and the Extensible Software Development Kit
354 (eSDK) <&YOCTO_DOCS_SDK_URL;>`__ Manual.
355 350
356- *Toaster:* Toaster is a web interface to the Yocto Project 351- *Toaster:* Toaster is a web interface to the Yocto Project
357 OpenEmbedded build system. Toaster allows you to configure, run, and 352 OpenEmbedded build system. Toaster allows you to configure, run, and
358 view information about builds. For information on Toaster, see the 353 view information about builds. For information on Toaster, see the
359 `Toaster User Manual <&YOCTO_DOCS_TOAST_URL;>`__. 354 :doc:`../toaster-manual/toaster-manual`.
360 355
361.. _gs-production-tools: 356.. _gs-production-tools:
362 357
@@ -406,7 +401,7 @@ activities using the Yocto Project:
406 benefit of the development community. 401 benefit of the development community.
407 402
408 You can learn more about the AutoBuilder used by the Yocto Project 403 You can learn more about the AutoBuilder used by the Yocto Project
409 `here <&YOCTO_AB_URL;>`__. 404 Autobuilder :doc:`here <../test-manual/test-manual-understand-autobuilder>`.
410 405
411- *Cross-Prelink:* Prelinking is the process of pre-computing the load 406- *Cross-Prelink:* Prelinking is the process of pre-computing the load
412 addresses and link tables generated by the dynamic linker as compared 407 addresses and link tables generated by the dynamic linker as compared
@@ -595,8 +590,8 @@ Linux.
595Development Methods 590Development Methods
596=================== 591===================
597 592
598The Yocto Project development environment usually involves a `Build 593The Yocto Project development environment usually involves a
599Host <&YOCTO_DOCS_REF_URL;#hardware-build-system-term>`__ and target 594:term:`Build Host` and target
600hardware. You use the Build Host to build images and develop 595hardware. You use the Build Host to build images and develop
601applications, while you use the target hardware to test deployed 596applications, while you use the target hardware to test deployed
602software. 597software.
@@ -622,8 +617,8 @@ Project.
622 supported Linux distribution. 617 supported Linux distribution.
623 618
624 For information on how to set up a Build Host on a system running 619 For information on how to set up a Build Host on a system running
625 Linux as its native operating system, see the "`Setting Up a Native 620 Linux as its native operating system, see the
626 Linux Host <&YOCTO_DOCS_DEV_URL;#setting-up-a-native-linux-host>`__" 621 ":ref:`dev-manual/dev-manual-start:setting up a native linux host`"
627 section in the Yocto Project Development Tasks Manual. 622 section in the Yocto Project Development Tasks Manual.
628 623
629- *CROss PlatformS (CROPS):* Typically, you use 624- *CROss PlatformS (CROPS):* Typically, you use
@@ -643,9 +638,8 @@ Project.
643 system natively running Linux. 638 system natively running Linux.
644 639
645 For information on how to set up a Build Host with CROPS, see the 640 For information on how to set up a Build Host with CROPS, see the
646 "`Setting Up to Use CROss PlatformS 641 ":ref:`dev-manual/dev-manual-start:setting up to use cross platforms (crops)`"
647 (CROPS) <&YOCTO_DOCS_DEV_URL;#setting-up-to-use-crops>`__" section in 642 section in the Yocto Project Development Tasks Manual.
648 the Yocto Project Development Tasks Manual.
649 643
650- *Windows Subsystem For Linux (WSLv2):* You may use Windows Subsystem 644- *Windows Subsystem For Linux (WSLv2):* You may use Windows Subsystem
651 For Linux v2 to set up a build host using Windows 10. 645 For Linux v2 to set up a build host using Windows 10.
@@ -661,9 +655,8 @@ Project.
661 virtualization technology. 655 virtualization technology.
662 656
663 For information on how to set up a Build Host with WSLv2, see the 657 For information on how to set up a Build Host with WSLv2, see the
664 "`Setting Up to Use Windows Subsystem For 658 ":ref:dev-manual/dev-manual-start:setting up to use windows subsystem for linux (wslv2)`"
665 Linux <&YOCTO_DOCS_DEV_URL;#setting-up-to-use-wsl>`__" section in the 659 section in the Yocto Project Development Tasks Manual.
666 Yocto Project Development Tasks Manual.
667 660
668- *Toaster:* Regardless of what your Build Host is running, you can use 661- *Toaster:* Regardless of what your Build Host is running, you can use
669 Toaster to develop software using the Yocto Project. Toaster is a web 662 Toaster to develop software using the Yocto Project. Toaster is a web
@@ -673,8 +666,8 @@ Project.
673 builds is collected and stored in a database. You can use Toaster to 666 builds is collected and stored in a database. You can use Toaster to
674 configure and start builds on multiple remote build servers. 667 configure and start builds on multiple remote build servers.
675 668
676 For information about and how to use Toaster, see the `Toaster User 669 For information about and how to use Toaster, see the
677 Manual <&YOCTO_DOCS_TOAST_URL;>`__. 670 :doc:`../toaster-manual/toaster-manual`.
678 671
679.. _reference-embedded-distribution: 672.. _reference-embedded-distribution:
680 673
@@ -686,7 +679,7 @@ Project's reference distribution or Reference OS Kit. Poky contains the
686:term:`OpenEmbedded Build System` 679:term:`OpenEmbedded Build System`
687(:term:`BitBake` and 680(:term:`BitBake` and
688:term:`OpenEmbedded-Core (OE-Core)`) as well as a set 681:term:`OpenEmbedded-Core (OE-Core)`) as well as a set
689of `metadata <&YOCTO_DOCS_REF_URL;#metadata>`__ to get you started 682of :term:`Metadata` to get you started
690building your own distro. In other words, Poky is a base specification 683building your own distro. In other words, Poky is a base specification
691of the functionality needed for a typical embedded system as well as the 684of the functionality needed for a typical embedded system as well as the
692components from the Yocto Project that allow you to build a distribution 685components from the Yocto Project that allow you to build a distribution
@@ -747,8 +740,7 @@ Poky has a regular, well established, six-month release cycle under its
747own version. Major releases occur at the same time major releases (point 740own version. Major releases occur at the same time major releases (point
748releases) occur for the Yocto Project, which are typically in the Spring 741releases) occur for the Yocto Project, which are typically in the Spring
749and Fall. For more information on the Yocto Project release schedule and 742and Fall. For more information on the Yocto Project release schedule and
750cadence, see the "`Yocto Project Releases and the Stable Release 743cadence, see the ":doc:`../ref-manual/ref-release-process`" chapter in the
751Process <&YOCTO_DOCS_REF_URL;#ref-release-process>`__" chapter in the
752Yocto Project Reference Manual. 744Yocto Project Reference Manual.
753 745
754Much has been said about Poky being a "default configuration." A default 746Much has been said about Poky being a "default configuration." A default
@@ -827,8 +819,8 @@ Some Basic Terms
827================ 819================
828 820
829It helps to understand some basic fundamental terms when learning the 821It helps to understand some basic fundamental terms when learning the
830Yocto Project. Although a list of terms exists in the "`Yocto Project 822Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project
831Terms <&YOCTO_DOCS_REF_URL;#ref-terms>`__" section of the Yocto Project 823Terms <../ref-manual/ref-terms>`" section of the Yocto Project
832Reference Manual, this section provides the definitions of some terms 824Reference Manual, this section provides the definitions of some terms
833helpful for getting started: 825helpful for getting started:
834 826
@@ -842,9 +834,7 @@ helpful for getting started:
842 application developers. This eSDK allows developers to incorporate 834 application developers. This eSDK allows developers to incorporate
843 their library and programming changes back into the image to make 835 their library and programming changes back into the image to make
844 their code available to other application developers. For information 836 their code available to other application developers. For information
845 on the eSDK, see the `Yocto Project Application Development and the 837 on the eSDK, see the :doc:`../sdk-manual/sdk-manual` manual.
846 Extensible Software Development Kit (eSDK) <&YOCTO_DOCS_SDK_URL;>`__
847 manual.
848 838
849- *Layer:* A collection of related recipes. Layers allow you to 839- *Layer:* A collection of related recipes. Layers allow you to
850 consolidate related metadata to customize your build. Layers also 840 consolidate related metadata to customize your build. Layers also
@@ -855,12 +845,11 @@ helpful for getting started:
855 them. You can search the Layer Index for layers used within Yocto 845 them. You can search the Layer Index for layers used within Yocto
856 Project. 846 Project.
857 847
858 For more detailed information on layers, see the "`Understanding and 848 For more detailed information on layers, see the
859 Creating 849 ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`"
860 Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__"
861 section in the Yocto Project Development Tasks Manual. For a 850 section in the Yocto Project Development Tasks Manual. For a
862 discussion specifically on BSP Layers, see the "`BSP 851 discussion specifically on BSP Layers, see the
863 Layers <&YOCTO_DOCS_BSP_URL;#bsp-layers>`__" section in the Yocto 852 ":ref:`bsp-guide/bsp:bsp layers`" section in the Yocto
864 Project Board Support Packages (BSP) Developer's Guide. 853 Project Board Support Packages (BSP) Developer's Guide.
865 854
866- *Metadata:* A key element of the Yocto Project is the Metadata that 855- *Metadata:* A key element of the Yocto Project is the Metadata that
@@ -913,8 +902,7 @@ helpful for getting started:
913 902
914 It is worth noting that the term "package" can, in general, have 903 It is worth noting that the term "package" can, in general, have
915 subtle meanings. For example, the packages referred to in the 904 subtle meanings. For example, the packages referred to in the
916 "`Required Packages for the Build 905 ":ref:`ref-manual/ref-system-requirements:required packages for the build host`"
917 Host <&YOCTO_DOCS_REF_URL;#required-packages-for-the-build-host>`__"
918 section in the Yocto Project Reference Manual are compiled binaries 906 section in the Yocto Project Reference Manual are compiled binaries
919 that, when installed, add functionality to your Linux distribution. 907 that, when installed, add functionality to your Linux distribution.
920 908