From ca78fc6762913560d1cf8fb01e57dc72121870e5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 14 Oct 2023 01:40:23 +0100 Subject: update/release: be more thorough updating times use find and touch, to force all files, directories and links to the desired timestamp (versiondate file) Signed-off-by: Leah Rowe --- script/update/project/release | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'script') diff --git a/script/update/project/release b/script/update/project/release index 426db72a..b6c0acf5 100755 --- a/script/update/project/release +++ b/script/update/project/release @@ -264,11 +264,21 @@ insert_version_files() mktarball() { # preserve timestamps for reproducible tarballs + touch_implementation="$(touch --version)" tar_implementation="$(tar --version)" - tar_implementation="${tar_implementation% *}" - mtime="" - [ "${tar_implementation}" = "tar (GNU tar)" ] && \ - mtime="--mtime=${versiondate}" + eval "$(setvars "" mtime touch)" + [ "${tar_implementation% *}" = "tar (GNU tar)" ] && \ + mtime="--mtime='@${versiondate}'" + [ "${touch_implementation% *}" = "touch (GNU coreutils)" ] || \ + touch_implementation="" + + ( + x_ cd "${1}" + [ -z "${touch_implementation}" ] || \ + find . -exec touch -h -a -m \ + -d "$(date -Rd @${versiondate})" {} + || \ + err "mktarball ${1}: can't set universal timestamps" + ) [ "${2%/*}" = "${2}" ] || x_ mkdir -p "${2%/*}" x_ tar -c "${1}" ${mtime} | xz -T0 -9e > "${2}" -- cgit v1.2.1