diff options
Diffstat (limited to 'documentation/overview-manual/development-environment.rst')
-rw-r--r-- | documentation/overview-manual/development-environment.rst | 187 |
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 | |||
39 | project is the Windows family of operating systems developed by | 39 | project is the Windows family of operating systems developed by |
40 | Microsoft Corporation. | 40 | Microsoft Corporation. |
41 | 41 | ||
42 | Wikipedia has a good historical description of the Open Source | 42 | Wikipedia has a good :wikipedia:`historical description of the Open Source |
43 | Philosophy `here <https://en.wikipedia.org/wiki/Open_source>`__. You can | 43 | Philosophy <Open_source>`. You can also find helpful information on how |
44 | also find helpful information on how to participate in the Linux | 44 | to participate in the Linux Community |
45 | Community | ||
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 | ||
48 | The Development Host | 47 | The Development Host |
@@ -52,7 +51,7 @@ A development host or :term:`Build Host` is key to | |||
52 | using the Yocto Project. Because the goal of the Yocto Project is to | 51 | using the Yocto Project. Because the goal of the Yocto Project is to |
53 | develop images or applications that run on embedded hardware, | 52 | develop images or applications that run on embedded hardware, |
54 | development of those images and applications generally takes place on a | 53 | development of those images and applications generally takes place on a |
55 | system not intended to run the software - the development host. | 54 | system not intended to run the software --- the development host. |
56 | 55 | ||
57 | You need to set up a development host in order to use it with the Yocto | 56 | You need to set up a development host in order to use it with the Yocto |
58 | Project. Most find that it is best to have a native Linux machine | 57 | Project. Most find that it is best to have a native Linux machine |
@@ -71,7 +70,7 @@ section in | |||
71 | the Yocto Project Development Tasks Manual. | 70 | the Yocto Project Development Tasks Manual. |
72 | 71 | ||
73 | If your development host is going to be a system that runs a Linux | 72 | If your development host is going to be a system that runs a Linux |
74 | distribution, steps still exist that you must take to prepare the system | 73 | distribution, you must still take steps to prepare the system |
75 | for use with the Yocto Project. You need to be sure that the Linux | 74 | for use with the Yocto Project. You need to be sure that the Linux |
76 | distribution on the system is one that supports the Yocto Project. You | 75 | distribution on the system is one that supports the Yocto Project. You |
77 | also need to be sure that the correct set of host packages are installed | 76 | also 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`" |
81 | section in the Yocto Project Development Tasks Manual. | 80 | section in the Yocto Project Development Tasks Manual. |
82 | 81 | ||
83 | Once your development host is set up to use the Yocto Project, several | 82 | Once your development host is set up to use the Yocto Project, there |
84 | methods exist for you to do work in the Yocto Project environment: | 83 | are 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 | |||
135 | Yocto Project Source Repositories | 142 | Yocto 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 | ||
169 | In summary, here is where you can get the project files needed for | 177 | In summary, here is where you can get the project files needed for |
170 | development: | 178 | development: |
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 | ||
216 | Developing using the Yocto Project likely requires the use of | 213 | Developing 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`. |
215 | Git is a free, open source distributed version control | ||
218 | system used as part of many collaborative design environments. This | 216 | system used as part of many collaborative design environments. This |
219 | section provides workflow concepts using the Yocto Project and Git. In | 217 | section provides workflow concepts using the Yocto Project and Git. In |
220 | particular, the information covers basic practices that describe roles | 218 | particular, the information covers basic practices that describe roles |
@@ -231,8 +229,8 @@ all diverging functionality. Although there is no need to use Git, many | |||
231 | open source projects do so. | 229 | open source projects do so. |
232 | 230 | ||
233 | For the Yocto Project, a key individual called the "maintainer" is | 231 | For the Yocto Project, a key individual called the "maintainer" is |
234 | responsible for the integrity of the "master" branch of a given Git | 232 | responsible for the integrity of the development branch of a given Git |
235 | repository. The "master" branch is the "upstream" repository from which | 233 | repository. The development branch is the "upstream" repository from which |
236 | final or most recent builds of a project occur. The maintainer is | 234 | final or most recent builds of a project occur. The maintainer is |
237 | responsible for accepting changes from other developers and for | 235 | responsible for accepting changes from other developers and for |
238 | organizing the underlying branch structure to reflect release strategies | 236 | organizing 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 | ||
248 | The Yocto Project ``poky`` Git repository also has an upstream | 246 | The Yocto Project ``poky`` Git repository also has an upstream |
249 | contribution Git repository named ``poky-contrib``. You can see all the | 247 | contribution 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. | |||
269 | All this work is done locally on the development host before anything is | 267 | All this work is done locally on the development host before anything is |
270 | pushed to a "contrib" area and examined at the maintainer's level. | 268 | pushed to a "contrib" area and examined at the maintainer's level. |
271 | 269 | ||
272 | A somewhat formal method exists by which developers commit changes and | 270 | There is a somewhat formal method by which developers commit changes and |
273 | push them into the "contrib" area and subsequently request that the | 271 | push them into the "contrib" area and subsequently request that the |
274 | maintainer include them into an upstream branch. This process is called | 272 | maintainer 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 |
276 | submitting patches and changes, see the | 274 | submitting 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 |
278 | section in the Yocto Project Development Tasks Manual. | 276 | and OpenEmbedded Contributor Guide. |
279 | 277 | ||
280 | In summary, a single point of entry exists for changes into a "master" | 278 | In summary, there is a single point of entry for changes into the |
281 | or development branch of the Git repository, which is controlled by the | 279 | development branch of the Git repository, which is controlled by the |
282 | project's maintainer. And, a set of developers exist who independently | 280 | project's maintainer. A set of developers independently |
283 | develop, test, and submit changes to "contrib" areas for the maintainer | 281 | develop, test, and submit changes to "contrib" areas for the maintainer |
284 | to examine. The maintainer then chooses which changes are going to | 282 | to examine. The maintainer then chooses which changes are going to |
285 | become a permanent part of the project. | 283 | become 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 | ||
290 | While each development environment is unique, there are some best | 288 | While each development environment is unique, there are some best |
291 | practices or methods that help development run smoothly. The following | 289 | practices 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 | ||
356 | Git | 353 | Git |
357 | === | 354 | === |
@@ -382,11 +379,10 @@ commands. | |||
382 | Repositories, Tags, and Branches | 379 | Repositories, Tags, and Branches |
383 | -------------------------------- | 380 | -------------------------------- |
384 | 381 | ||
385 | As mentioned briefly in the previous section and also in the "`Git | 382 | As mentioned briefly in the previous section and also in the |
386 | Workflows and the Yocto | 383 | ":ref:`overview-manual/development-environment:git workflows and the yocto project`" |
387 | Project <#gs-git-workflows-and-the-yocto-project>`__" section, the Yocto | 384 | section, the Yocto Project maintains source repositories at :yocto_git:`/`. |
388 | Project maintains source repositories at :yocto_git:`/`. If you | 385 | If you look at this web-interface of the repositories, each item is a separate |
389 | look at this web-interface of the repositories, each item is a separate | ||
390 | Git repository. | 386 | Git repository. |
391 | 387 | ||
392 | Git repositories use branching techniques that track content change (not | 388 | Git repositories use branching techniques that track content change (not |
@@ -426,24 +422,18 @@ other branches represent offshoots of the "master" branch. | |||
426 | When you create a local copy of a Git repository, the copy has the same | 422 | When you create a local copy of a Git repository, the copy has the same |
427 | set of branches as the original. This means you can use Git to create a | 423 | set of branches as the original. This means you can use Git to create a |
428 | local working area (also called a branch) that tracks a specific | 424 | local working area (also called a branch) that tracks a specific |
429 | development branch from the upstream source Git repository. in other | 425 | development branch from the upstream source Git repository. In other |
430 | words, you can define your local Git environment to work on any | 426 | words, you can define your local Git environment to work on any |
431 | development branch in the repository. To help illustrate, consider the | 427 | development branch in the repository. To help illustrate, consider the |
432 | following example Git commands: | 428 | following 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 | ||
440 | In the previous example | 433 | In the previous example |
441 | after moving to the home directory, the ``git clone`` command creates a | 434 | after moving to the home directory, the ``git clone`` command creates a |
442 | local copy of the upstream ``poky`` Git repository. By default, Git | 435 | local copy of the upstream ``poky`` Git repository and checks out a |
443 | checks out the "master" branch for your work. After changing the working | 436 | local branch named "&DISTRO_NAME_NO_CAP;", which tracks the upstream |
444 | directory 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 |
448 | branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch | 438 | branch would ultimately affect the upstream "&DISTRO_NAME_NO_CAP;" branch |
449 | of the ``poky`` repository. | 439 | of the ``poky`` repository. |
@@ -466,7 +456,7 @@ and clicking on the ``[...]`` link beneath the "Tag" heading. | |||
466 | 456 | ||
467 | Some key tags for the ``poky`` repository are ``jethro-14.0.3``, | 457 | Some 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 |
470 | releases. | 460 | releases. |
471 | 461 | ||
472 | When you create a local copy of the Git repository, you also have access | 462 | When 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 | |||
475 | you do this, you get a snapshot of the Git repository that reflects the | 465 | you do this, you get a snapshot of the Git repository that reflects the |
476 | state of the files when the change was made associated with that tag. | 466 | state of the files when the change was made associated with that tag. |
477 | The most common use is to checkout a working branch that matches a | 467 | The most common use is to checkout a working branch that matches a |
478 | specific Yocto Project release. Here is an example: | 468 | specific 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 | |||
613 | and Free Software has an interesting history. If you are interested in | 602 | and Free Software has an interesting history. If you are interested in |
614 | this history, you can find basic information here: | 603 | this 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 | ||
622 | In general, the Yocto Project is broadly licensed under the | 609 | In general, the Yocto Project is broadly licensed under the |
623 | Massachusetts Institute of Technology (MIT) License. MIT licensing | 610 | Massachusetts Institute of Technology (MIT) License. MIT licensing |
624 | permits the reuse of software within proprietary software as long as the | 611 | permits the reuse of software within proprietary software as long as the |
625 | license is distributed with that software. MIT is also compatible with | 612 | license is distributed with that software. Patches to the Yocto Project |
626 | the GNU General Public License (GPL). Patches to the Yocto Project | ||
627 | follow the upstream licensing scheme. You can find information on the | 613 | follow the upstream licensing scheme. You can find information on the |
628 | MIT license | 614 | MIT license :wikipedia:`here <MIT_License>`. |
629 | `here <https://www.opensource.org/licenses/mit-license.php>`__. You can | ||
630 | find information on the GNU GPL | ||
631 | `here <https://www.opensource.org/licenses/LGPL-3.0>`__. | ||
632 | 615 | ||
633 | When you build an image using the Yocto Project, the build process uses | 616 | When you build an image using the Yocto Project, the build process uses |
634 | a known list of licenses to ensure compliance. You can find this list in | 617 | a known list of licenses to ensure compliance. You can find this list in |
635 | the :term:`Source Directory` at | 618 | the :term:`Source Directory` at ``meta/files/common-licenses``. Once the |
636 | ``meta/files/common-licenses``. Once the build completes, the list of | 619 | build completes, the list of all licenses found and used during that build |
637 | all licenses found and used during that build are kept in the | 620 | are kept in the :term:`Build Directory` at ``tmp/deploy/licenses``. |
638 | :term:`Build Directory` at | ||
639 | ``tmp/deploy/licenses``. | ||
640 | 621 | ||
641 | If a module requires a license that is not in the base list, the build | 622 | If a module requires a license that is not in the base list, the build |
642 | process generates a warning during the build. These tools make it easier | 623 | process 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 | |||
661 | For information that can help you maintain compliance with various open | 642 | For information that can help you maintain compliance with various open |
662 | source licensing during the lifecycle of a product created using the | 643 | source licensing during the lifecycle of a product created using the |
663 | Yocto Project, see the | 644 | Yocto 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`" |
665 | section in the Yocto Project Development Tasks Manual. | 646 | section in the Yocto Project Development Tasks Manual. |