From 04964b018a7a1f75a38b0b0c874400aa6de93209 Mon Sep 17 00:00:00 2001 From: Benno Rice Date: Wed, 19 Jun 2024 16:15:18 +1000 Subject: [PATCH] packaging: Use git timestamp as mtime for vendored files When generating distribution tarballs the creation time of the tarball ends up in the tarball itself as the stored mtime of the files created when vendoring any Rust dependencies. Use the `--mtime` argument to tar to replace the mtime of the vendored files (and, by extension, Cargo.lock) with the timestamp of the commit being used to generate the tarball. --- packaging/Makefile.dist-packaging | 3 ++- packaging/make-git-snapshot.sh | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packaging/Makefile.dist-packaging b/packaging/Makefile.dist-packaging index 586690dfd5..6a90e23bd1 100644 --- a/packaging/Makefile.dist-packaging +++ b/packaging/Makefile.dist-packaging @@ -2,6 +2,7 @@ GITREV = $$(git describe --always --tags) GITREV_FOR_PKG = $(shell echo "$(GITREV)" | sed -e 's,-,\.,g' -e 's,^v,,') +GITTIMESTAMP = $$(git show --no-patch --format=%ci) srcdir=$(shell dirname `pwd`) PACKAGE=rpm-ostree @@ -10,7 +11,7 @@ PKG_VER = $(PACKAGE)-$(GITREV_FOR_PKG) PKG_CLIENT_VER = $(PACKAGE)-client-$(GITREV_FOR_PKG) dist-snapshot: - ./make-git-snapshot.sh "$(srcdir)" "$(PKG_VER)" "$(GITREV)" + ./make-git-snapshot.sh "$(srcdir)" "$(PKG_VER)" "$(GITREV)" "$(GITTIMESTAMP)" rm -f $(PKG_VER).tar.xz xz -T0 $(PKG_VER).tar diff --git a/packaging/make-git-snapshot.sh b/packaging/make-git-snapshot.sh index 37a5ff19f4..51e36a690a 100755 --- a/packaging/make-git-snapshot.sh +++ b/packaging/make-git-snapshot.sh @@ -7,6 +7,8 @@ PKG_VER=$1 shift GITREV=$1 shift +GITTIMESTAMP=$1 +shift TARFILE=${PKG_VER}.tar TARFILE_TMP=$(pwd)/${TARFILE}.tmp @@ -49,7 +51,7 @@ fi mkdir -p .cargo (cd ${TOP} && ${vendor_cmd} ${tmpd}/vendor | sed -e "s,^directory *=.*,directory = './vendor',") > .cargo/config cp ${TOP}/Cargo.lock . - tar --owner=0 --group=0 --transform="s,^,${PKG_VER}/," -rf ${TARFILE_TMP} * .cargo/ + tar --owner=0 --group=0 --transform="s,^,${PKG_VER}/," --mtime="${GITTIMESTAMP}" -rf ${TARFILE_TMP} * .cargo/ ) mv ${TARFILE_TMP} ${TARFILE}