diff options
author | Juro Bystricky <juro.bystricky@intel.com> | 2018-03-20 15:34:19 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-03-25 09:40:42 +0100 |
commit | cf6f3c023cfa731ce061949135e255458d474964 (patch) | |
tree | dd569929bfc225460f0c845b7d887c82a030bd8a /meta/recipes-devtools | |
parent | 7cd6442613353b93ab6a2fe8f0dd6f2c9fa18afb (diff) | |
download | poky-cf6f3c023cfa731ce061949135e255458d474964.tar.gz |
reproducible_build.bbclass: support for binary reproducibility
Setup environment for builds requiring binary reproducibility.
Determine and export SOURCE_DATE_EPOCH per each recipe.
This is a crucial step to achieve binary reproducibility.
The value for this variable (timestamp) is obtained after source code for
a recipe has been unpacked, but before it is patched. If the code sources
come from a GIT repo, we get the timestamp from the top commit. (GIT repo
does not preserve file mktime timestamps). Otherwise, if GIT repo is not
present, we try to get mtime from known files such as NEWS, ChangeLog, etc.
If this also fails, we go through all files and get the timestamp from the
youngest one. We create an individual timestamp for each recipe.
The timestamp is stored in the file '__source_date_epoch.txt' (in the folder
source-date-epoch_). Later on, each task reads this file and sets
the exported value of SOURCE_DATE_EPOCH to the value found in the file.
Uasge:
INHERIT += "reproducible_build"
[YOCTO#11178]
[YOCTO#11179]
(From OE-Core rev: cc438ac7711dedbe05d654e99af9316c9215b02e)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
0 files changed, 0 insertions, 0 deletions