summaryrefslogtreecommitdiffstats
path: root/documentation/overview-manual/development-environment.rst
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/overview-manual/development-environment.rst')
-rw-r--r--documentation/overview-manual/development-environment.rst187
1 files changed, 84 insertions, 103 deletions
diff --git a/documentation/overview-manual/development-environment.rst b/documentation/overview-manual/development-environment.rst
index 011a479578..d79173ff55 100644
--- a/documentation/overview-manual/development-environment.rst
+++ b/documentation/overview-manual/development-environment.rst
@@ -39,10 +39,9 @@ Linus Torvalds in 1991. Conversely, a good example of a non-open source
39project is the Windows family of operating systems developed by 39project is the Windows family of operating systems developed by
40Microsoft Corporation. 40Microsoft Corporation.
41 41
42Wikipedia has a good historical description of the Open Source 42Wikipedia has a good :wikipedia:`historical description of the Open Source
43Philosophy `here <https://en.wikipedia.org/wiki/Open_source>`__. You can 43Philosophy <Open_source>`. You can also find helpful information on how
44also find helpful information on how to participate in the Linux 44to participate in the Linux Community
45Community
46`here <https://www.kernel.org/doc/html/latest/process/index.html>`__. 45`here <https://www.kernel.org/doc/html/latest/process/index.html>`__.
47 46
48The Development Host 47The Development Host
@@ -52,7 +51,7 @@ A development host or :term:`Build Host` is key to
52using the Yocto Project. Because the goal of the Yocto Project is to 51using the Yocto Project. Because the goal of the Yocto Project is to
53develop images or applications that run on embedded hardware, 52develop images or applications that run on embedded hardware,
54development of those images and applications generally takes place on a 53development of those images and applications generally takes place on a
55system not intended to run the software - the development host. 54system not intended to run the software --- the development host.
56 55
57You need to set up a development host in order to use it with the Yocto 56You need to set up a development host in order to use it with the Yocto
58Project. Most find that it is best to have a native Linux machine 57Project. Most find that it is best to have a native Linux machine
@@ -71,7 +70,7 @@ section in
71the Yocto Project Development Tasks Manual. 70the Yocto Project Development Tasks Manual.
72 71
73If your development host is going to be a system that runs a Linux 72If 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 73distribution, you must still take steps to prepare the system
75for use with the Yocto Project. You need to be sure that the Linux 74for 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 75distribution 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 76also need to be sure that the correct set of host packages are installed
@@ -80,8 +79,8 @@ set up a development host that runs Linux, see the
80":ref:`dev-manual/start:setting up a native linux host`" 79":ref:`dev-manual/start:setting up a native linux host`"
81section in the Yocto Project Development Tasks Manual. 80section in the Yocto Project Development Tasks Manual.
82 81
83Once your development host is set up to use the Yocto Project, several 82Once your development host is set up to use the Yocto Project, there
84methods exist for you to do work in the Yocto Project environment: 83are several ways of working in the Yocto Project environment:
85 84
86- *Command Lines, BitBake, and Shells:* Traditional development in the 85- *Command Lines, BitBake, and Shells:* Traditional development in the
87 Yocto Project involves using the :term:`OpenEmbedded Build System`, 86 Yocto Project involves using the :term:`OpenEmbedded Build System`,
@@ -94,7 +93,7 @@ methods exist for you to do work in the Yocto Project environment:
94 through your Linux distribution and the Yocto Project. 93 through your Linux distribution and the Yocto Project.
95 94
96 For a general flow of the build procedures, see the 95 For a general flow of the build procedures, see the
97 ":ref:`dev-manual/common-tasks:building a simple image`" 96 ":ref:`dev-manual/building:building a simple image`"
98 section in the Yocto Project Development Tasks Manual. 97 section in the Yocto Project Development Tasks Manual.
99 98
100- *Board Support Package (BSP) Development:* Development of BSPs 99- *Board Support Package (BSP) Development:* Development of BSPs
@@ -132,6 +131,14 @@ methods exist for you to do work in the Yocto Project environment:
132 Toaster and on how to use Toaster in general, see the 131 Toaster and on how to use Toaster in general, see the
133 :doc:`/toaster-manual/index`. 132 :doc:`/toaster-manual/index`.
134 133
134- *Using the VSCode Extension:* You can use the `Yocto Project BitBake
135 <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
136 extension for Visual Studio Code to start your BitBake builds through a
137 graphical user interface.
138
139 Learn more about the VSCode Extension on the `extension's marketplace page
140 <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
141
135Yocto Project Source Repositories 142Yocto Project Source Repositories
136================================= 143=================================
137 144
@@ -157,54 +164,44 @@ these tarballs gives you a snapshot of the released files.
157 164
158 - The recommended method for setting up the Yocto Project 165 - The recommended method for setting up the Yocto Project
159 :term:`Source Directory` and the files 166 :term:`Source Directory` and the files
160 for supported BSPs (e.g., ``meta-intel``) is to use `Git <#git>`__ 167 for supported BSPs (e.g., ``meta-intel``) is to use
168 :ref:`overview-manual/development-environment:git`
161 to create a local copy of the upstream repositories. 169 to create a local copy of the upstream repositories.
162 170
163 - Be sure to always work in matching branches for both the selected 171 - Be sure to always work in matching branches for both the selected
164 BSP repository and the Source Directory (i.e. ``poky``) 172 BSP repository and the Source Directory (i.e. ``poky``)
165 repository. For example, if you have checked out the "master" 173 repository. For example, if you have checked out the "&DISTRO_NAME_NO_CAP;"
166 branch of ``poky`` and you are going to use ``meta-intel``, be 174 branch of ``poky`` and you are going to use ``meta-intel``, be
167 sure to checkout the "master" branch of ``meta-intel``. 175 sure to checkout the "&DISTRO_NAME_NO_CAP;" branch of ``meta-intel``.
168 176
169In summary, here is where you can get the project files needed for 177In summary, here is where you can get the project files needed for
170development: 178development:
171 179
172- :yocto_git:`Source Repositories: <>` This area contains IDE 180- :yocto_git:`Source Repositories: <>` This area contains Poky, Yocto
173 Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and 181 documentation, metadata layers, and Linux kernel. You can create local
174 Yocto Metadata Layers. You can create local copies of Git 182 copies of Git repositories for each of these areas.
175 repositories for each of these areas.
176 183
177 .. image:: figures/source-repos.png 184 .. image:: figures/source-repos.png
178 :align: center 185 :width: 100%
179 186
180 For steps on how to view and access these upstream Git repositories, 187 For steps on how to view and access these upstream Git repositories,
181 see the ":ref:`dev-manual/start:accessing source repositories`" 188 see the ":ref:`dev-manual/start:accessing source repositories`"
182 Section in the Yocto Project Development Tasks Manual. 189 Section in the Yocto Project Development Tasks Manual.
183 190
184- :yocto_dl:`Index of /releases: </releases>` This is an index 191- :yocto_dl:`Yocto release archives: </releases/yocto>` This is where you can
185 of releases such as Poky, Pseudo, installers for cross-development 192 download tarballs corresponding to each Yocto Project release. Downloading
186 toolchains, miscellaneous support and all released versions of Yocto 193 and extracting these files does not produce a local copy of a Git repository
187 Project in the form of images or tarballs. Downloading and extracting 194 but rather a snapshot corresponding to a particular release.
188 these files does not produce a local copy of the Git repository but
189 rather a snapshot of a particular release or image.
190
191 .. image:: figures/index-downloads.png
192 :align: center
193
194 For steps on how to view and access these files, see the
195 ":ref:`dev-manual/start:accessing index of releases`"
196 section in the Yocto Project Development Tasks Manual.
197
198- *"DOWNLOADS" page for the* :yocto_home:`Yocto Project Website <>` *:*
199 195
200 The Yocto Project website includes a "DOWNLOADS" page accessible 196- :yocto_home:`DOWNLOADS page </software-overview/downloads/>`:
197 The :yocto_home:`Yocto Project website <>` includes a "DOWNLOADS" page accessible
201 through the "SOFTWARE" menu that allows you to download any Yocto 198 through the "SOFTWARE" menu that allows you to download any Yocto
202 Project release, tool, and Board Support Package (BSP) in tarball 199 Project release, tool, and Board Support Package (BSP) in tarball
203 form. The tarballs are similar to those found in the 200 form. The hyperlinks point to the tarballs under
204 :yocto_dl:`Index of /releases: </releases>` area. 201 :yocto_dl:`/releases/yocto/`.
205 202
206 .. image:: figures/yp-download.png 203 .. image:: figures/yp-download.png
207 :align: center 204 :width: 100%
208 205
209 For steps on how to use the "DOWNLOADS" page, see the 206 For steps on how to use the "DOWNLOADS" page, see the
210 ":ref:`dev-manual/start:using the downloads page`" 207 ":ref:`dev-manual/start:using the downloads page`"
@@ -214,7 +211,8 @@ Git Workflows and the Yocto Project
214=================================== 211===================================
215 212
216Developing using the Yocto Project likely requires the use of 213Developing using the Yocto Project likely requires the use of
217`Git <#git>`__. Git is a free, open source distributed version control 214:ref:`overview-manual/development-environment:git`.
215Git is a free, open source distributed version control
218system used as part of many collaborative design environments. This 216system used as part of many collaborative design environments. This
219section provides workflow concepts using the Yocto Project and Git. In 217section provides workflow concepts using the Yocto Project and Git. In
220particular, the information covers basic practices that describe roles 218particular, the information covers basic practices that describe roles
@@ -231,8 +229,8 @@ all diverging functionality. Although there is no need to use Git, many
231open source projects do so. 229open source projects do so.
232 230
233For the Yocto Project, a key individual called the "maintainer" is 231For the Yocto Project, a key individual called the "maintainer" is
234responsible for the integrity of the "master" branch of a given Git 232responsible for the integrity of the development branch of a given Git
235repository. The "master" branch is the "upstream" repository from which 233repository. The development branch is the "upstream" repository from which
236final or most recent builds of a project occur. The maintainer is 234final or most recent builds of a project occur. The maintainer is
237responsible for accepting changes from other developers and for 235responsible for accepting changes from other developers and for
238organizing the underlying branch structure to reflect release strategies 236organizing the underlying branch structure to reflect release strategies
@@ -242,8 +240,8 @@ and so forth.
242 240
243 For information on finding out who is responsible for (maintains) a 241 For information on finding out who is responsible for (maintains) a
244 particular area of code in the Yocto Project, see the 242 particular area of code in the Yocto Project, see the
245 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 243 ":doc:`../contributor-guide/identify-component`"
246 section of the Yocto Project Development Tasks Manual. 244 section of the Yocto Project and OpenEmbedded Contributor Guide.
247 245
248The Yocto Project ``poky`` Git repository also has an upstream 246The Yocto Project ``poky`` Git repository also has an upstream
249contribution Git repository named ``poky-contrib``. You can see all the 247contribution Git repository named ``poky-contrib``. You can see all the
@@ -269,23 +267,23 @@ files that are being worked on simultaneously by more than one person.
269All this work is done locally on the development host before anything is 267All this work is done locally on the development host before anything is
270pushed to a "contrib" area and examined at the maintainer's level. 268pushed to a "contrib" area and examined at the maintainer's level.
271 269
272A somewhat formal method exists by which developers commit changes and 270There is a somewhat formal method by which developers commit changes and
273push them into the "contrib" area and subsequently request that the 271push them into the "contrib" area and subsequently request that the
274maintainer include them into an upstream branch. This process is called 272maintainer include them into an upstream branch. This process is called
275"submitting a patch" or "submitting a change." For information on 273"submitting a patch" or "submitting a change." For information on
276submitting patches and changes, see the 274submitting patches and changes, see the
277":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 275":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
278section in the Yocto Project Development Tasks Manual. 276and OpenEmbedded Contributor Guide.
279 277
280In summary, a single point of entry exists for changes into a "master" 278In summary, there is a single point of entry for changes into the
281or development branch of the Git repository, which is controlled by the 279development branch of the Git repository, which is controlled by the
282project's maintainer. And, a set of developers exist who independently 280project's maintainer. A set of developers independently
283develop, test, and submit changes to "contrib" areas for the maintainer 281develop, test, and submit changes to "contrib" areas for the maintainer
284to examine. The maintainer then chooses which changes are going to 282to examine. The maintainer then chooses which changes are going to
285become a permanent part of the project. 283become a permanent part of the project.
286 284
287.. image:: figures/git-workflow.png 285.. image:: svg/git-workflow.*
288 :align: center 286 :width: 100%
289 287
290While each development environment is unique, there are some best 288While each development environment is unique, there are some best
291practices or methods that help development run smoothly. The following 289practices or methods that help development run smoothly. The following
@@ -309,7 +307,7 @@ Book <https://book.git-scm.com>`__.
309 host. You can name these branches anything you like. It is helpful to 307 host. You can name these branches anything you like. It is helpful to
310 give them names associated with the particular feature or change on 308 give them names associated with the particular feature or change on
311 which you are working. Once you are done with a feature or change and 309 which you are working. Once you are done with a feature or change and
312 have merged it into your local master branch, simply discard the 310 have merged it into your local development branch, simply discard the
313 temporary branch. 311 temporary branch.
314 312
315- *Merge Changes:* The ``git merge`` command allows you to take the 313- *Merge Changes:* The ``git merge`` command allows you to take the
@@ -338,20 +336,19 @@ Book <https://book.git-scm.com>`__.
338 software on which to develop. The Yocto Project has two scripts named 336 software on which to develop. The Yocto Project has two scripts named
339 ``create-pull-request`` and ``send-pull-request`` that ship with the 337 ``create-pull-request`` and ``send-pull-request`` that ship with the
340 release to facilitate this workflow. You can find these scripts in 338 release to facilitate this workflow. You can find these scripts in
341 the ``scripts`` folder of the 339 the ``scripts`` folder of the :term:`Source Directory`. For information
342 :term:`Source Directory`. For information
343 on how to use these scripts, see the 340 on how to use these scripts, see the
344 ":ref:`dev-manual/common-tasks:using scripts to push a change upstream and request a pull`" 341 ":ref:`contributor-guide/submit-changes:using scripts to push a change upstream and request a pull`"
345 section in the Yocto Project Development Tasks Manual. 342 section in the Yocto Project and OpenEmbedded Contributor Guide.
346 343
347- *Patch Workflow:* This workflow allows you to notify the maintainer 344- *Patch Workflow:* This workflow allows you to notify the maintainer
348 through an email that you have a change (or patch) you would like 345 through an email that you have a change (or patch) you would like
349 considered for the "master" branch of the Git repository. To send 346 considered for the development branch of the Git repository. To send
350 this type of change, you format the patch and then send the email 347 this type of change, you format the patch and then send the email
351 using the Git commands ``git format-patch`` and ``git send-email``. 348 using the Git commands ``git format-patch`` and ``git send-email``.
352 For information on how to use these scripts, see the 349 For information on how to use these scripts, see the
353 ":ref:`dev-manual/common-tasks:submitting a change to the yocto project`" 350 ":doc:`../contributor-guide/submit-changes`" section in the Yocto Project
354 section in the Yocto Project Development Tasks Manual. 351 and OpenEmbedded Contributor Guide.
355 352
356Git 353Git
357=== 354===
@@ -382,11 +379,10 @@ commands.
382Repositories, Tags, and Branches 379Repositories, Tags, and Branches
383-------------------------------- 380--------------------------------
384 381
385As mentioned briefly in the previous section and also in the "`Git 382As mentioned briefly in the previous section and also in the
386Workflows and the Yocto 383":ref:`overview-manual/development-environment:git workflows and the yocto project`"
387Project <#gs-git-workflows-and-the-yocto-project>`__" section, the Yocto 384section, the Yocto Project maintains source repositories at :yocto_git:`/`.
388Project maintains source repositories at :yocto_git:`/`. If you 385If you look at this web-interface of the repositories, each item is a separate
389look at this web-interface of the repositories, each item is a separate
390Git repository. 386Git repository.
391 387
392Git repositories use branching techniques that track content change (not 388Git repositories use branching techniques that track content change (not
@@ -426,24 +422,18 @@ other branches represent offshoots of the "master" branch.
426When you create a local copy of a Git repository, the copy has the same 422When you create a local copy of a Git repository, the copy has the same
427set of branches as the original. This means you can use Git to create a 423set of branches as the original. This means you can use Git to create a
428local working area (also called a branch) that tracks a specific 424local working area (also called a branch) that tracks a specific
429development branch from the upstream source Git repository. in other 425development branch from the upstream source Git repository. In other
430words, you can define your local Git environment to work on any 426words, you can define your local Git environment to work on any
431development branch in the repository. To help illustrate, consider the 427development branch in the repository. To help illustrate, consider the
432following example Git commands: 428following example Git commands::
433::
434 429
435 $ cd ~ 430 $ cd ~
436 $ git clone git://git.yoctoproject.org/poky 431 $ git clone git://git.yoctoproject.org/poky -b &DISTRO_NAME_NO_CAP;
437 $ cd poky
438 $ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
439 432
440In the previous example 433In the previous example
441after moving to the home directory, the ``git clone`` command creates a 434after moving to the home directory, the ``git clone`` command creates a
442local copy of the upstream ``poky`` Git repository. By default, Git 435local copy of the upstream ``poky`` Git repository and checks out a
443checks out the "master" branch for your work. After changing the working 436local branch named "&DISTRO_NAME_NO_CAP;", which tracks the upstream
444directory to the new local repository (i.e. ``poky``), the
445``git checkout`` command creates and checks out a local branch named
446"&DISTRO_NAME_NO_CAP;", which tracks the upstream
447"origin/&DISTRO_NAME_NO_CAP;" branch. Changes you make while in this 437"origin/&DISTRO_NAME_NO_CAP;" branch. Changes you make while in this
448branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch 438branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch
449of the ``poky`` repository. 439of the ``poky`` repository.
@@ -466,7 +456,7 @@ and clicking on the ``[...]`` link beneath the "Tag" heading.
466 456
467Some key tags for the ``poky`` repository are ``jethro-14.0.3``, 457Some key tags for the ``poky`` repository are ``jethro-14.0.3``,
468``morty-16.0.1``, ``pyro-17.0.0``, and 458``morty-16.0.1``, ``pyro-17.0.0``, and
469``&DISTRO_NAME_NO_CAP;-&POKYVERSION;``. These tags represent Yocto Project 459``&DISTRO_NAME_NO_CAP;-&DISTRO;``. These tags represent Yocto Project
470releases. 460releases.
471 461
472When you create a local copy of the Git repository, you also have access 462When you create a local copy of the Git repository, you also have access
@@ -475,8 +465,7 @@ create and checkout a local working Git branch based on a tag name. When
475you do this, you get a snapshot of the Git repository that reflects the 465you do this, you get a snapshot of the Git repository that reflects the
476state of the files when the change was made associated with that tag. 466state of the files when the change was made associated with that tag.
477The most common use is to checkout a working branch that matches a 467The most common use is to checkout a working branch that matches a
478specific Yocto Project release. Here is an example: 468specific Yocto Project release. Here is an example::
479::
480 469
481 $ cd ~ 470 $ cd ~
482 $ git clone git://git.yoctoproject.org/poky 471 $ git clone git://git.yoctoproject.org/poky
@@ -541,7 +530,7 @@ descriptions and strategies on how to use these commands:
541 in this form assumes the local branch already exists. This command is 530 in this form assumes the local branch already exists. This command is
542 analogous to "cd". 531 analogous to "cd".
543 532
544- *git checkout b working-branch upstream-branch:* Creates and 533- *git checkout -b working-branch upstream-branch:* Creates and
545 checks out a working branch on your local machine. The local branch 534 checks out a working branch on your local machine. The local branch
546 tracks the upstream branch. You can use your local branch to isolate 535 tracks the upstream branch. You can use your local branch to isolate
547 your work. It is a good idea to use local branches when adding 536 your work. It is a good idea to use local branches when adding
@@ -556,12 +545,12 @@ descriptions and strategies on how to use these commands:
556 You need to be in a local branch other than the one you are deleting 545 You need to be in a local branch other than the one you are deleting
557 in order to delete branch-name. 546 in order to delete branch-name.
558 547
559- *git pull --rebase:* Retrieves information from an upstream Git 548- *git pull \-\-rebase*: Retrieves information from an upstream Git
560 repository and places it in your local Git repository. You use this 549 repository and places it in your local Git repository. You use this
561 command to make sure you are synchronized with the repository from 550 command to make sure you are synchronized with the repository from
562 which you are basing changes (.e.g. the "master" branch). The 551 which you are basing changes (e.g. the "&DISTRO_NAME_NO_CAP;"
563 "--rebase" option ensures that any local commits you have in your 552 branch). The ``--rebase`` option ensures that any local commits you
564 branch are preserved at the top of your local branch. 553 have in your branch are preserved at the top of your local branch.
565 554
566- *git push repo-name local-branch:upstream-branch:* Sends 555- *git push repo-name local-branch:upstream-branch:* Sends
567 all your committed local changes to the upstream Git repository that 556 all your committed local changes to the upstream Git repository that
@@ -572,13 +561,13 @@ descriptions and strategies on how to use these commands:
572 561
573- *git merge:* Combines or adds changes from one local branch of 562- *git merge:* Combines or adds changes from one local branch of
574 your repository with another branch. When you create a local Git 563 your repository with another branch. When you create a local Git
575 repository, the default branch is named "master". A typical workflow 564 repository, the default branch may be named "main". A typical
576 is to create a temporary branch that is based off "master" that you 565 workflow is to create a temporary branch that is based off "main"
577 would use for isolated work. You would make your changes in that 566 that you would use for isolated work. You would make your changes in
578 isolated branch, stage and commit them locally, switch to the 567 that isolated branch, stage and commit them locally, switch to the
579 "master" branch, and then use the ``git merge`` command to apply the 568 "main" branch, and then use the ``git merge`` command to apply the
580 changes from your isolated branch into the currently checked out 569 changes from your isolated branch into the currently checked out
581 branch (e.g. "master"). After the merge is complete and if you are 570 branch (e.g. "main"). After the merge is complete and if you are
582 done with working in that isolated branch, you can safely delete the 571 done with working in that isolated branch, you can safely delete the
583 isolated branch. 572 isolated branch.
584 573
@@ -613,30 +602,22 @@ licensing structures in place. License evolution for both Open Source
613and Free Software has an interesting history. If you are interested in 602and Free Software has an interesting history. If you are interested in
614this history, you can find basic information here: 603this history, you can find basic information here:
615 604
616- `Open source license 605- :wikipedia:`Open source license history <Open-source_license>`
617 history <https://en.wikipedia.org/wiki/Open-source_license>`__
618 606
619- `Free software license 607- :wikipedia:`Free software license history <Free_software_license>`
620 history <https://en.wikipedia.org/wiki/Free_software_license>`__
621 608
622In general, the Yocto Project is broadly licensed under the 609In general, the Yocto Project is broadly licensed under the
623Massachusetts Institute of Technology (MIT) License. MIT licensing 610Massachusetts Institute of Technology (MIT) License. MIT licensing
624permits the reuse of software within proprietary software as long as the 611permits the reuse of software within proprietary software as long as the
625license is distributed with that software. MIT is also compatible with 612license is distributed with that software. Patches to the Yocto Project
626the GNU General Public License (GPL). Patches to the Yocto Project
627follow the upstream licensing scheme. You can find information on the 613follow the upstream licensing scheme. You can find information on the
628MIT license 614MIT license :wikipedia:`here <MIT_License>`.
629`here <https://www.opensource.org/licenses/mit-license.php>`__. You can
630find information on the GNU GPL
631`here <https://www.opensource.org/licenses/LGPL-3.0>`__.
632 615
633When you build an image using the Yocto Project, the build process uses 616When you build an image using the Yocto Project, the build process uses
634a known list of licenses to ensure compliance. You can find this list in 617a known list of licenses to ensure compliance. You can find this list in
635the :term:`Source Directory` at 618the :term:`Source Directory` at ``meta/files/common-licenses``. Once the
636``meta/files/common-licenses``. Once the build completes, the list of 619build completes, the list of all licenses found and used during that build
637all licenses found and used during that build are kept in the 620are kept in the :term:`Build Directory` at ``tmp/deploy/licenses``.
638:term:`Build Directory` at
639``tmp/deploy/licenses``.
640 621
641If a module requires a license that is not in the base list, the build 622If a module requires a license that is not in the base list, the build
642process generates a warning during the build. These tools make it easier 623process generates a warning during the build. These tools make it easier
@@ -661,5 +642,5 @@ Project uses in the ``meta/files/common-licenses`` directory in your
661For information that can help you maintain compliance with various open 642For information that can help you maintain compliance with various open
662source licensing during the lifecycle of a product created using the 643source licensing during the lifecycle of a product created using the
663Yocto Project, see the 644Yocto Project, see the
664":ref:`dev-manual/common-tasks:maintaining open source license compliance during your product's lifecycle`" 645":ref:`dev-manual/licenses:maintaining open source license compliance during your product's lifecycle`"
665section in the Yocto Project Development Tasks Manual. 646section in the Yocto Project Development Tasks Manual.