diff options
| -rw-r--r-- | bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml | 94 |
1 files changed, 48 insertions, 46 deletions
diff --git a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml index 42a1db0902..09207b9fd5 100644 --- a/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml +++ b/bitbake/doc/bitbake-user-manual/bitbake-user-manual-fetching.xml | |||
| @@ -8,14 +8,14 @@ | |||
| 8 | BitBake's fetch module is a standalone piece of library code | 8 | BitBake's fetch module is a standalone piece of library code |
| 9 | that deals with the intricacies of downloading source code | 9 | that deals with the intricacies of downloading source code |
| 10 | and files from remote systems. | 10 | and files from remote systems. |
| 11 | Fetching source code is one of the corner stones of building software. | 11 | Fetching source code is one of the cornerstones of building software. |
| 12 | As such, this module forms an important part of BitBake. | 12 | As such, this module forms an important part of BitBake. |
| 13 | </para> | 13 | </para> |
| 14 | 14 | ||
| 15 | <para> | 15 | <para> |
| 16 | The current fetch module is called "fetch2" and refers to the | 16 | The current fetch module is called "fetch2" and refers to the |
| 17 | fact that it is the second major version of the API. | 17 | fact that it is the second major version of the API. |
| 18 | The original version is obsolete and removed from the codebase. | 18 | The original version is obsolete and has been removed from the codebase. |
| 19 | Thus, in all cases, "fetch" refers to "fetch2" in this | 19 | Thus, in all cases, "fetch" refers to "fetch2" in this |
| 20 | manual. | 20 | manual. |
| 21 | </para> | 21 | </para> |
| @@ -60,17 +60,19 @@ | |||
| 60 | <note> | 60 | <note> |
| 61 | For convenience, the naming in these examples matches | 61 | For convenience, the naming in these examples matches |
| 62 | the variables used by OpenEmbedded. | 62 | the variables used by OpenEmbedded. |
| 63 | If you want to see the above code in action, examine | ||
| 64 | the OpenEmbedded class file <filename>base.bbclass</filename>. | ||
| 63 | </note> | 65 | </note> |
| 64 | The <filename>SRC_URI</filename> and <filename>WORKDIR</filename> | 66 | The <filename>SRC_URI</filename> and <filename>WORKDIR</filename> |
| 65 | variables are not coded into the fetcher. | 67 | variables are not hardcoded into the fetcher, since those fetcher |
| 66 | They variables can (and are) called with different variable names. | 68 | methods can be (and are) called with different variable names. |
| 67 | In OpenEmbedded for example, the shared state (sstate) code uses | 69 | In OpenEmbedded for example, the shared state (sstate) code uses |
| 68 | the fetch module to fetch the sstate files. | 70 | the fetch module to fetch the sstate files. |
| 69 | </para> | 71 | </para> |
| 70 | 72 | ||
| 71 | <para> | 73 | <para> |
| 72 | When the <filename>download()</filename> method is called, | 74 | When the <filename>download()</filename> method is called, |
| 73 | BitBake tries to fulfill the URLs by looking for source files | 75 | BitBake tries to resolve the URLs by looking for source files |
| 74 | in a specific search order: | 76 | in a specific search order: |
| 75 | <itemizedlist> | 77 | <itemizedlist> |
| 76 | <listitem><para><emphasis>Pre-mirror Sites:</emphasis> | 78 | <listitem><para><emphasis>Pre-mirror Sites:</emphasis> |
| @@ -84,7 +86,7 @@ | |||
| 84 | <filename>SRC_URI</filename>). | 86 | <filename>SRC_URI</filename>). |
| 85 | </para></listitem> | 87 | </para></listitem> |
| 86 | <listitem><para><emphasis>Mirror Sites:</emphasis> | 88 | <listitem><para><emphasis>Mirror Sites:</emphasis> |
| 87 | If fetch failures occur, BitBake next uses mirror location as | 89 | If fetch failures occur, BitBake next uses mirror locations as |
| 88 | defined by the | 90 | defined by the |
| 89 | <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link> | 91 | <link linkend='var-MIRRORS'><filename>MIRRORS</filename></link> |
| 90 | variable. | 92 | variable. |
| @@ -149,7 +151,7 @@ | |||
| 149 | <para> | 151 | <para> |
| 150 | File integrity is of key importance for reproducing builds. | 152 | File integrity is of key importance for reproducing builds. |
| 151 | For non-local archive downloads, the fetcher code can verify | 153 | For non-local archive downloads, the fetcher code can verify |
| 152 | sha256 and md5 checksums to ensure the archives have been | 154 | SHA-256 and MD5 checksums to ensure the archives have been |
| 153 | downloaded correctly. | 155 | downloaded correctly. |
| 154 | You can specify these checksums by using the | 156 | You can specify these checksums by using the |
| 155 | <filename>SRC_URI</filename> variable with the appropriate | 157 | <filename>SRC_URI</filename> variable with the appropriate |
| @@ -260,8 +262,8 @@ | |||
| 260 | <para> | 262 | <para> |
| 261 | This submodule handles URLs that begin with | 263 | This submodule handles URLs that begin with |
| 262 | <filename>file://</filename>. | 264 | <filename>file://</filename>. |
| 263 | The filename you specify with in the URL can | 265 | The filename you specify within the URL can be |
| 264 | either be an absolute or relative path to a file. | 266 | either an absolute or relative path to a file. |
| 265 | If the filename is relative, the contents of the | 267 | If the filename is relative, the contents of the |
| 266 | <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link> | 268 | <link linkend='var-FILESPATH'><filename>FILESPATH</filename></link> |
| 267 | variable is used in the same way | 269 | variable is used in the same way |
| @@ -286,15 +288,45 @@ | |||
| 286 | </para> | 288 | </para> |
| 287 | 289 | ||
| 288 | <para> | 290 | <para> |
| 289 | Here are some example URLs: | 291 | Here are a couple example URLs, the first relative and |
| 292 | the second absolute: | ||
| 290 | <literallayout class='monospaced'> | 293 | <literallayout class='monospaced'> |
| 291 | SRC_URI = "file://relativefile.patch" | 294 | SRC_URI = "file://relativefile.patch" |
| 292 | SRC_URI = "file://relativefile.patch;this=ignored" | ||
| 293 | SRC_URI = "file:///Users/ich/very_important_software" | 295 | SRC_URI = "file:///Users/ich/very_important_software" |
| 294 | </literallayout> | 296 | </literallayout> |
| 295 | </para> | 297 | </para> |
| 296 | </section> | 298 | </section> |
| 297 | 299 | ||
| 300 | <section id='http-ftp-fetcher'> | ||
| 301 | <title>HTTP/FTP wget fetcher (<filename>http://</filename>, <filename>ftp://</filename>, <filename>https://</filename>)</title> | ||
| 302 | |||
| 303 | <para> | ||
| 304 | This fetcher obtains files from web and FTP servers. | ||
| 305 | Internally, the fetcher uses the wget utility. | ||
| 306 | </para> | ||
| 307 | |||
| 308 | <para> | ||
| 309 | The executable and parameters used are specified by the | ||
| 310 | <filename>FETCHCMD_wget</filename> variable, which defaults | ||
| 311 | to sensible values. | ||
| 312 | The fetcher supports a parameter "downloadfilename" that | ||
| 313 | allows the name of the downloaded file to be specified. | ||
| 314 | Specifying the name of the downloaded file is useful | ||
| 315 | for avoiding collisions in | ||
| 316 | <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link> | ||
| 317 | when dealing with multiple files that have the same name. | ||
| 318 | </para> | ||
| 319 | |||
| 320 | <para> | ||
| 321 | Some example URLs are as follows: | ||
| 322 | <literallayout class='monospaced'> | ||
| 323 | SRC_URI = "http://oe.handhelds.org/not_there.aac" | ||
| 324 | SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac" | ||
| 325 | SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan" | ||
| 326 | </literallayout> | ||
| 327 | </para> | ||
| 328 | </section> | ||
| 329 | |||
| 298 | <section id='cvs-fetcher'> | 330 | <section id='cvs-fetcher'> |
| 299 | <title>CVS fetcher (<filename>(cvs://</filename>)</title> | 331 | <title>CVS fetcher (<filename>(cvs://</filename>)</title> |
| 300 | 332 | ||
| @@ -334,7 +366,7 @@ | |||
| 334 | The supported parameters are as follows: | 366 | The supported parameters are as follows: |
| 335 | <itemizedlist> | 367 | <itemizedlist> |
| 336 | <listitem><para><emphasis>"method":</emphasis> | 368 | <listitem><para><emphasis>"method":</emphasis> |
| 337 | The protocol over which to communicate with the cvs server. | 369 | The protocol over which to communicate with the CVS server. |
| 338 | By default, this protocol is "pserver". | 370 | By default, this protocol is "pserver". |
| 339 | If "method" is set to "ext", BitBake examines the | 371 | If "method" is set to "ext", BitBake examines the |
| 340 | "rsh" parameter and sets <filename>CVS_RSH</filename>. | 372 | "rsh" parameter and sets <filename>CVS_RSH</filename>. |
| @@ -394,36 +426,6 @@ | |||
| 394 | </para> | 426 | </para> |
| 395 | </section> | 427 | </section> |
| 396 | 428 | ||
| 397 | <section id='http-ftp-fetcher'> | ||
| 398 | <title>HTTP/FTP wget fetcher (<filename>http://</filename>, <filename>ftp://</filename>, <filename>https://</filename>)</title> | ||
| 399 | |||
| 400 | <para> | ||
| 401 | This fetcher obtains files from web and FTP servers. | ||
| 402 | Internally, the fetcher uses the wget utility. | ||
| 403 | </para> | ||
| 404 | |||
| 405 | <para> | ||
| 406 | The executable and parameters used are specified by the | ||
| 407 | <filename>FETCHCMD_wget</filename> variable, which defaults | ||
| 408 | to a sensible values. | ||
| 409 | The fetcher supports a parameter "downloadfilename" that | ||
| 410 | allows the name of the downloaded file to be specified. | ||
| 411 | Specifying the name of the downloaded file is useful | ||
| 412 | for avoiding collisions in | ||
| 413 | <link linkend='var-DL_DIR'><filename>DL_DIR</filename></link> | ||
| 414 | when dealing with multiple files that have the same name. | ||
| 415 | </para> | ||
| 416 | |||
| 417 | <para> | ||
| 418 | Some example URLs are as follows: | ||
| 419 | <literallayout class='monospaced'> | ||
| 420 | SRC_URI = "http://oe.handhelds.org/not_there.aac" | ||
| 421 | SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac" | ||
| 422 | SRC_URI = "ftp://you@oe.handheld.sorg/home/you/secret.plan" | ||
| 423 | </literallayout> | ||
| 424 | </para> | ||
| 425 | </section> | ||
| 426 | |||
| 427 | <section id='svn-fetcher'> | 429 | <section id='svn-fetcher'> |
| 428 | <title>Subversion (SVN) Fetcher (<filename>svn://</filename>)</title> | 430 | <title>Subversion (SVN) Fetcher (<filename>svn://</filename>)</title> |
| 429 | 431 | ||
| @@ -476,14 +478,14 @@ | |||
| 476 | </section> | 478 | </section> |
| 477 | 479 | ||
| 478 | <section id='git-fetcher'> | 480 | <section id='git-fetcher'> |
| 479 | <title>GIT Fetcher (<filename>git://</filename>)</title> | 481 | <title>Git Fetcher (<filename>git://</filename>)</title> |
| 480 | 482 | ||
| 481 | <para> | 483 | <para> |
| 482 | This fetcher submodule fetches code from the Git | 484 | This fetcher submodule fetches code from the Git |
| 483 | source control system. | 485 | source control system. |
| 484 | The fetcher works by creating a bare clone of the | 486 | The fetcher works by creating a bare clone of the |
| 485 | remote into <filename>GITDIR</filename>, which is | 487 | remote into <filename>GITDIR</filename>, which is |
| 486 | usually <filename>DL_DIR/git</filename>. | 488 | usually <filename>DL_DIR/git2</filename>. |
| 487 | This bare clone is then cloned into the work directory during the | 489 | This bare clone is then cloned into the work directory during the |
| 488 | unpack stage when a specific tree is checked out. | 490 | unpack stage when a specific tree is checked out. |
| 489 | This is done using alternates and by reference to | 491 | This is done using alternates and by reference to |
| @@ -571,7 +573,7 @@ | |||
| 571 | </section> | 573 | </section> |
| 572 | 574 | ||
| 573 | <section id='gitsm-fetcher'> | 575 | <section id='gitsm-fetcher'> |
| 574 | <title>GIT Submodule Fetcher (<filename>gitsm://</filename>)</title> | 576 | <title>Git Submodule Fetcher (<filename>gitsm://</filename>)</title> |
| 575 | 577 | ||
| 576 | <para> | 578 | <para> |
| 577 | This fetcher submodule inherits from the | 579 | This fetcher submodule inherits from the |
| @@ -579,7 +581,7 @@ | |||
| 579 | that fetcher's behavior by fetching a repository's submodules. | 581 | that fetcher's behavior by fetching a repository's submodules. |
| 580 | <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link> | 582 | <link linkend='var-SRC_URI'><filename>SRC_URI</filename></link> |
| 581 | is passed to the Git fetcher as described in the | 583 | is passed to the Git fetcher as described in the |
| 582 | "<link linkend='git-fetcher'>GIT Fetcher (<filename>git://</filename>)</link>" | 584 | "<link linkend='git-fetcher'>Git Fetcher (<filename>git://</filename>)</link>" |
| 583 | section. | 585 | section. |
| 584 | <note> | 586 | <note> |
| 585 | <title>Notes and Warnings</title> | 587 | <title>Notes and Warnings</title> |
