mirror of
https://github.com/curl/curl.git
synced 2025-03-19 15:40:42 +08:00
dist: add reproducible dir entries to tarballs
In the initial implementation of reproducible tarballs, they were missing directory entries, while .zip archives had them. It meant that on extracting the tarball, on-disk directory entries got the current timestamp. This patch fixes this by including directory entries in the tarball, with reproducible timestamps. It also moves sorting inside tar, to ensure reproducible directory entry timestamps on extract (without the need of `--delay-directory-restore` option, when extracting with GNU tar. BSD tar got that right by default.) GNU tar 1.28 (2014-07-28) introduced `--sort=`. Ref: https://github.com/curl/curl/pull/13299#discussion_r1555957350 Follow-up to 860cd5fc2dc8e165fadd2c19a9b7c73b3ae5069d #13299 Closes #13322
This commit is contained in:
parent
3210101088
commit
b6a4f9aa1e
5
maketgz
5
maketgz
@ -185,8 +185,8 @@ retar() {
|
||||
mkdir "$tempdir"
|
||||
cd "$tempdir"
|
||||
gzip -dc "../$targz" | tar -xf -
|
||||
find curl-* -type f -exec touch -c -t "$filestamp" '{}' +
|
||||
find curl-* -type f | sort | tar --create --format=ustar --owner=0 --group=0 --numeric-owner --files-from - | gzip --best --no-name > out.tar.gz
|
||||
find curl-* -depth -exec touch -c -t "$filestamp" '{}' +
|
||||
tar --create --format=ustar --owner=0 --group=0 --numeric-owner --sort=name curl-* | gzip --best --no-name > out.tar.gz
|
||||
mv out.tar.gz ../
|
||||
cd ..
|
||||
rm -rf "$tempdir"
|
||||
@ -223,7 +223,6 @@ makezip() {
|
||||
mkdir "$tempdir"
|
||||
cd "$tempdir"
|
||||
gzip -dc "../$targz" | tar -xf -
|
||||
find . -depth -type d -exec touch -c -t "$filestamp" '{}' +
|
||||
find . | sort | zip -9 -X "$zip" -@ >/dev/null
|
||||
mv "$zip" ../
|
||||
cd ..
|
||||
|
Loading…
x
Reference in New Issue
Block a user