diff options
author | Scott Rifenbark <scott.m.rifenbark@intel.com> | 2011-08-11 13:55:07 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-08-15 15:27:04 +0100 |
commit | a7e4747f499d4219c29277e80e64e4fdf604628a (patch) | |
tree | d5406ee02b946a226d64ef0314c2745b44c46383 /documentation | |
parent | 8c45abc747add07ebbf9b8dc8e71c98431d7ec25 (diff) | |
download | poky-a7e4747f499d4219c29277e80e64e4fdf604628a.tar.gz |
documentation/dev-manual: Scott Garman's review comments.
Made several editing corrections for various terms and phrasings based on
Scott Garman's review.
(From yocto-docs rev: a21ba80151ce82683d45cd67ddb0728d779b007a)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation')
-rw-r--r-- | documentation/dev-manual/dev-manual-intro.xml | 11 | ||||
-rw-r--r-- | documentation/dev-manual/dev-manual-newbie.xml | 66 | ||||
-rw-r--r-- | documentation/dev-manual/dev-manual-start.xml | 14 |
3 files changed, 49 insertions, 42 deletions
diff --git a/documentation/dev-manual/dev-manual-intro.xml b/documentation/dev-manual/dev-manual-intro.xml index 5189df5e5b..eb57a9d8db 100644 --- a/documentation/dev-manual/dev-manual-intro.xml +++ b/documentation/dev-manual/dev-manual-intro.xml | |||
@@ -24,7 +24,7 @@ | |||
24 | 24 | ||
25 | <para> | 25 | <para> |
26 | Welcome to the Yocto Project Development Guide! | 26 | Welcome to the Yocto Project Development Guide! |
27 | This guide provides an over-arching view of the development process within the Yocto Project. | 27 | This guide provides a general view of the development process using the Yocto Project. |
28 | This guide is just that – a guide. | 28 | This guide is just that – a guide. |
29 | It helps you understand the bigger picture involving development using the Yocto Project. | 29 | It helps you understand the bigger picture involving development using the Yocto Project. |
30 | </para> | 30 | </para> |
@@ -36,7 +36,7 @@ | |||
36 | <para> | 36 | <para> |
37 | The following list describes what you can get from this guide: | 37 | The following list describes what you can get from this guide: |
38 | <itemizedlist> | 38 | <itemizedlist> |
39 | <listitem><para>A general idea of and references to information that lets you get set | 39 | <listitem><para>Information that lets you get set |
40 | up to develop using the Yocto Project.</para></listitem> | 40 | up to develop using the Yocto Project.</para></listitem> |
41 | <listitem><para>Information to help developers that are new to the open source environment | 41 | <listitem><para>Information to help developers that are new to the open source environment |
42 | and to the distributed revision control system Git, which the Yocto Project | 42 | and to the distributed revision control system Git, which the Yocto Project |
@@ -53,6 +53,7 @@ | |||
53 | concepts.</para></listitem> | 53 | concepts.</para></listitem> |
54 | <listitem><para>Information that will help you migrate an existing project to the | 54 | <listitem><para>Information that will help you migrate an existing project to the |
55 | Yocto Project development environment.</para></listitem> | 55 | Yocto Project development environment.</para></listitem> |
56 | <listitem><para>Many references to other sources of related information.</para></listitem> | ||
56 | </itemizedlist> | 57 | </itemizedlist> |
57 | </para> | 58 | </para> |
58 | </section> | 59 | </section> |
@@ -63,7 +64,7 @@ | |||
63 | <para> | 64 | <para> |
64 | This manual will not give you the following: | 65 | This manual will not give you the following: |
65 | <itemizedlist> | 66 | <itemizedlist> |
66 | <listitem><para>Step-by-step instructions when these instructions exist in other Yocto | 67 | <listitem><para>Step-by-step instructions if those instructions exist in other Yocto |
67 | Project documentation. | 68 | Project documentation. |
68 | For example, The Application Development Toolkit (ADT) User’s Guide contains detailed | 69 | For example, The Application Development Toolkit (ADT) User’s Guide contains detailed |
69 | instruction on how to obtain and configure the Eclipse Yocto Plug-in.</para></listitem> | 70 | instruction on how to obtain and configure the Eclipse Yocto Plug-in.</para></listitem> |
@@ -71,8 +72,8 @@ | |||
71 | This type of material resides in an appropriate reference manual. | 72 | This type of material resides in an appropriate reference manual. |
72 | For example, system variables are documented in the Poky Reference Manual.</para></listitem> | 73 | For example, system variables are documented in the Poky Reference Manual.</para></listitem> |
73 | <listitem><para>Detailed public information that is not specific to the Yocto Project. | 74 | <listitem><para>Detailed public information that is not specific to the Yocto Project. |
74 | For example, exhaustive information on how to use Git is better covered in the public | 75 | For example, exhaustive information on how to use Git is covered better through the |
75 | domain than in this manual.</para></listitem> | 76 | Internet than in this manual.</para></listitem> |
76 | </itemizedlist> | 77 | </itemizedlist> |
77 | </para> | 78 | </para> |
78 | </section> | 79 | </section> |
diff --git a/documentation/dev-manual/dev-manual-newbie.xml b/documentation/dev-manual/dev-manual-newbie.xml index 060dc26344..b41141908e 100644 --- a/documentation/dev-manual/dev-manual-newbie.xml +++ b/documentation/dev-manual/dev-manual-newbie.xml | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | <para> | 8 | <para> |
9 | This chapter helps you understand the Yocto Project as an open source development project. | 9 | This chapter helps you understand the Yocto Project as an open source development project. |
10 | In general, working in an open-source environment is very different than working in a closed, | 10 | In general, working in an open-source environment is very different than working in a |
11 | proprietary environment. | 11 | proprietary environment. |
12 | Additionally, the Yocto Project uses specific tools and constructs as part of its development | 12 | Additionally, the Yocto Project uses specific tools and constructs as part of its development |
13 | environment. | 13 | environment. |
@@ -19,8 +19,8 @@ | |||
19 | <title>Open Source Philosophy</title> | 19 | <title>Open Source Philosophy</title> |
20 | 20 | ||
21 | <para> | 21 | <para> |
22 | Open source philosophy is characterized by software development directed by peer production, | 22 | Open source philosophy is characterized by software development directed by peer production |
23 | bartering, and collaboration through a concerned community of developers. | 23 | and collaboration through a concerned community of developers. |
24 | Contrast this to the more standard centralized development models used by commercial software | 24 | Contrast this to the more standard centralized development models used by commercial software |
25 | companies where a finite set of developers produce a product for sale using a defined set | 25 | companies where a finite set of developers produce a product for sale using a defined set |
26 | of procedures that ultimately result in an end-product whose architecture and source material | 26 | of procedures that ultimately result in an end-product whose architecture and source material |
@@ -61,7 +61,7 @@ | |||
61 | <para> | 61 | <para> |
62 | The Yocto Project team maintains complete source repositories for all Yocto Project files | 62 | The Yocto Project team maintains complete source repositories for all Yocto Project files |
63 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi'>here</ulink>. | 63 | <ulink url='http://git.yoctoproject.org/cgit/cgit.cgi'>here</ulink>. |
64 | This web-interface of the source is organized into categories by function such as | 64 | This web-based source code browser is organized into categories by function such as |
65 | IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and so forth. | 65 | IDE Plugins, Matchbox, Poky, Yocto Linux Kernel, and so forth. |
66 | From the interface, you can click on any particular item in the "Name" column and | 66 | From the interface, you can click on any particular item in the "Name" column and |
67 | see the URL at the bottom of the page that you need to set up a Git repository for | 67 | see the URL at the bottom of the page that you need to set up a Git repository for |
@@ -132,23 +132,22 @@ | |||
132 | environment might find helpful. | 132 | environment might find helpful. |
133 | Some terms are universal but are included here just in case: | 133 | Some terms are universal but are included here just in case: |
134 | <itemizedlist> | 134 | <itemizedlist> |
135 | <listitem><para><emphasis>Image</emphasis> - An image is a complete executable file that | 135 | <listitem><para><emphasis>Image</emphasis> - An image is a collection of recipes created |
136 | runs on specific hardware or in the QEMU emulator. | 136 | with BitBake (baked) and made part of a root filesystem.</para></listitem> |
137 | Images are collections of recipes created with the Bitbake tool in the Yocto Project | ||
138 | development environment.</para></listitem> | ||
139 | <listitem><para><emphasis>Recipe</emphasis> - A set of instructions for building packages. | 137 | <listitem><para><emphasis>Recipe</emphasis> - A set of instructions for building packages. |
140 | A recipe describes where you get source code and which patches to apply. | 138 | A recipe describes where you get source code and which patches to apply. |
141 | Recipes describe dependencies for libraries or for other recipes and they | 139 | Recipes describe dependencies for libraries or for other recipes and they |
142 | also contain configuration and compilation options. | 140 | also contain configuration and compilation options. |
143 | Recipes also let you ‘install’ customizations. | 141 | Recipes also let you customize how software is installed into images. |
144 | Recipes contain the logical unit of execution, the software/images to build and | 142 | Recipes contain the logical unit of execution, the software/images to build and |
145 | use the <filename>.bb</filename> file extension.</para></listitem> | 143 | use the <filename>.bb</filename> file extension.</para></listitem> |
146 | <listitem><para><emphasis>BitBake</emphasis> - The task executor and scheduler used by Yocto Project | 144 | <listitem><para><emphasis>BitBake</emphasis> - The task executor and scheduler used by Yocto Project |
147 | to build images. | 145 | to build images. |
148 | For more information on BitBake, see the <ulink url='http://bitbake.berlios.de/manual/'> | 146 | For more information on BitBake, see the <ulink url='http://bitbake.berlios.de/manual/'> |
149 | BitBake documentation</ulink>.</para></listitem> | 147 | BitBake documentation</ulink>.</para></listitem> |
150 | <listitem><para><emphasis>Package</emphasis> - A collection of ‘baked’ recipes. | 148 | <listitem><para><emphasis>Package</emphasis> - The output from a baked recipe. |
151 | You ‘bake’ something by running it through Bitbake.</para></listitem> | 149 | A package is generally the compiled binaries produced from the recipe's sources. |
150 | You ‘bake’ something by running it through BitBake.</para></listitem> | ||
152 | <listitem><para><emphasis>Layer</emphasis> - A logical collection of recipes representing the core, | 151 | <listitem><para><emphasis>Layer</emphasis> - A logical collection of recipes representing the core, |
153 | a BSP, or an application stack.</para></listitem> | 152 | a BSP, or an application stack.</para></listitem> |
154 | <listitem><para><emphasis>Metadata</emphasis> - Information for a build that is generally | 153 | <listitem><para><emphasis>Metadata</emphasis> - Information for a build that is generally |
@@ -176,13 +175,13 @@ | |||
176 | A task is really just another recipe. | 175 | A task is really just another recipe. |
177 | Because task files are recipes, they end with the <filename>.bb</filename> filename | 176 | Because task files are recipes, they end with the <filename>.bb</filename> filename |
178 | extension.</para></listitem> | 177 | extension.</para></listitem> |
179 | <listitem><para><emphasis>Common OE-Core</emphasis> - A core set of metadata originating | 178 | <listitem><para><emphasis>OE-Core</emphasis> - A core set of metadata originating |
180 | with OpenEmbedded (OE) that is shared between OE and the Yocto Project.</para></listitem> | 179 | with OpenEmbedded (OE) that is shared between OE and the Yocto Project.</para></listitem> |
181 | <listitem><para><emphasis>Up-stream</emphasis> - A reference to source code or repositories | 180 | <listitem><para><emphasis>Upstream</emphasis> - A reference to source code or repositories |
182 | that are not local to the development system but located in a master area that is controlled | 181 | that are not local to the development system but located in a master area that is controlled |
183 | by the maintainer of the source code. | 182 | by the maintainer of the source code. |
184 | For example, in order for a developer to work on a particular piece of code they need to | 183 | For example, in order for a developer to work on a particular piece of code they need to |
185 | first get a copy of it from an "up-stream" source.</para></listitem> | 184 | first get a copy of it from an "upstream" source.</para></listitem> |
186 | </itemizedlist> | 185 | </itemizedlist> |
187 | </para> | 186 | </para> |
188 | </section> | 187 | </section> |
@@ -208,7 +207,7 @@ | |||
208 | MIT licensing permits the reuse of software within proprietary software as long as the | 207 | MIT licensing permits the reuse of software within proprietary software as long as the |
209 | license is distributed with that software. | 208 | license is distributed with that software. |
210 | MIT is also compatible with the GNU General Public License (GPL). | 209 | MIT is also compatible with the GNU General Public License (GPL). |
211 | Patches to the Yocto Project follow the up-stream licensing scheme. | 210 | Patches to the Yocto Project follow the upstream licensing scheme. |
212 | </para> | 211 | </para> |
213 | 212 | ||
214 | <para> | 213 | <para> |
@@ -251,14 +250,13 @@ | |||
251 | 250 | ||
252 | <para> | 251 | <para> |
253 | The Yocto Project uses Git, which is a free, open source distributed version control system. | 252 | The Yocto Project uses Git, which is a free, open source distributed version control system. |
254 | Git supports distributed development, non-linear development, can handle large projects, | 253 | Git supports distributed development, non-linear development, and can handle large projects. |
255 | cryptographic authentication of history, and toolkit design. | ||
256 | It is best that you know how to work with Git if you are going to use Yocto Project for development. | 254 | It is best that you know how to work with Git if you are going to use Yocto Project for development. |
257 | </para> | 255 | </para> |
258 | 256 | ||
259 | <para> | 257 | <para> |
260 | Git has an extensive set of commands that lets you manage and collaborate changes over the life | 258 | Git has an extensive set of commands that lets you manage changes and perform |
261 | of a project. | 259 | collaboration over the life of a project. |
262 | Conveniently though, you can manage with a small set of basic operations and workflows | 260 | Conveniently though, you can manage with a small set of basic operations and workflows |
263 | once you understand the basic philosophy behind Git. | 261 | once you understand the basic philosophy behind Git. |
264 | You do not have to be an expert in Git to be functional. | 262 | You do not have to be an expert in Git to be functional. |
@@ -358,18 +356,18 @@ | |||
358 | The Yocto Project files are maintained using Git in a "master" branch whose Git history | 356 | The Yocto Project files are maintained using Git in a "master" branch whose Git history |
359 | tracks every change and whose structure provides branches for all diverging functionality. | 357 | tracks every change and whose structure provides branches for all diverging functionality. |
360 | This is typical for open-source projects, although Git does not have to be used. | 358 | This is typical for open-source projects, although Git does not have to be used. |
361 | For the Yocto Project a key individual is responsible for "master". | 359 | For the Yocto Project a key individual called the "maintainer" is responsible for "master". |
362 | The "master" branch is the “upstream” repository where the final builds of the project occur. | 360 | The "master" branch is the “upstream” repository where the final builds of the project occur. |
363 | The maintainer is responsible for allowing changes in from other developers and for | 361 | The maintainer is responsible for allowing changes in from other developers and for |
364 | organizing the underlying branch structure to reflect release strategies and so forth. | 362 | organizing the underlying branch structure to reflect release strategies and so forth. |
365 | </para> | 363 | </para> |
366 | 364 | ||
367 | <para> | 365 | <para> |
368 | The maintainer of the project also owns a contribution repository usually known as a “contrib” area. | 366 | The project also has contribution repositories known as “contrib” areas. |
369 | The contrib area temporarily holds changes to the project that have been submitted or committed | 367 | These areas temporarily hold changes to the project that have been submitted or committed |
370 | by the Yocto Project development team and by community members that contribute to the project. | 368 | by the Yocto Project development team and by community members that contribute to the project. |
371 | The maintainer determines if the changes are qualified to be moved into the "master" branch | 369 | The maintainer determines if the changes are qualified to be moved from the "contrib" areas |
372 | of the Git repository. | 370 | into the "master" branch of the Git repository. |
373 | </para> | 371 | </para> |
374 | 372 | ||
375 | <para> | 373 | <para> |
@@ -377,12 +375,15 @@ | |||
377 | of the upstream "master" branch. | 375 | of the upstream "master" branch. |
378 | These repositories are local to their development platforms and are used to develop changes. | 376 | These repositories are local to their development platforms and are used to develop changes. |
379 | When a developer is satisfied with a particular feature or change they “push” the changes | 377 | When a developer is satisfied with a particular feature or change they “push” the changes |
380 | up to the "contrib" repository. | 378 | to the appropriate "contrib" repository. |
379 | </para> | ||
380 | |||
381 | <para> | ||
381 | Developers are responsible for keeping their local repository up-to-date with "master". | 382 | Developers are responsible for keeping their local repository up-to-date with "master". |
382 | They are also responsible for straightening out any conflicts that might arise within files | 383 | They are also responsible for straightening out any conflicts that might arise within files |
383 | that are being worked on simultaneously by more than one person. | 384 | that are being worked on simultaneously by more than one person. |
384 | All this work is done locally on the developer’s machine before anything is pushed upstream | 385 | All this work is done locally on the developer’s machine before anything is pushed to a |
385 | and examined at the maintainer’s level. | 386 | "contrib" area and examined at the maintainer’s level. |
386 | </para> | 387 | </para> |
387 | 388 | ||
388 | <para> | 389 | <para> |
@@ -395,7 +396,7 @@ | |||
395 | To summarize the environment: we have a single point of entry for changes into the project’s | 396 | To summarize the environment: we have a single point of entry for changes into the project’s |
396 | "master" branch of the Git repository, which is controlled by the project’s maintainer. | 397 | "master" branch of the Git repository, which is controlled by the project’s maintainer. |
397 | And, we have a set of developers who independently develop, test, and submit changes | 398 | And, we have a set of developers who independently develop, test, and submit changes |
398 | upstream for the maintainer to examine. | 399 | to "contrib" areas for the maintainer to examine. |
399 | The maintainer then chooses which changes are going to become permanently a part of the project. | 400 | The maintainer then chooses which changes are going to become permanently a part of the project. |
400 | </para> | 401 | </para> |
401 | 402 | ||
@@ -435,13 +436,18 @@ | |||
435 | As your project develops, you can merge code across the branches to reflect ever-increasing | 436 | As your project develops, you can merge code across the branches to reflect ever-increasing |
436 | stable states of the development.</para></listitem> | 437 | stable states of the development.</para></listitem> |
437 | <listitem><para><emphasis>Use Push and Pull</emphasis> - The push-pull workflow is based on the | 438 | <listitem><para><emphasis>Use Push and Pull</emphasis> - The push-pull workflow is based on the |
438 | concept of developers “pushing” local commits upstream to the remote repository, which is | 439 | concept of developers “pushing” local commits to a remote repository, which is |
439 | usually a contribution repository. | 440 | usually a contribution repository. |
440 | It is also based on the developers “pulling” known states of the project down into their | 441 | It is also based on the developers “pulling” known states of the project down into their |
441 | local development repositories. | 442 | local development repositories. |
442 | This workflow easily allows you to pull changes submitted by other developers from the | 443 | This workflow easily allows you to pull changes submitted by other developers from the |
443 | upstream repository into your work area ensuring that you have the most recent software | 444 | upstream repository into your work area ensuring that you have the most recent software |
444 | on which to develop.</para></listitem> | 445 | on which to develop. |
446 | The Yocto Project has two scripts named <filename>create-pull-request</filename> and | ||
447 | <filename>send-pull-request</filename> that ship with the release to facilitate this | ||
448 | workflow. | ||
449 | You can find these scripts in the local Yocto Project files Git repository in | ||
450 | <filename>scripts</filename>.</para></listitem> | ||
445 | <listitem><para><emphasis>Patch Workflow</emphasis> - This workflow allows you to notify the | 451 | <listitem><para><emphasis>Patch Workflow</emphasis> - This workflow allows you to notify the |
446 | maintainer through an email that you have a change (or patch) you would like considered | 452 | maintainer through an email that you have a change (or patch) you would like considered |
447 | for the "master" branch of the Git repository. | 453 | for the "master" branch of the Git repository. |
diff --git a/documentation/dev-manual/dev-manual-start.xml b/documentation/dev-manual/dev-manual-start.xml index fbf16813c3..48f98b50b5 100644 --- a/documentation/dev-manual/dev-manual-start.xml +++ b/documentation/dev-manual/dev-manual-start.xml | |||
@@ -23,7 +23,7 @@ | |||
23 | <title>Introducing the Yocto Project</title> | 23 | <title>Introducing the Yocto Project</title> |
24 | 24 | ||
25 | <para> | 25 | <para> |
26 | The Yocto Project is an open-source collaboration project focused on embedded Linux developers. | 26 | The Yocto Project is an open-source collaboration project focused on embedded Linux development. |
27 | The project provides a recent Linux kernel along with a set of system commands, libraries, | 27 | The project provides a recent Linux kernel along with a set of system commands, libraries, |
28 | and system components suitable for the embedded developer. | 28 | and system components suitable for the embedded developer. |
29 | The Yocto Project also features the Sato reference User Interface should you be dealing with | 29 | The Yocto Project also features the Sato reference User Interface should you be dealing with |
@@ -48,10 +48,10 @@ | |||
48 | <listitem><para><emphasis>Host System:</emphasis> You need a recent release of Fedora, | 48 | <listitem><para><emphasis>Host System:</emphasis> You need a recent release of Fedora, |
49 | OpenSUSE, Debian, or Ubuntu. | 49 | OpenSUSE, Debian, or Ubuntu. |
50 | You should have a reasonably current Linux-based host system. | 50 | You should have a reasonably current Linux-based host system. |
51 | You should also have about 100 gigabytes of free disk space if you plan on building | 51 | You should also have about 100 gigabytes of free disk space for building images. |
52 | images.</para></listitem> | 52 | </para></listitem> |
53 | <listitem><para><emphasis>Packages:</emphasis> Depending on your host system (Debian-based or RPM-based), | 53 | <listitem><para><emphasis>Packages:</emphasis> The Yocto Project requires certain packages |
54 | you need certain packages. | 54 | exist on your development system. |
55 | See the <ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html#packages'> | 55 | See the <ulink url='http://www.yoctoproject.org/docs/yocto-quick-start/yocto-project-qs.html#packages'> |
56 | The Packages</ulink> section in the Yocto Project Quick start for the exact package | 56 | The Packages</ulink> section in the Yocto Project Quick start for the exact package |
57 | requirements.</para></listitem> | 57 | requirements.</para></listitem> |
@@ -239,7 +239,7 @@ | |||
239 | script.</para></listitem> | 239 | script.</para></listitem> |
240 | <listitem><para>Make sure the <filename>conf/local.conf</filename> configuration file is set | 240 | <listitem><para>Make sure the <filename>conf/local.conf</filename> configuration file is set |
241 | up how you want it. | 241 | up how you want it. |
242 | This file defines the target machine architecture and and other build configurations.</para></listitem> | 242 | This file defines the target machine architecture and and other build options.</para></listitem> |
243 | <listitem><para>Build the image using the BitBake command. | 243 | <listitem><para>Build the image using the BitBake command. |
244 | If you want information on Bitbake, see the user manual at | 244 | If you want information on Bitbake, see the user manual at |
245 | <ulink url='http://docs.openembedded.org/bitbake/html'></ulink>.</para></listitem> | 245 | <ulink url='http://docs.openembedded.org/bitbake/html'></ulink>.</para></listitem> |
@@ -253,7 +253,7 @@ | |||
253 | <title>Using Pre-Built Binaries and QEMU</title> | 253 | <title>Using Pre-Built Binaries and QEMU</title> |
254 | 254 | ||
255 | <para> | 255 | <para> |
256 | Another option you have to get started is to use a pre-built binary. | 256 | Another option you have to get started is to use pre-built binaries. |
257 | This scenario is ideal for developing software applications to run on your target hardware. | 257 | This scenario is ideal for developing software applications to run on your target hardware. |
258 | To do this you need to install the stand-alone Yocto toolchain tarball and then download the | 258 | To do this you need to install the stand-alone Yocto toolchain tarball and then download the |
259 | pre-built kernel that you will boot using the QEMU emulator. | 259 | pre-built kernel that you will boot using the QEMU emulator. |