aboutsummaryrefslogtreecommitdiffstats
path: root/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch')
-rw-r--r--package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch80
1 files changed, 0 insertions, 80 deletions
diff --git a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch b/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
deleted file mode 100644
index af473622ed..0000000000
--- a/package/utils/busybox/patches/530-use-SOURCE_DATE_EPOCH-for-timestamp-if-available.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 59f773ee81a8945321f4aa20abc5e9577e6483e4 Mon Sep 17 00:00:00 2001
-From: Paul Spooren <mail@aparcar.org>
-Date: Thu, 13 May 2021 11:25:34 +0200
-Subject: [PATCH] use SOURCE_DATE_EPOCH for timestamp if available
-
-The SOURCE_DATE_EPOCH is an effort of the Reproducible Builds
-organization to make timestamps/build dates in compiled tools
-deterministic over several repetitive builds.
-
-Busybox shows by default the build date timestamp which changes whenever
-compiled. To have a reasonable accurate build date while staying
-reproducible, it's possible to use the *date of last source
-modification* rather than the current time and date.
-
-Further information on SOURCE_DATE_EPOCH are available online [1].
-
-This patch modifies `confdata.c` so that the content of the
-SOURCE_DATE_EPOCH env variable is used as timestamp.
-
-To be independent of different timezones between builds, whenever
-SOURCE_DATE_EPOCH is defined the GMT time is used.
-
-[1]: https://reproducible-builds.org/docs/source-date-epoch/
-
-Signed-off-by: Paul Spooren <mail@aparcar.org>
----
- scripts/kconfig/confdata.c | 17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
-index b05b96e45..73c25e3a8 100644
---- a/scripts/kconfig/confdata.c
-+++ b/scripts/kconfig/confdata.c
-@@ -342,6 +342,8 @@ int conf_write(const char *name)
- time_t now;
- int use_timestamp = 1;
- char *env;
-+ char *source_date_epoch;
-+ struct tm *build_time;
-
- dirname[0] = 0;
- if (name && name[0]) {
-@@ -378,7 +380,16 @@ int conf_write(const char *name)
- }
- sym = sym_lookup("KERNELVERSION", 0);
- sym_calc_value(sym);
-- time(&now);
-+
-+ source_date_epoch = getenv("SOURCE_DATE_EPOCH");
-+ if (source_date_epoch && *source_date_epoch) {
-+ now = strtoull(source_date_epoch, NULL, 10);
-+ build_time = gmtime(&now);
-+ } else {
-+ time(&now);
-+ build_time = localtime(&now);
-+ }
-+
- env = getenv("KCONFIG_NOTIMESTAMP");
- if (env && *env)
- use_timestamp = 0;
-@@ -398,14 +409,14 @@ int conf_write(const char *name)
- if (use_timestamp) {
- size_t ret = \
- strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
-- "\"%Y-%m-%d %H:%M:%S %Z\"\n", localtime(&now));
-+ "\"%Y-%m-%d %H:%M:%S %Z\"\n", build_time);
- /* if user has Factory timezone or some other odd install, the
- * %Z above will overflow the string leaving us with undefined
- * results ... so let's try again without the timezone.
- */
- if (ret == 0)
- strftime(buf, sizeof(buf), "#define AUTOCONF_TIMESTAMP "
-- "\"%Y-%m-%d %H:%M:%S\"\n", localtime(&now));
-+ "\"%Y-%m-%d %H:%M:%S\"\n", build_time);
- } else { /* bbox */
- strcpy(buf, "#define AUTOCONF_TIMESTAMP \"\"\n");
- }
---
-2.30.2
-