1
0
mirror of https://xff.cz/git/u-boot/ synced 2025-09-01 08:42:12 +02:00

Respect SOURCE_DATE_EPOCH when building FIT images.

Embedding timestamps in FIT images results in unreproducible builds
for targets that generate a fit image, such as dra7xx_evm.

This patch uses the SOURCE_DATE_EPOCH environment variable, when set,
to use specified value for the date.

Thanks to HW42 for debugging the issue and providing the patch:

  https://lists.alioth.debian.org/pipermail/reproducible-builds/Week-of-Mon-20160606/005722.html

For more information about reproducible builds and the
SOURCE_DATE_EPOCH specification:

  https://reproducible-builds.org/specs/source-date-epoch/
  https://reproducible-builds.org/

Signed-off-by: Vagrant Cascadian <vagrant@debian.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Vagrant Cascadian
2016-06-16 12:28:40 -07:00
committed by Tom Rini
parent 42ffa51fd4
commit 5847084f6b
4 changed files with 41 additions and 15 deletions

View File

@@ -88,7 +88,6 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd,
struct image_tool_params *params)
{
uint32_t checksum;
char *source_date_epoch;
time_t time;
image_header_t * hdr = (image_header_t *)ptr;
@@ -98,18 +97,7 @@ static void image_set_header(void *ptr, struct stat *sbuf, int ifd,
sizeof(image_header_t)),
sbuf->st_size - sizeof(image_header_t));
source_date_epoch = getenv("SOURCE_DATE_EPOCH");
if (source_date_epoch != NULL) {
time = (time_t) strtol(source_date_epoch, NULL, 10);
if (gmtime(&time) == NULL) {
fprintf(stderr, "%s: SOURCE_DATE_EPOCH is not valid\n",
__func__);
time = 0;
}
} else {
time = sbuf->st_mtime;
}
time = imagetool_get_source_date(params, sbuf->st_mtime);
/* Build new header */
image_set_magic(hdr, IH_MAGIC);