ref-manual: document "reproducible_build" class and SOURCE_DATE_EPOCH

(From yocto-docs rev: ab6d3dbf57cac560b9b142cf5becf11d3edf09b7)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Michael Opdenacker
2021-10-19 14:35:58 +02:00
committed by Richard Purdie
parent d03d151093
commit 9bdb2db854
3 changed files with 32 additions and 2 deletions

View File

@@ -55,8 +55,9 @@ Reproducible builds now enabled by default
In order to avoid unnecessary differences in output files (aiding binary
reproducibility), the Poky distribution configuration
(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by
default.
(``DISTRO = "poky"``) now inherits the
:ref:`reproducible-build <ref-classes-reproducible-build>` class
by default.
.. _migration-3.1-ptest-feature-impact:

View File

@@ -2209,6 +2209,18 @@ commit, and log. From the information, report files using a JSON format
are created and stored in
``${``\ :term:`LOG_DIR`\ ``}/error-report``.
.. _ref-classes-reproducible-build:
``reproducible_build.bbclass``
==============================
The ``reproducible_build.bbclass`` class enables
:ref:`test-manual/reproducible-builds:reproducible builds` by computing
a :term:`SOURCE_DATE_EPOCH` value in each component's build environment, so
that the build is independent from the time when the component was built.
Poky inherits this class by default since version 3.1.
.. _ref-classes-rm-work:
``rm_work.bbclass``

View File

@@ -6938,6 +6938,23 @@ system and gives an overview of their function and contents.
You will see this variable referenced in the default values of
``FILES:${PN}-dev``.
:term:`SOURCE_DATE_EPOCH`
This defines a date expressed in number of seconds since
the UNIX EPOCH (01 Jan 1970 00:00:00 UTC), which is used by
multiple build systems to force a timestamp in built binaries.
Many upstream projects already support this variable.
You will find more details in the `official specifications
<https://reproducible-builds.org/specs/source-date-epoch/>`__.
A value for each recipe is computed from the sources by
the :ref:`reproducible-build <ref-classes-reproducible-build>` class.
If a recipe wishes to override the default behavior, it should set its
own :term:`SOURCE_DATE_EPOCH` value::
SOURCE_DATE_EPOCH = "1613559011"
:term:`SOURCE_MIRROR_FETCH`
When you are fetching files to create a mirror of sources (i.e.
creating a source mirror), setting :term:`SOURCE_MIRROR_FETCH` to "1" in