summaryrefslogtreecommitdiffstats
path: root/documentation/overview-manual
diff options
context:
space:
mode:
authorMichael Opdenacker <michael.opdenacker@bootlin.com>2021-05-12 11:31:54 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-05-22 12:16:41 +0100
commit31f1d4d331993d830e2bb8c8e718bb409a2624f0 (patch)
tree22b3489d0537442337f13525c4debe07ee17fa6d /documentation/overview-manual
parent42f6423cc8d02d987de109c4b5ed40cc1cbfc66e (diff)
downloadpoky-31f1d4d331993d830e2bb8c8e718bb409a2624f0.tar.gz
overview-manual: simplify style and add missings references
(From yocto-docs rev: 4a07947dbe0dd70fd1d528a207d663dfdca2b7c1) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/overview-manual')
-rw-r--r--documentation/overview-manual/concepts.rst73
-rw-r--r--documentation/overview-manual/development-environment.rst12
-rw-r--r--documentation/overview-manual/yp-intro.rst14
3 files changed, 46 insertions, 53 deletions
diff --git a/documentation/overview-manual/concepts.rst b/documentation/overview-manual/concepts.rst
index 2e3f1af442..e5bdcdad2a 100644
--- a/documentation/overview-manual/concepts.rst
+++ b/documentation/overview-manual/concepts.rst
@@ -139,7 +139,7 @@ hardware-specific configurations allows you to share other metadata by
139using a different layer where that metadata might be common across 139using a different layer where that metadata might be common across
140several pieces of hardware. 140several pieces of hardware.
141 141
142Many layers exist that work in the Yocto Project development environment. The 142There are many layers working in the Yocto Project development environment. The
143:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>` 143:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
144and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from 144and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
145which you can use or leverage. 145which you can use or leverage.
@@ -370,7 +370,7 @@ BitBake's global behavior. This section takes a closer look at the
370layers the build system uses to further control the build. These layers 370layers the build system uses to further control the build. These layers
371provide Metadata for the software, machine, and policies. 371provide Metadata for the software, machine, and policies.
372 372
373In general, three types of layer input exists. You can see them below 373In general, there are three types of layer input. You can see them below
374the "User Configuration" box in the `general workflow 374the "User Configuration" box in the `general workflow
375figure <overview-manual/concepts:openembedded build system concepts>`: 375figure <overview-manual/concepts:openembedded build system concepts>`:
376 376
@@ -427,8 +427,8 @@ Repositories <>` also shows layers categorized under "Yocto Metadata Layers."
427 427
428.. note:: 428.. note::
429 429
430 Layers exist in the Yocto Project Source Repositories that cannot be 430 There are layers in the Yocto Project Source Repositories that cannot be
431 found in the OpenEmbedded Layer Index. These layers are either 431 found in the OpenEmbedded Layer Index. Such layers are either
432 deprecated or experimental in nature. 432 deprecated or experimental in nature.
433 433
434BitBake uses the ``conf/bblayers.conf`` file, which is part of the user 434BitBake uses the ``conf/bblayers.conf`` file, which is part of the user
@@ -489,7 +489,7 @@ the machine (``conf/machine/machine.conf``) and, of course, the layer
489 489
490The remainder of the layer is dedicated to specific recipes by function: 490The remainder of the layer is dedicated to specific recipes by function:
491``recipes-bsp``, ``recipes-core``, ``recipes-graphics``, 491``recipes-bsp``, ``recipes-core``, ``recipes-graphics``,
492``recipes-kernel``, and so forth. Metadata can exist for multiple 492``recipes-kernel``, and so forth. There can be metadata for multiple
493formfactors, graphics support systems, and so forth. 493formfactors, graphics support systems, and so forth.
494 494
495.. note:: 495.. note::
@@ -528,9 +528,7 @@ project that is more dynamic or experimental in nature, a project might
528keep source files in a repository controlled by a Source Control Manager 528keep source files in a repository controlled by a Source Control Manager
529(SCM) such as Git. Pulling source from a repository allows you to 529(SCM) such as Git. Pulling source from a repository allows you to
530control the point in the repository (the revision) from which you want 530control the point in the repository (the revision) from which you want
531to build software. Finally, a combination of the two might exist, which 531to build software. A combination of the two is also possible.
532would give the consumer a choice when deciding where to get source
533files.
534 532
535BitBake uses the :term:`SRC_URI` 533BitBake uses the :term:`SRC_URI`
536variable to point to source files regardless of their location. Each 534variable to point to source files regardless of their location. Each
@@ -609,7 +607,7 @@ the specific revision from which to build.
609Source Mirror(s) 607Source Mirror(s)
610~~~~~~~~~~~~~~~~ 608~~~~~~~~~~~~~~~~
611 609
612Two kinds of mirrors exist: pre-mirrors and regular mirrors. The 610There are two kinds of mirrors: pre-mirrors and regular mirrors. The
613:term:`PREMIRRORS` and 611:term:`PREMIRRORS` and
614:term:`MIRRORS` variables point to 612:term:`MIRRORS` variables point to
615these, respectively. BitBake checks pre-mirrors before looking upstream 613these, respectively. BitBake checks pre-mirrors before looking upstream
@@ -667,8 +665,8 @@ package files are kept:
667 variables are used, respectively. 665 variables are used, respectively.
668 666
669- :term:`PACKAGE_ARCH`: Defines 667- :term:`PACKAGE_ARCH`: Defines
670 architecture-specific sub-folders. For example, packages could exist 668 architecture-specific sub-folders. For example, packages could be
671 for the i586 or qemux86 architectures. 669 available for the i586 or qemux86 architectures.
672 670
673BitBake uses the 671BitBake uses the
674:ref:`do_package_write_* <ref-tasks-package_write_deb>` 672:ref:`do_package_write_* <ref-tasks-package_write_deb>`
@@ -681,8 +679,8 @@ and
681":ref:`ref-tasks-package_write_tar`" 679":ref:`ref-tasks-package_write_tar`"
682sections in the Yocto Project Reference Manual for additional 680sections in the Yocto Project Reference Manual for additional
683information. As an example, consider a scenario where an IPK packaging 681information. As an example, consider a scenario where an IPK packaging
684manager is being used and package architecture support for both i586 and 682manager is being used and there is package architecture support for both
685qemux86 exist. Packages for the i586 architecture are placed in 683i586 and qemux86. Packages for the i586 architecture are placed in
686``build/tmp/deploy/ipk/i586``, while packages for the qemux86 684``build/tmp/deploy/ipk/i586``, while packages for the qemux86
687architecture are placed in ``build/tmp/deploy/ipk/qemux86``. 685architecture are placed in ``build/tmp/deploy/ipk/qemux86``.
688 686
@@ -698,7 +696,7 @@ closer look at each of those areas.
698 696
699.. note:: 697.. note::
700 698
701 Separate documentation exists for the BitBake tool. See the 699 Documentation for the BitBake tool is available separately. See the
702 BitBake User Manual 700 BitBake User Manual
703 for reference material on BitBake. 701 for reference material on BitBake.
704 702
@@ -783,12 +781,10 @@ Build Directory's hierarchy:
783 781
784.. note:: 782.. note::
785 783
786 In the previous figure, notice that two sample hierarchies exist: one 784 In the previous figure, notice that there are two sample hierarchies:
787 based on package architecture (i.e. 785 one based on package architecture (i.e. :term:`PACKAGE_ARCH`)
788 PACKAGE_ARCH 786 and one based on a machine (i.e. :term:`MACHINE`).
789 ) and one based on a machine (i.e. 787 The underlying structures are identical. The differentiator being
790 MACHINE
791 ). The underlying structures are identical. The differentiator being
792 what the OpenEmbedded build system is using as a build target (e.g. 788 what the OpenEmbedded build system is using as a build target (e.g.
793 general architecture, a build host, an SDK, or a specific machine). 789 general architecture, a build host, an SDK, or a specific machine).
794 790
@@ -963,8 +959,7 @@ that part of the build process.
963 959
964.. note:: 960.. note::
965 961
966 Support for creating feeds directly from the 962 Support for creating feeds directly from the ``deploy/*``
967 deploy/\*
968 directories does not exist. Creating such feeds usually requires some 963 directories does not exist. Creating such feeds usually requires some
969 kind of feed maintenance mechanism that would upload the new packages 964 kind of feed maintenance mechanism that would upload the new packages
970 into an official package feed (e.g. the Ångström distribution). This 965 into an official package feed (e.g. the Ångström distribution). This
@@ -1156,9 +1151,9 @@ checksum <overview-manual/concepts:checksums (signatures)>`.
1156 OpenEmbedded. 1151 OpenEmbedded.
1157 1152
1158To determine if a task needs to be rerun, BitBake checks if a stamp file 1153To determine if a task needs to be rerun, BitBake checks if a stamp file
1159with a matching input checksum exists for the task. If such a stamp file 1154with a matching input checksum exists for the task. In this case,
1160exists, the task's output is assumed to exist and still be valid. If the 1155the task's output is assumed to exist and still be valid. Otherwise,
1161file does not exist, the task is rerun. 1156the task is rerun.
1162 1157
1163.. note:: 1158.. note::
1164 1159
@@ -1234,14 +1229,14 @@ to run any of the ``do_fetch``, ``do_unpack``, ``do_patch``,
1234 1229
1235It becomes more complicated if everything can come from an sstate cache 1230It becomes more complicated if everything can come from an sstate cache
1236because some objects are simply not required at all. For example, you do 1231because some objects are simply not required at all. For example, you do
1237not need a compiler or native tools, such as quilt, if nothing exists to 1232not need a compiler or native tools, such as quilt, if there isn't anything
1238compile or patch. If the ``do_package_write_*`` packages are available 1233to compile or patch. If the ``do_package_write_*`` packages are available
1239from sstate, BitBake does not need the ``do_package`` task data. 1234from sstate, BitBake does not need the ``do_package`` task data.
1240 1235
1241To handle all these complexities, BitBake runs in two phases. The first 1236To handle all these complexities, BitBake runs in two phases. The first
1242is the "setscene" stage. During this stage, BitBake first checks the 1237is the "setscene" stage. During this stage, BitBake first checks the
1243sstate cache for any targets it is planning to build. BitBake does a 1238sstate cache for any targets it is planning to build. BitBake does a
1244fast check to see if the object exists rather than a complete download. 1239fast check to see if the object exists rather than doing a complete download.
1245If nothing exists, the second phase, which is the setscene stage, 1240If nothing exists, the second phase, which is the setscene stage,
1246completes and the main build proceeds. 1241completes and the main build proceeds.
1247 1242
@@ -1366,9 +1361,9 @@ can initialize the environment before using the tools.
1366 1361
1367All the output files for an SDK are written to the ``deploy/sdk`` folder 1362All the output files for an SDK are written to the ``deploy/sdk`` folder
1368inside the :term:`Build Directory` as 1363inside the :term:`Build Directory` as
1369shown in the previous figure. Depending on the type of SDK, several 1364shown in the previous figure. Depending on the type of SDK, there are
1370variables exist that help configure these files. The following list 1365several variables to configure these files. Here are the variables
1371shows the variables associated with an extensible SDK: 1366associated with an extensible SDK:
1372 1367
1373- :term:`DEPLOY_DIR`: Points to 1368- :term:`DEPLOY_DIR`: Points to
1374 the ``deploy`` directory. 1369 the ``deploy`` directory.
@@ -1577,8 +1572,8 @@ Shared State Cache
1577By design, the OpenEmbedded build system builds everything from scratch 1572By design, the OpenEmbedded build system builds everything from scratch
1578unless :term:`BitBake` can determine 1573unless :term:`BitBake` can determine
1579that parts do not need to be rebuilt. Fundamentally, building from 1574that parts do not need to be rebuilt. Fundamentally, building from
1580scratch is attractive as it means all parts are built fresh and no 1575scratch is attractive as it means all parts are built fresh and there is
1581possibility of stale data exists that can cause problems. When 1576no possibility of stale data that can cause problems. When
1582developers hit problems, they typically default back to building from 1577developers hit problems, they typically default back to building from
1583scratch so they have a know state from the start. 1578scratch so they have a know state from the start.
1584 1579
@@ -1617,7 +1612,7 @@ them if they are deemed to be valid.
1617 1612
1618 - The build system does not maintain 1613 - The build system does not maintain
1619 :term:`PR` information as part of 1614 :term:`PR` information as part of
1620 the shared state packages. Consequently, considerations exist that 1615 the shared state packages. Consequently, there are considerations that
1621 affect maintaining shared state feeds. For information on how the 1616 affect maintaining shared state feeds. For information on how the
1622 build system works with packages and can track incrementing ``PR`` 1617 build system works with packages and can track incrementing ``PR``
1623 information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`" 1618 information, see the ":ref:`dev-manual/common-tasks:automatically incrementing a package version number`"
@@ -1687,7 +1682,7 @@ used to prune the "run" scripts down to the minimum set, thereby
1687alleviating this problem and making the "run" scripts much more readable 1682alleviating this problem and making the "run" scripts much more readable
1688as a bonus. 1683as a bonus.
1689 1684
1690So far, solutions for shell scripts exist. What about Python tasks? The 1685So far, there are solutions for shell scripts. What about Python tasks? The
1691same approach applies even though these tasks are more difficult. The 1686same approach applies even though these tasks are more difficult. The
1692process needs to figure out what variables a Python function accesses 1687process needs to figure out what variables a Python function accesses
1693and what functions it calls. Again, the incremental build solution 1688and what functions it calls. Again, the incremental build solution
@@ -1695,7 +1690,7 @@ contains code that first figures out the variable and function
1695dependencies, and then creates a checksum for the data used as the input 1690dependencies, and then creates a checksum for the data used as the input
1696to the task. 1691to the task.
1697 1692
1698Like the ``WORKDIR`` case, situations exist where dependencies should be 1693Like the ``WORKDIR`` case, there can be situations where dependencies should be
1699ignored. For these situations, you can instruct the build process to 1694ignored. For these situations, you can instruct the build process to
1700ignore a dependency by using a line like the following:: 1695ignore a dependency by using a line like the following::
1701 1696
@@ -1732,7 +1727,7 @@ to add is a policy decision. However, the effect is to generate a master
1732checksum that combines the basehash and the hashes of the task's 1727checksum that combines the basehash and the hashes of the task's
1733dependencies. 1728dependencies.
1734 1729
1735At the code level, a variety of ways exist by which both the basehash 1730At the code level, there are multiple ways by which both the basehash
1736and the dependent task hashes can be influenced. Within the BitBake 1731and the dependent task hashes can be influenced. Within the BitBake
1737configuration file, you can give BitBake some extra information to help 1732configuration file, you can give BitBake some extra information to help
1738it construct the basehash. The following statement effectively results 1733it construct the basehash. The following statement effectively results
@@ -1961,8 +1956,8 @@ Automatically Added Runtime Dependencies
1961The OpenEmbedded build system automatically adds common types of runtime 1956The OpenEmbedded build system automatically adds common types of runtime
1962dependencies between packages, which means that you do not need to 1957dependencies between packages, which means that you do not need to
1963explicitly declare the packages using 1958explicitly declare the packages using
1964:term:`RDEPENDS`. Three automatic 1959:term:`RDEPENDS`. There are three automatic
1965mechanisms exist (``shlibdeps``, ``pcdeps``, and ``depchains``) that 1960mechanisms (``shlibdeps``, ``pcdeps``, and ``depchains``) that
1966handle shared libraries, package configuration (pkg-config) modules, and 1961handle shared libraries, package configuration (pkg-config) modules, and
1967``-dev`` and ``-dbg`` packages, respectively. For other types of runtime 1962``-dev`` and ``-dbg`` packages, respectively. For other types of runtime
1968dependencies, you must manually declare the dependencies. 1963dependencies, you must manually declare the dependencies.
diff --git a/documentation/overview-manual/development-environment.rst b/documentation/overview-manual/development-environment.rst
index 1decf01e43..ab155dc3b0 100644
--- a/documentation/overview-manual/development-environment.rst
+++ b/documentation/overview-manual/development-environment.rst
@@ -71,7 +71,7 @@ section in
71the Yocto Project Development Tasks Manual. 71the Yocto Project Development Tasks Manual.
72 72
73If your development host is going to be a system that runs a Linux 73If your development host is going to be a system that runs a Linux
74distribution, steps still exist that you must take to prepare the system 74distribution, you must still take steps to prepare the system
75for use with the Yocto Project. You need to be sure that the Linux 75for use with the Yocto Project. You need to be sure that the Linux
76distribution on the system is one that supports the Yocto Project. You 76distribution on the system is one that supports the Yocto Project. You
77also need to be sure that the correct set of host packages are installed 77also need to be sure that the correct set of host packages are installed
@@ -80,8 +80,8 @@ set up a development host that runs Linux, see the
80":ref:`dev-manual/start:setting up a native linux host`" 80":ref:`dev-manual/start:setting up a native linux host`"
81section in the Yocto Project Development Tasks Manual. 81section in the Yocto Project Development Tasks Manual.
82 82
83Once your development host is set up to use the Yocto Project, several 83Once your development host is set up to use the Yocto Project, there
84methods exist for you to do work in the Yocto Project environment: 84are several ways of working in the Yocto Project environment:
85 85
86- *Command Lines, BitBake, and Shells:* Traditional development in the 86- *Command Lines, BitBake, and Shells:* Traditional development in the
87 Yocto Project involves using the :term:`OpenEmbedded Build System`, 87 Yocto Project involves using the :term:`OpenEmbedded Build System`,
@@ -271,7 +271,7 @@ files that are being worked on simultaneously by more than one person.
271All this work is done locally on the development host before anything is 271All this work is done locally on the development host before anything is
272pushed to a "contrib" area and examined at the maintainer's level. 272pushed to a "contrib" area and examined at the maintainer's level.
273 273
274A somewhat formal method exists by which developers commit changes and 274There is a somewhat formal method by which developers commit changes and
275push them into the "contrib" area and subsequently request that the 275push them into the "contrib" area and subsequently request that the
276maintainer include them into an upstream branch. This process is called 276maintainer include them into an upstream branch. This process is called
277"submitting a patch" or "submitting a change." For information on 277"submitting a patch" or "submitting a change." For information on
@@ -279,9 +279,9 @@ submitting patches and changes, see the
279":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 279":ref:`dev-manual/common-tasks:submitting a change to the yocto project`"
280section in the Yocto Project Development Tasks Manual. 280section in the Yocto Project Development Tasks Manual.
281 281
282In summary, a single point of entry exists for changes into a "master" 282In summary, there is a single point of entry for changes into a "master"
283or development branch of the Git repository, which is controlled by the 283or development branch of the Git repository, which is controlled by the
284project's maintainer. And, a set of developers exist who independently 284project's maintainer. A set of developers independently
285develop, test, and submit changes to "contrib" areas for the maintainer 285develop, test, and submit changes to "contrib" areas for the maintainer
286to examine. The maintainer then chooses which changes are going to 286to examine. The maintainer then chooses which changes are going to
287become a permanent part of the project. 287become a permanent part of the project.
diff --git a/documentation/overview-manual/yp-intro.rst b/documentation/overview-manual/yp-intro.rst
index 7a01828c5f..28ed07994a 100644
--- a/documentation/overview-manual/yp-intro.rst
+++ b/documentation/overview-manual/yp-intro.rst
@@ -140,8 +140,7 @@ Here are challenges you might encounter when developing using the Yocto Project:
140 140
141- *Steep Learning Curve:* The Yocto Project has a steep learning curve 141- *Steep Learning Curve:* The Yocto Project has a steep learning curve
142 and has many different ways to accomplish similar tasks. It can be 142 and has many different ways to accomplish similar tasks. It can be
143 difficult to choose how to proceed when varying methods exist by 143 difficult to choose between such ways.
144 which to accomplish a given task.
145 144
146- *Understanding What Changes You Need to Make For Your Design Requires 145- *Understanding What Changes You Need to Make For Your Design Requires
147 Some Research:* Beyond the simple tutorial stage, understanding what 146 Some Research:* Beyond the simple tutorial stage, understanding what
@@ -156,7 +155,7 @@ Here are challenges you might encounter when developing using the Yocto Project:
156 workflow <overview-manual/development-environment:the yocto project development environment>` 155 workflow <overview-manual/development-environment:the yocto project development environment>`
157 could be confusing if you are used to traditional desktop and server 156 could be confusing if you are used to traditional desktop and server
158 software development. 157 software development.
159 In a desktop development environment, mechanisms exist to easily pull 158 In a desktop development environment, there are mechanisms to easily pull
160 and install new packages, which are typically pre-compiled binaries 159 and install new packages, which are typically pre-compiled binaries
161 from servers accessible over the Internet. Using the Yocto Project, 160 from servers accessible over the Internet. Using the Yocto Project,
162 you must modify your configuration and rebuild to add additional 161 you must modify your configuration and rebuild to add additional
@@ -430,8 +429,8 @@ Yocto Project:
430 require system administrator privileges. For example, file ownership 429 require system administrator privileges. For example, file ownership
431 or permissions might need to be defined. Pseudo is a tool that you 430 or permissions might need to be defined. Pseudo is a tool that you
432 can either use directly or through the environment variable 431 can either use directly or through the environment variable
433 ``LD_PRELOAD``. Either method allows these operations to succeed as 432 ``LD_PRELOAD``. Either method allows these operations to succeed
434 if system administrator privileges exist even when they do not. 433 even without system administrator privileges.
435 434
436 Thanks to Pseudo, the Yocto Project never needs root privileges to 435 Thanks to Pseudo, the Yocto Project never needs root privileges to
437 build images for your target system. 436 build images for your target system.
@@ -579,8 +578,7 @@ software.
579This section provides an introduction to the choices or development 578This section provides an introduction to the choices or development
580methods you have when setting up your Build Host. Depending on your 579methods you have when setting up your Build Host. Depending on your
581particular workflow preference and the type of operating system your 580particular workflow preference and the type of operating system your
582Build Host runs, several choices exist that allow you to use the Yocto 581Build Host runs, you have several choices.
583Project.
584 582
585.. note:: 583.. note::
586 584
@@ -790,7 +788,7 @@ Some Basic Terms
790================ 788================
791 789
792It helps to understand some basic fundamental terms when learning the 790It helps to understand some basic fundamental terms when learning the
793Yocto Project. Although a list of terms exists in the ":doc:`Yocto Project 791Yocto Project. Although there is a list of terms in the ":doc:`Yocto Project
794Terms </ref-manual/terms>`" section of the Yocto Project 792Terms </ref-manual/terms>`" section of the Yocto Project
795Reference Manual, this section provides the definitions of some terms 793Reference Manual, this section provides the definitions of some terms
796helpful for getting started: 794helpful for getting started: