1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-03 01:40:07 +00:00

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
@@ -55,8 +55,9 @@ Reproducible builds now enabled by default
In order to avoid unnecessary differences in output files (aiding binary In order to avoid unnecessary differences in output files (aiding binary
reproducibility), the Poky distribution configuration reproducibility), the Poky distribution configuration
(``DISTRO = "poky"``) now inherits the ``reproducible_build`` class by (``DISTRO = "poky"``) now inherits the
default. :ref:`reproducible-build <ref-classes-reproducible-build>` class
by default.
.. _migration-3.1-ptest-feature-impact: .. _migration-3.1-ptest-feature-impact:
+12
View File
@@ -2209,6 +2209,18 @@ commit, and log. From the information, report files using a JSON format
are created and stored in are created and stored in
``${``\ :term:`LOG_DIR`\ ``}/error-report``. ``${``\ :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: .. _ref-classes-rm-work:
``rm_work.bbclass`` ``rm_work.bbclass``
+17
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 You will see this variable referenced in the default values of
``FILES:${PN}-dev``. ``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` :term:`SOURCE_MIRROR_FETCH`
When you are fetching files to create a mirror of sources (i.e. 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 creating a source mirror), setting :term:`SOURCE_MIRROR_FETCH` to "1" in