Add ability to create reproducible source tarballs.

* src-release.sh: Add "-r <date>" option to create reproducible
	tarballs based upon a fixed timestamp of <date>.
	* binutils/README-how-to-make-a-release: Add a line showing how to
	use -r <date> when creating a binutils release.
This commit is contained in:
Nick Clifton
2022-10-10 11:28:45 +01:00
parent c29a6445a9
commit f54c53e9f4
3 changed files with 27 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2022-10-10 Nick Clifton <nickc@redhat.com>
* src-release.sh: Add "-r <date>" option to create reproducible
tarballs based upon a fixed timestamp of <date>.
* binutils/README-how-to-make-a-release: Add a line showing how to
use -r <date> when creating a binutils release.
2022-10-04 Nick Clifton <nickc@redhat.com>
* README-maintainer-mode: Add a minimum version of dejagnu

View File

@ -251,6 +251,10 @@ When the time comes to actually make the release....
./src-release.sh -b -g -l -x binutils
OR ... for a more reproducible tarball:
./src-release.sh -b -g -l -x -r `git log -1 --format=%cd --date=format:%F bfd/version.m4` binutils
24. Check that the files in the tarballs have the correct
permissions.

View File

@ -30,6 +30,7 @@ SHA256PROG=sha256sum
MAKE=make
CC=gcc
CXX=g++
release_date=
# Default to avoid splitting info files by setting the threshold high.
MAKEINFOFLAGS=--split-size=5000000
@ -184,9 +185,17 @@ do_tar()
ver=$2
echo "==> Making $package-$ver.tar"
rm -f $package-$ver.tar
find $package-$ver -follow \( $CVS_NAMES \) -prune \
-o -type f -print \
if test x$release_date == "x" ; then
find $package-$ver -follow \( $CVS_NAMES \) -prune -o -type f -print \
| tar cTfh - $package-$ver.tar
else
# Attempt to create a consistent, reproducible tarball using the
# specified date.
find $package-$ver -follow \( $CVS_NAMES \) -prune -o -type f -print \
| LC_ALL=C sort \
| tar cTfh - $package-$ver.tar \
--mtime=$release_date --group=0 --owner=0
fi
}
# Compress the output with bzip2
@ -340,6 +349,7 @@ usage()
echo " -g: Compress with gzip"
echo " -l: Compress with lzip"
echo " -x: Compress with xz"
echo " -r <date>: Create a reproducible tarball using <date> as the mtime"
exit 1
}
@ -363,7 +373,7 @@ build_release()
compressors=""
while getopts ":bglx" opt; do
while getopts ":bglr:x" opt; do
case $opt in
b)
compressors="$compressors bz2";;
@ -371,6 +381,8 @@ while getopts ":bglx" opt; do
compressors="$compressors gz";;
l)
compressors="$compressors lz";;
r)
release_date=$OPTARG;;
x)
compressors="$compressors xz";;
\?)