[PATCH v2] tools/firmware-utils: use UTC for image timestamps

Sander Vanheule sander at svanheule.net
Thu Aug 6 16:10:32 EDT 2020


By using localtime() to determine the timestamp that goes into factory
images, the resulting image depends on the timezone of the build system.
Use gmtime() instead, which results in more reproducible images.

Signed-off-by: Sander Vanheule <sander at svanheule.net>
---
 tools/firmware-utils/Makefile                | 2 +-
 tools/firmware-utils/src/addpattern.c        | 2 +-
 tools/firmware-utils/src/tplink-safeloader.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/firmware-utils/Makefile b/tools/firmware-utils/Makefile
index ee0ef3a6fd..4fcda7e439 100644
--- a/tools/firmware-utils/Makefile
+++ b/tools/firmware-utils/Makefile
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME := firmware-utils
-PKG_RELEASE := 1
+PKG_RELEASE := 2
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/kernel.mk
diff --git a/tools/firmware-utils/src/addpattern.c b/tools/firmware-utils/src/addpattern.c
index 9bc4865335..9791527878 100644
--- a/tools/firmware-utils/src/addpattern.c
+++ b/tools/firmware-utils/src/addpattern.c
@@ -296,7 +296,7 @@ int main(int argc, char **argv)
 		return EXIT_FAILURE;
 	}
 
-	ptm = localtime(&t);
+	ptm = gmtime(&t);
 
 	if (3 != sscanf(version, "v%d.%d.%d", &v0, &v1, &v2)) {
 		fprintf(stderr, "bad version string \"%s\"\n", version);
diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c
index a5f3ced16d..0af1fe4c6e 100644
--- a/tools/firmware-utils/src/tplink-safeloader.c
+++ b/tools/firmware-utils/src/tplink-safeloader.c
@@ -2079,7 +2079,7 @@ static struct image_partition_entry make_soft_version(uint32_t rev) {
 	else if (time(&t) == (time_t)(-1))
 		error(1, errno, "time");
 
-	struct tm *tm = localtime(&t);
+	struct tm *tm = gmtime(&t);
 
 	s->magic = htonl(0x0000000c);
 	s->zero = 0;
-- 
2.26.2




More information about the openwrt-devel mailing list