mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-01 22:04:45 +08:00
firmware-utils: mkdlinkfw: create reproducible header
Use the SOURCE_DATE_EPOCH environment variable if set instead of the current time. The used timestamp matches the timestamp of the latest commit this way and make the images reproducible. Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
parent
f4aa9d8839
commit
e428b127e7
@ -34,9 +34,24 @@ extern char *progname;
|
||||
|
||||
uint32_t jboot_timestamp(void)
|
||||
{
|
||||
time_t rawtime;
|
||||
time(&rawtime);
|
||||
return (((uint32_t) rawtime) - TIMESTAMP_MAGIC) >> 2;
|
||||
char *env = getenv("SOURCE_DATE_EPOCH");
|
||||
char *endptr = env;
|
||||
time_t fixed_timestamp = -1;
|
||||
errno = 0;
|
||||
|
||||
if (env && *env) {
|
||||
fixed_timestamp = strtoull(env, &endptr, 10);
|
||||
|
||||
if (errno || (endptr && *endptr != '\0')) {
|
||||
fprintf(stderr, "Invalid SOURCE_DATE_EPOCH");
|
||||
fixed_timestamp = -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (fixed_timestamp == -1)
|
||||
time(&fixed_timestamp);
|
||||
|
||||
return (((uint32_t) fixed_timestamp) - TIMESTAMP_MAGIC) >> 2;
|
||||
}
|
||||
|
||||
uint16_t jboot_checksum(uint16_t start_val, uint16_t *data, int size)
|
||||
|
Loading…
Reference in New Issue
Block a user