diff options
Diffstat (limited to 'documentation/overview-manual')
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 | ||
35 | BitBake knows how to combine multiple data sources together and refers | 35 | BitBake knows how to combine multiple data sources together and refers |
36 | to each data source as a layer. For information on layers, see the | 36 | to 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`" |
38 | Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__" | ||
39 | section of the Yocto Project Development Tasks Manual. | 38 | section of the Yocto Project Development Tasks Manual. |
40 | 39 | ||
41 | Following are some brief details on these core components. For | 40 | Following are some brief details on these core components. For |
42 | additional information on how these components interact during a build, | 41 | additional information on how these components interact during a build, |
43 | see the "`OpenEmbedded Build System | 42 | see the |
44 | Concepts <#openembedded-build-system-build-concepts>`__" section. | 43 | ":ref:`overview-manual/overview-manual-concepts:openembedded build system concepts`" |
44 | section. | ||
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 | |||
57 | BitBake, see the :doc:`BitBake User Manual <bitbake:index>`. | 57 | BitBake, see the :doc:`BitBake User Manual <bitbake:index>`. |
58 | 58 | ||
59 | To see a list of the options BitBake supports, use either of the | 59 | To see a list of the options BitBake supports, use either of the |
60 | following commands: $ bitbake -h $ bitbake --help | 60 | following commands: |
61 | :: | ||
62 | |||
63 | $ bitbake -h | ||
64 | $ bitbake --help | ||
61 | 65 | ||
62 | The most common usage for BitBake is ``bitbake packagename``, where | 66 | The 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 |
64 | to as the "target"). The target often equates to the first part of a | 68 | to as the "target"). The target often equates to the first part of a |
65 | recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``). | 69 | recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``). |
66 | So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might | 70 | So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might |
67 | type the following: $ bitbake matchbox-desktop Several different | 71 | type the following: |
72 | :: | ||
73 | |||
74 | $ bitbake matchbox-desktop | ||
75 | |||
76 | Several different | ||
68 | versions of ``matchbox-desktop`` might exist. BitBake chooses the one | 77 | versions of ``matchbox-desktop`` might exist. BitBake chooses the one |
69 | selected by the distribution configuration. You can get more details | 78 | selected by the distribution configuration. You can get more details |
70 | about how BitBake chooses between different target versions and | 79 | about how BitBake chooses between different target versions and |
@@ -153,9 +162,8 @@ By convention, layers in the Yocto Project follow a specific form. | |||
153 | Conforming to a known structure allows BitBake to make assumptions | 162 | Conforming to a known structure allows BitBake to make assumptions |
154 | during builds on where to find types of metadata. You can find | 163 | during builds on where to find types of metadata. You can find |
155 | procedures and learn about tools (i.e. ``bitbake-layers``) for creating | 164 | procedures and learn about tools (i.e. ``bitbake-layers``) for creating |
156 | layers suitable for the Yocto Project in the "`Understanding and | 165 | layers suitable for the Yocto Project in the |
157 | Creating | 166 | ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`" |
158 | Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__" | ||
159 | section of the Yocto Project Development Tasks Manual. | 167 | section 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, |
226 | this section refers to the Source Directory as the "Poky Directory." | 234 | this section refers to the Source Directory as the "Poky Directory." |
227 | 235 | ||
228 | When you clone the `Poky <&YOCTO_DOCS_REF_URL;#poky>`__ Git repository | 236 | When you clone the :term:`Poky` Git repository |
229 | or you download and unpack a Yocto Project release, you can set up the | 237 | or you download and unpack a Yocto Project release, you can set up the |
230 | Source Directory to be named anything you want. For this discussion, the | 238 | Source Directory to be named anything you want. For this discussion, the |
231 | cloned repository uses the default name ``poky``. | 239 | cloned repository uses the default name ``poky``. |
@@ -238,7 +246,7 @@ cloned repository uses the default name ``poky``. | |||
238 | The ``meta-poky`` layer inside Poky contains a ``conf`` directory that | 246 | The ``meta-poky`` layer inside Poky contains a ``conf`` directory that |
239 | has example configuration files. These example files are used as a basis | 247 | has example configuration files. These example files are used as a basis |
240 | for creating actual configuration files when you source | 248 | for 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 |
242 | build environment script. | 250 | build environment script. |
243 | 251 | ||
244 | Sourcing the build environment script creates a | 252 | Sourcing the build environment script creates a |
@@ -251,8 +259,8 @@ if versions do not already exist in the Build Directory at the time you | |||
251 | source the build environment setup script. | 259 | source the build environment setup script. |
252 | 260 | ||
253 | Because the Poky repository is fundamentally an aggregation of existing | 261 | Because the Poky repository is fundamentally an aggregation of existing |
254 | repositories, some users might be familiar with running the ```` script | 262 | repositories, some users might be familiar with running the |
255 | in 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 |
257 | repositories rather than a single Poky repository. This discussion | 265 | repositories rather than a single Poky repository. This discussion |
258 | assumes the script is executed from within a cloned or unpacked version | 266 | assumes 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 | |||
320 | during the build. By default, the layers listed in this file include | 328 | during the build. By default, the layers listed in this file include |
321 | layers minimally needed by the build system. However, you must manually | 329 | layers minimally needed by the build system. However, you must manually |
322 | add any custom layers you have created. You can find more information on | 330 | add any custom layers you have created. You can find more information on |
323 | working with the ``bblayers.conf`` file in the "`Enabling Your | 331 | working with the ``bblayers.conf`` file in the |
324 | Layer <&YOCTO_DOCS_DEV_URL;#enabling-your-layer>`__" section in the | 332 | ":ref:`dev-manual/dev-manual-common-tasks:enabling your layer`" |
325 | Yocto Project Development Tasks Manual. | 333 | section in the Yocto Project Development Tasks Manual. |
326 | 334 | ||
327 | The files ``site.conf`` and ``auto.conf`` are not created by the | 335 | The files ``site.conf`` and ``auto.conf`` are not created by the |
328 | environment initialization script. If you want the ``site.conf`` file, | 336 | environment initialization script. If you want the ``site.conf`` file, |
329 | you need to create that yourself. The ``auto.conf`` file is typically | 337 | you need to create that yourself. The ``auto.conf`` file is typically |
330 | created by an autobuilder: | 338 | created 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 | |||
382 | the "User Configuration" box in the `general workflow | 390 | the "User Configuration" box in the `general workflow |
383 | figure <#general-workflow-figure>`__: | 391 | figure <#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, | |||
421 | a ``README`` file as good practice and especially if the layer is to be | 429 | a ``README`` file as good practice and especially if the layer is to be |
422 | distributed, a configuration directory, and recipe directories. You can | 430 | distributed, a configuration directory, and recipe directories. You can |
423 | learn about the general structure for layers used with the Yocto Project | 431 | learn about the general structure for layers used with the Yocto Project |
424 | in the "`Creating Your Own | 432 | in the |
425 | Layer <&YOCTO_DOCS_DEV_URL;#creating-your-own-layer>`__" section in the | 433 | ":ref:`dev-manual/dev-manual-common-tasks:creating your own layer`" |
434 | section in the | ||
426 | Yocto Project Development Tasks Manual. For a general discussion on | 435 | Yocto Project Development Tasks Manual. For a general discussion on |
427 | layers and the many layers from which you can draw, see the | 436 | layers 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 | |||
485 | hardware. Everything in this layer is specific to the machine for which | 494 | hardware. Everything in this layer is specific to the machine for which |
486 | you are building the image or the SDK. A common structure or form is | 495 | you are building the image or the SDK. A common structure or form is |
487 | defined for BSP layers. You can learn more about this structure in the | 496 | defined 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`. |
489 | Guide <&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 | ||
707 | BitBake | 715 | BitBake Tool |
708 | ------- | 716 | ------------ |
709 | 717 | ||
710 | The OpenEmbedded build system uses | 718 | The 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 | ||
752 | By default, everything is accomplished in the Build Directory, which has | 760 | By default, everything is accomplished in the Build Directory, which has |
753 | a defined structure. For additional general information on the Build | 761 | a defined structure. For additional general information on the Build |
754 | Directory, see the | 762 | Directory, see the ":ref:`structure-core-build`" section in |
755 | "```build/`` <&YOCTO_DOCS_REF_URL;#structure-core-build>`__" section in | ||
756 | the Yocto Project Reference Manual. | 763 | the Yocto Project Reference Manual. |
757 | 764 | ||
758 | Each recipe has an area in the Build Directory where the unpacked source | 765 | Each 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 | |||
846 | For more information on how the source directories are created, see the | 852 | For 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 |
848 | more information on how to create patches and how the build system | 854 | more information on how to create patches and how the build system |
849 | processes patches, see the "`Patching | 855 | processes patches, see the |
850 | Code <&YOCTO_DOCS_DEV_URL;#new-recipe-patching-code>`__" section in the | 856 | ":ref:`dev-manual/dev-manual-common-tasks:patching code`" |
851 | Yocto Project Development Tasks Manual. You can also see the "`Use | 857 | section in the |
852 | ``devtool modify`` to Modify the Source of an Existing | 858 | Yocto Project Development Tasks Manual. You can also see the |
853 | Component <&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`" |
854 | section in the Yocto Project Application Development and the Extensible | 860 | section in the Yocto Project Application Development and the Extensible |
855 | Software Development Kit (SDK) manual and the "`Using Traditional Kernel | 861 | Software Development Kit (SDK) manual and the |
856 | Development to Patch the | 862 | ":ref:`kernel-dev/kernel-dev-common:using traditional kernel development to patch the kernel`" |
857 | Kernel <&YOCTO_DOCS_KERNEL_DEV_URL;#using-traditional-kernel-development-to-patch-the-kernel>`__" | ||
858 | section in the Yocto Project Linux Kernel Development Manual. | 863 | section 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 | |||
1055 | stage of package installation, post installation scripts that are part | 1060 | stage of package installation, post installation scripts that are part |
1056 | of the packages are run. Any scripts that fail to run on the build host | 1061 | of the packages are run. Any scripts that fail to run on the build host |
1057 | are run on the target when the target system is first booted. If you are | 1062 | are run on the target when the target system is first booted. If you are |
1058 | using a `read-only root | 1063 | using a |
1059 | filesystem <&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>`, |
1060 | all the post installation scripts must succeed on the build host during | 1065 | all the post installation scripts must succeed on the build host during |
1061 | the package installation phase since the root filesystem on the target | 1066 | the package installation phase since the root filesystem on the target |
1062 | is read-only. | 1067 | is read-only. |
@@ -1097,9 +1102,17 @@ the image. The formats used for the root filesystem depend on the | |||
1097 | support compression. | 1102 | support compression. |
1098 | 1103 | ||
1099 | As an example, a dynamically created task when creating a particular | 1104 | As an example, a dynamically created task when creating a particular |
1100 | image type would take the following form: do_image_type So, if the type | 1105 | image type would take the following form: |
1106 | :: | ||
1107 | |||
1108 | do_image_type | ||
1109 | |||
1110 | So, if the type | ||
1101 | as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically | 1111 | as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically |
1102 | generated task would be as follows: do_image_ext4 | 1112 | generated task would be as follows: |
1113 | :: | ||
1114 | |||
1115 | do_image_ext4 | ||
1103 | 1116 | ||
1104 | The final task involved in image creation is the | 1117 | The 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 | |||
1217 | also always be considered out of date, which might not be what you want. | 1230 | also always be considered out of date, which might not be what you want. |
1218 | 1231 | ||
1219 | For details on how to view information about a task's signature, see the | 1232 | For 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`" |
1221 | Dependencies <&YOCTO_DOCS_DEV_URL;#dev-viewing-task-variable-dependencies>`__" | ||
1222 | section in the Yocto Project Development Tasks Manual. | 1234 | section in the Yocto Project Development Tasks Manual. |
1223 | 1235 | ||
1224 | Setscene Tasks and Shared State | 1236 | Setscene 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 | ||
1403 | All the output files for an SDK are written to the ``deploy/sdk`` folder | 1414 | All the output files for an SDK are written to the ``deploy/sdk`` folder |
1404 | inside the :term:`Build Directory` as | 1415 | inside the :term:`Build Directory` as |
@@ -1475,13 +1486,10 @@ Cross-Development Toolchain Generation | |||
1475 | ====================================== | 1486 | ====================================== |
1476 | 1487 | ||
1477 | The Yocto Project does most of the work for you when it comes to | 1488 | The Yocto Project does most of the work for you when it comes to |
1478 | creating `cross-development | 1489 | creating :ref:`sdk-manual/sdk-intro:the cross-development toolchain`. This |
1479 | toolchains <&YOCTO_DOCS_REF_URL;#cross-development-toolchain>`__. This | ||
1480 | section provides some technical background on how cross-development | 1490 | section provides some technical background on how cross-development |
1481 | toolchains are created and used. For more information on toolchains, you | 1491 | toolchains are created and used. For more information on toolchains, you |
1482 | can also see the `Yocto Project Application Development and the | 1492 | can also see the :doc:`../sdk-manual/sdk-manual` manual. |
1483 | Extensible Software Development Kit (eSDK) <&YOCTO_DOCS_SDK_URL;>`__ | ||
1484 | manual. | ||
1485 | 1493 | ||
1486 | In the Yocto Project development environment, cross-development | 1494 | In the Yocto Project development environment, cross-development |
1487 | toolchains are used to build images and applications that run on the | 1495 | toolchains 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 | ||
1516 | The chain of events that occurs when ``gcc-cross`` is bootstrapped is as | 1524 | The chain of events that occurs when ``gcc-cross`` is bootstrapped is as |
1517 | follows: gcc -> binutils-cross -> gcc-cross-initial -> | 1525 | follows: |
1518 | linux-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 | ||
1574 | Here is the bootstrap process for the relocatable toolchain: gcc -> | 1584 | Here is the bootstrap process for the relocatable toolchain: |
1575 | binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> | 1585 | :: |
1576 | glibc-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 | ||
1685 | The rest of this section goes into detail about the overall incremental | 1693 | The rest of this section goes into detail about the overall incremental |
@@ -1754,15 +1762,22 @@ to the task. | |||
1754 | Like the ``WORKDIR`` case, situations exist where dependencies should be | 1762 | Like the ``WORKDIR`` case, situations exist where dependencies should be |
1755 | ignored. For these situations, you can instruct the build process to | 1763 | ignored. For these situations, you can instruct the build process to |
1756 | ignore a dependency by using a line like the following: | 1764 | ignore a dependency by using a line like the following: |
1757 | PACKAGE_ARCHS[vardepsexclude] = "MACHINE" This example ensures that the | 1765 | :: |
1758 | :term:`PACKAGE_ARCHS` variable | 1766 | |
1759 | does not depend on the value of | 1767 | PACKAGE_ARCHS[vardepsexclude] = "MACHINE" |
1760 | :term:`MACHINE`, even if it does | 1768 | |
1769 | This example ensures that the :term:`PACKAGE_ARCHS` variable | ||
1770 | does not depend on the value of :term:`MACHINE`, even if it does | ||
1761 | reference it. | 1771 | reference it. |
1762 | 1772 | ||
1763 | Equally, there are cases where you need to add dependencies BitBake is | 1773 | Equally, there are cases where you need to add dependencies BitBake is |
1764 | not able to find. You can accomplish this by using a line like the | 1774 | not able to find. You can accomplish this by using a line like the |
1765 | following: PACKAGE_ARCHS[vardeps] = "MACHINE" This example explicitly | 1775 | following: |
1776 | :: | ||
1777 | |||
1778 | PACKAGE_ARCHS[vardeps] = "MACHINE" | ||
1779 | |||
1780 | This example explicitly | ||
1766 | adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``. | 1781 | adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``. |
1767 | 1782 | ||
1768 | As an example, consider a case with in-line Python where BitBake is not | 1783 | As 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 | |||
1788 | configuration file, you can give BitBake some extra information to help | 1803 | configuration file, you can give BitBake some extra information to help |
1789 | it construct the basehash. The following statement effectively results | 1804 | it construct the basehash. The following statement effectively results |
1790 | in a list of global variable dependency excludes (i.e. variables never | 1805 | in a list of global variable dependency excludes (i.e. variables never |
1791 | included in any checksum): BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH | 1806 | included in any checksum): |
1792 | PWD BB_TASKHASH BBPATH DL_DIR \\ SSTATE_DIR THISDIR FILESEXTRAPATHS | 1807 | :: |
1793 | FILE_DIRNAME HOME LOGNAME SHELL TERM \\ USER FILESPATH STAGING_DIR_HOST | 1808 | |
1794 | STAGING_DIR_TARGET COREBASE PRSERV_HOST \\ PRSERV_DUMPDIR | 1809 | BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\ |
1795 | PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \\ CCACHE_DIR | 1810 | SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\ |
1796 | EXTERNAL_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 | |||
1815 | The | ||
1797 | previous example excludes | 1816 | previous example excludes |
1798 | :term:`WORKDIR` since that variable | 1817 | :term:`WORKDIR` since that variable |
1799 | is actually constructed as a path within | 1818 | is 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 |
1811 | in BitBake. This means that behavior is unchanged from previous | 1830 | in BitBake. This means that behavior is unchanged from previous |
1812 | versions. OE-Core uses the "OEBasicHash" signature handler by default | 1831 | versions. OE-Core uses the "OEBasicHash" signature handler by default |
1813 | through this setting in the ``bitbake.conf`` file: BB_SIGNATURE_HANDLER | 1832 | through 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 | |||
1837 | The "OEBasicHash" ``BB_SIGNATURE_HANDLER`` is the same | ||
1815 | as the "OEBasic" version but adds the task hash to the `stamp | 1838 | as the "OEBasic" version but adds the task hash to the `stamp |
1816 | files <#stamp-files-and-the-rerunning-of-tasks>`__. This results in any | 1839 | files <#stamp-files-and-the-rerunning-of-tasks>`__. This results in any |
1817 | metadata change that changes the task hash, automatically causing the | 1840 | metadata change that changes the task hash, automatically causing the |
@@ -1862,12 +1885,21 @@ implementation hidden in ``sstate`` class. From a user's perspective, | |||
1862 | adding shared state wrapping to a task is as simple as this | 1885 | adding 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 |
1864 | from the :ref:`deploy <ref-classes-deploy>` class: | 1887 | from the :ref:`deploy <ref-classes-deploy>` class: |
1865 | DEPLOYDIR = "${WORKDIR}/deploy-${PN}" SSTATETASKS += "do_deploy" | 1888 | :: |
1866 | do_deploy[sstate-inputdirs] = "${DEPLOYDIR}" | 1889 | |
1867 | do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" python | 1890 | DEPLOYDIR = "${WORKDIR}/deploy-${PN}" |
1868 | do_deploy_setscene () { sstate_setscene(d) } addtask do_deploy_setscene | 1891 | SSTATETASKS += "do_deploy" |
1869 | do_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 | |||
1902 | The 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 | ||
1967 | Behind the scenes, the shared state code works by looking in | 2009 | Behind 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 |
1970 | shared state files. Here is an example: SSTATE_MIRRORS ?= "\\ file://.\* | 2012 | shared state files. Here is an example: |
1971 | http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \\n \\ | 2013 | :: |
1972 | file://.\* 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 | ||
2173 | For more information, see the | 2218 | For 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 | |||
50 | The Development Host | 50 | The Development Host |
51 | ==================== | 51 | ==================== |
52 | 52 | ||
53 | A development host or `build | 53 | A development host or :term:`Build Host` is key to |
54 | host <&YOCTO_DOCS_REF_URL;#hardware-build-system-term>`__ is key to | ||
55 | using the Yocto Project. Because the goal of the Yocto Project is to | 54 | using the Yocto Project. Because the goal of the Yocto Project is to |
56 | develop images or applications that run on embedded hardware, | 55 | develop images or applications that run on embedded hardware, |
57 | development of those images and applications generally takes place on a | 56 | development of those images and applications generally takes place on a |
@@ -68,8 +67,9 @@ set it up as the development host by using | |||
68 | to set up a CROPS machine, you effectively have access to a shell | 67 | to set up a CROPS machine, you effectively have access to a shell |
69 | environment that is similar to what you see when using a Linux-based | 68 | environment that is similar to what you see when using a Linux-based |
70 | development host. For the steps needed to set up a system using CROPS, | 69 | development host. For the steps needed to set up a system using CROPS, |
71 | see the "`Setting Up to Use CROss PlatformS | 70 | see 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)`" |
72 | section in | ||
73 | the Yocto Project Development Tasks Manual. | 73 | the Yocto Project Development Tasks Manual. |
74 | 74 | ||
75 | If your development host is going to be a system that runs a Linux | 75 | If 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 | |||
78 | distribution on the system is one that supports the Yocto Project. You | 78 | distribution on the system is one that supports the Yocto Project. You |
79 | also need to be sure that the correct set of host packages are installed | 79 | also need to be sure that the correct set of host packages are installed |
80 | that allow development using the Yocto Project. For the steps needed to | 80 | that allow development using the Yocto Project. For the steps needed to |
81 | set up a development host that runs Linux, see the "`Setting Up a Native | 81 | set up a development host that runs Linux, see the |
82 | Linux Host <&YOCTO_DOCS_DEV_URL;#setting-up-a-native-linux-host>`__" | 82 | ":ref:`dev-manual/dev-manual-start:setting up a native linux host`" |
83 | section in the Yocto Project Development Tasks Manual. | 83 | section in the Yocto Project Development Tasks Manual. |
84 | 84 | ||
85 | Once your development host is set up to use the Yocto Project, several | 85 | Once 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 | ||
259 | The Yocto Project ``poky`` Git repository also has an upstream | 254 | The Yocto Project ``poky`` Git repository also has an upstream |
260 | contribution Git repository named ``poky-contrib``. You can see all the | 255 | contribution 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 | |||
284 | push them into the "contrib" area and subsequently request that the | 279 | push them into the "contrib" area and subsequently request that the |
285 | maintainer include them into an upstream branch. This process is called | 280 | maintainer 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 |
287 | submitting patches and changes, see the "`Submitting a Change to the | 282 | submitting patches and changes, see the |
288 | Yocto 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`" |
289 | in the Yocto Project Development Tasks Manual. | 284 | section in the Yocto Project Development Tasks Manual. |
290 | 285 | ||
291 | In summary, a single point of entry exists for changes into a "master" | 286 | In summary, a single point of entry exists for changes into a "master" |
292 | or development branch of the Git repository, which is controlled by the | 287 | or 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 | ||
369 | Git | 362 | Git |
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 | ||
396 | Repositories, Tags, and Branches | 388 | Repositories, Tags, and Branches |
@@ -422,14 +414,13 @@ You can create a local copy of any repository by "cloning" it with the | |||
422 | an identical copy of the repository on your development system. Once you | 414 | an identical copy of the repository on your development system. Once you |
423 | have a local copy of a repository, you can take steps to develop | 415 | have a local copy of a repository, you can take steps to develop |
424 | locally. For examples on how to clone Git repositories, see the | 416 | locally. 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`" |
426 | Files <&YOCTO_DOCS_DEV_URL;#locating-yocto-project-source-files>`__" | ||
427 | section in the Yocto Project Development Tasks Manual. | 418 | section in the Yocto Project Development Tasks Manual. |
428 | 419 | ||
429 | It is important to understand that Git tracks content change and not | 420 | It is important to understand that Git tracks content change and not |
430 | files. Git uses "branches" to organize different development efforts. | 421 | files. Git uses "branches" to organize different development efforts. |
431 | For example, the ``poky`` repository has several branches that include | 422 | For example, the ``poky`` repository has several branches that include |
432 | the current "DISTRO_NAME_NO_CAP" branch, the "master" branch, and many | 423 | the current "&DISTRO_NAME_NO_CAP;" branch, the "master" branch, and many |
433 | branches for past Yocto Project releases. You can see all the branches | 424 | branches for past Yocto Project releases. You can see all the branches |
434 | by going to https://git.yoctoproject.org/cgit.cgi/poky/ and clicking on the | 425 | by 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 | |||
444 | development branch from the upstream source Git repository. in other | 435 | development branch from the upstream source Git repository. in other |
445 | words, you can define your local Git environment to work on any | 436 | words, you can define your local Git environment to work on any |
446 | development branch in the repository. To help illustrate, consider the | 437 | development branch in the repository. To help illustrate, consider the |
447 | following example Git commands: $ cd ~ $ git clone | 438 | following example Git commands: |
448 | git://git.yoctoproject.org/poky $ cd poky $ git checkout -b | 439 | :: |
449 | DISTRO_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 | |||
446 | In the previous example | ||
450 | after moving to the home directory, the ``git clone`` command creates a | 447 | after moving to the home directory, the ``git clone`` command creates a |
451 | local copy of the upstream ``poky`` Git repository. By default, Git | 448 | local copy of the upstream ``poky`` Git repository. By default, Git |
452 | checks out the "master" branch for your work. After changing the working | 449 | checks out the "master" branch for your work. After changing the working |
453 | directory to the new local repository (i.e. ``poky``), the | 450 | directory 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 |
457 | branch would ultimately affect the upstream "DISTRO_NAME_NO_CAP" branch | 454 | branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch |
458 | of the ``poky`` repository. | 455 | of the ``poky`` repository. |
459 | 456 | ||
460 | It is important to understand that when you create and checkout a local | 457 | It 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 | |||
462 | the "tip" of that particular development branch at the time you created | 459 | the "tip" of that particular development branch at the time you created |
463 | your local branch, which could be different from the files in the | 460 | your 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 |
465 | checking out a local branch based on the "DISTRO_NAME_NO_CAP" branch | 462 | checking out a local branch based on the "&DISTRO_NAME_NO_CAP;" branch |
466 | name is not the same as checking out the "master" branch in the | 463 | name is not the same as checking out the "master" branch in the |
467 | repository. Keep reading to see how you create a local snapshot of a | 464 | repository. Keep reading to see how you create a local snapshot of a |
468 | Yocto Project Release. | 465 | Yocto Project Release. |
@@ -476,7 +473,7 @@ beneath the "Tag" heading. | |||
476 | 473 | ||
477 | Some key tags for the ``poky`` repository are ``jethro-14.0.3``, | 474 | Some 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 |
480 | releases. | 477 | releases. |
481 | 478 | ||
482 | When you create a local copy of the Git repository, you also have access | 479 | When 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 | |||
485 | you do this, you get a snapshot of the Git repository that reflects the | 482 | you do this, you get a snapshot of the Git repository that reflects the |
486 | state of the files when the change was made associated with that tag. | 483 | state of the files when the change was made associated with that tag. |
487 | The most common use is to checkout a working branch that matches a | 484 | The most common use is to checkout a working branch that matches a |
488 | specific Yocto Project release. Here is an example: $ cd ~ $ git clone | 485 | specific Yocto Project release. Here is an example: |
489 | git://git.yoctoproject.org/poky $ cd poky $ git fetch --tags $ git | 486 | :: |
490 | checkout 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 | |||
494 | In this example, the name | ||
491 | of the top-level directory of your local Yocto Project repository is | 495 | of 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`` |
493 | command makes all the upstream tags available locally in your | 497 | command 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 | |||
518 | arguments it supports. See the Git documentation for complete | 522 | arguments it supports. See the Git documentation for complete |
519 | descriptions and strategies on how to use these commands: | 523 | descriptions 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 | ||
664 | For information that can help you maintain compliance with various open | 668 | For information that can help you maintain compliance with various open |
665 | source licensing during the lifecycle of a product created using the | 669 | source licensing during the lifecycle of a product created using the |
666 | Yocto Project, see the "`Maintaining Open Source License Compliance | 670 | Yocto Project, see the |
667 | During Your Product's | 671 | ":ref:`dev-manual/dev-manual-common-tasks:maintaining open source license compliance during your product's lifecycle`" |
668 | Lifecycle <&YOCTO_DOCS_DEV_URL;#maintaining-open-source-license-compliance-during-your-products-lifecycle>`__" | ||
669 | section in the Yocto Project Development Tasks Manual. | 672 | section 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 | |||
69 | additional introductory information on the Yocto Project, see the | 67 | additional 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 |
71 | with no knowledge of Yocto Project as a way of quickly testing it out, | 69 | with no knowledge of Yocto Project as a way of quickly testing it out, |
72 | see the `Yocto Project Quick Build <&YOCTO_DOCS_BRIEF_URL;>`__ document. | 70 | see the :doc:`../brief-yoctoprojectqs/brief-yoctoprojectqs` document. |
73 | For a comprehensive list of links and other documentation, see the | 71 | For a comprehensive list of links and other documentation, see the |
74 | "`Links and Related | 72 | ":ref:`Links and Related |
75 | Documentation <&YOCTO_DOCS_REF_URL;#resources-links-and-related-documentation>`__" | 73 | Documentation <resources-links-and-related-documentation>`" |
76 | section in the Yocto Project Reference Manual. | 74 | section 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 |
281 | layer. | 279 | layer. |
282 | 280 | ||
283 | For procedures on how to create layers, see the "`Understanding and | 281 | For procedures on how to create layers, see the |
284 | Creating | 282 | ":ref:`dev-manual/dev-manual-common-tasks:understanding and creating layers`" |
285 | Layers <&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers>`__" | ||
286 | section in the Yocto Project Development Tasks Manual. | 283 | section in the Yocto Project Development Tasks Manual. |
287 | 284 | ||
288 | Components and Tools | 285 | Components and Tools |
@@ -292,7 +289,7 @@ The Yocto Project employs a collection of components and tools used by | |||
292 | the project itself, by project developers, and by those using the Yocto | 289 | the project itself, by project developers, and by those using the Yocto |
293 | Project. These components and tools are open source projects and | 290 | Project. These components and tools are open source projects and |
294 | metadata that are separate from the reference distribution | 291 | metadata 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 |
297 | components and tools are downloaded separately. | 294 | components 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. | |||
595 | Development Methods | 590 | Development Methods |
596 | =================== | 591 | =================== |
597 | 592 | ||
598 | The Yocto Project development environment usually involves a `Build | 593 | The Yocto Project development environment usually involves a |
599 | Host <&YOCTO_DOCS_REF_URL;#hardware-build-system-term>`__ and target | 594 | :term:`Build Host` and target |
600 | hardware. You use the Build Host to build images and develop | 595 | hardware. You use the Build Host to build images and develop |
601 | applications, while you use the target hardware to test deployed | 596 | applications, while you use the target hardware to test deployed |
602 | software. | 597 | software. |
@@ -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 |
689 | of `metadata <&YOCTO_DOCS_REF_URL;#metadata>`__ to get you started | 682 | of :term:`Metadata` to get you started |
690 | building your own distro. In other words, Poky is a base specification | 683 | building your own distro. In other words, Poky is a base specification |
691 | of the functionality needed for a typical embedded system as well as the | 684 | of the functionality needed for a typical embedded system as well as the |
692 | components from the Yocto Project that allow you to build a distribution | 685 | components 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 | |||
747 | own version. Major releases occur at the same time major releases (point | 740 | own version. Major releases occur at the same time major releases (point |
748 | releases) occur for the Yocto Project, which are typically in the Spring | 741 | releases) occur for the Yocto Project, which are typically in the Spring |
749 | and Fall. For more information on the Yocto Project release schedule and | 742 | and Fall. For more information on the Yocto Project release schedule and |
750 | cadence, see the "`Yocto Project Releases and the Stable Release | 743 | cadence, see the ":doc:`../ref-manual/ref-release-process`" chapter in the |
751 | Process <&YOCTO_DOCS_REF_URL;#ref-release-process>`__" chapter in the | ||
752 | Yocto Project Reference Manual. | 744 | Yocto Project Reference Manual. |
753 | 745 | ||
754 | Much has been said about Poky being a "default configuration." A default | 746 | Much has been said about Poky being a "default configuration." A default |
@@ -827,8 +819,8 @@ Some Basic Terms | |||
827 | ================ | 819 | ================ |
828 | 820 | ||
829 | It helps to understand some basic fundamental terms when learning the | 821 | It helps to understand some basic fundamental terms when learning the |
830 | Yocto Project. Although a list of terms exists in the "`Yocto Project | 822 | Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project |
831 | Terms <&YOCTO_DOCS_REF_URL;#ref-terms>`__" section of the Yocto Project | 823 | Terms <../ref-manual/ref-terms>`" section of the Yocto Project |
832 | Reference Manual, this section provides the definitions of some terms | 824 | Reference Manual, this section provides the definitions of some terms |
833 | helpful for getting started: | 825 | helpful 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 | ||