Files
openwrt-kernel5.10-nss-qsdk…/tools/zip/patches/011-reproducible-mtime.patch
domenico 0cba744dde
Some checks failed
Build Kernel / Set targets (push) Has been cancelled
Build all core packages / build (malta/be) (push) Has been cancelled
Build all core packages / build (x86/64) (push) Has been cancelled
Build host tools / build-macos-latest (push) Has been cancelled
Build host tools / build-linux-buildbot (push) Has been cancelled
Build Kernel / Build Kernel with external toolchain (push) Has been cancelled
Build Kernel / Check Kernel patches (push) Has been cancelled
Build host tools / push-tools-container (push) Has been cancelled
Initial commit
2025-06-24 13:18:37 +02:00

42 lines
1.2 KiB
Diff

From 501ae4e93fd6fa2f7d20d00d1b011f9006802eae Mon Sep 17 00:00:00 2001
From: "Bernhard M. Wiedemann" <bwiedemann@suse.de>
Date: Fri, 3 May 2019 16:32:24 +0200
Subject: [PATCH] Override mtime with zip -X
with SOURCE_DATE_EPOCH
to allow for reproducible builds of .zip files
See https://reproducible-builds.org/ for why this is good
and https://reproducible-builds.org/specs/source-date-epoch/
for the definition of this variable.
Uses clamping to keep older mtimes than SOURCE_DATE_EPOCH intact.
---
zipup.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/zipup.c
+++ b/zipup.c
@@ -414,6 +414,7 @@ struct zlist far *z; /* zip entry to
ush tempcext = 0;
char *tempextra = NULL;
char *tempcextra = NULL;
+ const char *source_date_epoch;
#ifdef WINDLL
@@ -674,6 +675,13 @@ struct zlist far *z; /* zip entry to
} /* strcmp(z->name, "-") == 0 */
+ if (extra_fields == 0 && (source_date_epoch = getenv("SOURCE_DATE_EPOCH")) != NULL) {
+ time_t epoch = strtoull(source_date_epoch, NULL, 10);
+ if (epoch > 0) {
+ ulg epochtim = unix2dostime(&epoch);
+ if (z->tim > epochtim) z->tim = epochtim;
+ }
+ }
if (extra_fields == 2) {
unsigned len;
char *p;