diff options
author | Luca Ceresoli <luca.ceresoli@bootlin.com> | 2024-02-28 12:25:14 +0100 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2024-03-16 08:33:21 -1000 |
commit | 05fc0002721ed1bed8031d90ba27e0669412f1c0 (patch) | |
tree | 14c1b98ecf109a07164d23835b4b45c3ee610fc8 | |
parent | c9834bf620885c0570e68187f270aa29dc81af9f (diff) | |
download | poky-05fc0002721ed1bed8031d90ba27e0669412f1c0.tar.gz |
ref-manual: tasks: do_cleanall: recommend using '-f' instead
do_cleanall can produce failures when used in legitimate cases, such as
with recipe variants (foo and foo-native) or a shared DL_DIR. This is why
it is forbidden when writing tests that will run on the autobuilders
(https://docs.yoctoproject.org/test-manual/intro.html?highlight=cleanall#considerations-when-writing-tests).
Reword the documentation to clearly discourage, provide a safe alternative
(bitbake -f -c fetch), and the rationale with an example.
Reported-by: Sam Liddicott
Link: https://bootlin.com/blog/yocto-sharing-the-sstate-cache-and-download-directories/#comment-2650335
(From yocto-docs rev: c8ba32df7576ceb4b8371595e14ad51bdb3e33b1)
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r-- | documentation/ref-manual/tasks.rst | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/documentation/ref-manual/tasks.rst b/documentation/ref-manual/tasks.rst index 0db960b22f..16b48ca0bc 100644 --- a/documentation/ref-manual/tasks.rst +++ b/documentation/ref-manual/tasks.rst | |||
@@ -470,9 +470,29 @@ You can run this task using BitBake as follows:: | |||
470 | 470 | ||
471 | $ bitbake -c cleanall recipe | 471 | $ bitbake -c cleanall recipe |
472 | 472 | ||
473 | Typically, you would not normally use the :ref:`ref-tasks-cleanall` task. Do so only | 473 | You should never use the :ref:`ref-tasks-cleanall` task in a normal |
474 | if you want to start fresh with the :ref:`ref-tasks-fetch` | 474 | scenario. If you want to start fresh with the :ref:`ref-tasks-fetch` task, |
475 | task. | 475 | use instead:: |
476 | |||
477 | $ bitbake -f -c fetch recipe | ||
478 | |||
479 | .. note:: | ||
480 | |||
481 | The reason to prefer ``bitbake -f -c fetch`` is that the | ||
482 | :ref:`ref-tasks-cleanall` task would break in some cases, such as:: | ||
483 | |||
484 | $ bitbake -c fetch recipe | ||
485 | $ bitbake -c cleanall recipe-native | ||
486 | $ bitbake -c unpack recipe | ||
487 | |||
488 | because after step 1 there is a stamp file for the | ||
489 | :ref:`ref-tasks-fetch` task of ``recipe``, and it won't be removed at | ||
490 | step 2 because step 2 uses a different work directory. So the unpack task | ||
491 | at step 3 will try to extract the downloaded archive and fail as it has | ||
492 | been deleted in step 2. | ||
493 | |||
494 | Note that this also applies to BitBake from concurrent processes when a | ||
495 | shared download directory (:term:`DL_DIR`) is setup. | ||
476 | 496 | ||
477 | .. _ref-tasks-cleansstate: | 497 | .. _ref-tasks-cleansstate: |
478 | 498 | ||