From: Malte Poll <1780588+malt3@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:59:41 +0000 (+0000) Subject: mkfs-util: set timezone to UTC when copying files into fat partition X-Git-Tag: v255-rc1~176 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b2942c76adc5bb6a3e073aa5cee57834ee3a9813;p=thirdparty%2Fsystemd.git mkfs-util: set timezone to UTC when copying files into fat partition mcopy will set the modification time of created directories to the mtime of the source directories but converts it to the timezone of the host. This behavior is identical to Windows / DOS: > The FAT file system stores time values based on the local time of the computer. -- https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times To achieve reproducible builds, mcopy should be invoked with TZ=UTC. Co-authored-by: Paul Meyer <49727155+katexochen@users.noreply.github.com> --- diff --git a/src/shared/mkfs-util.c b/src/shared/mkfs-util.c index 89384d92df1..e8356de2b74 100644 --- a/src/shared/mkfs-util.c +++ b/src/shared/mkfs-util.c @@ -161,7 +161,7 @@ static int do_mcopy(const char *node, const char *root) { if (r == 0) { /* Avoid failures caused by mismatch in expectations between mkfs.vfat and mcopy by disabling * the stricter mcopy checks using MTOOLS_SKIP_CHECK. */ - execve(mcopy, argv, STRV_MAKE("MTOOLS_SKIP_CHECK=1", strv_find_prefix(environ, "SOURCE_DATE_EPOCH="))); + execve(mcopy, argv, STRV_MAKE("MTOOLS_SKIP_CHECK=1", "TZ=UTC", strv_find_prefix(environ, "SOURCE_DATE_EPOCH="))); log_error_errno(errno, "Failed to execute mcopy: %m");