mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-11-10 14:17:56 +01:00
Merge pull request #10268 from starius/release-gnu-gzip
release.sh: make sure GNU gzip is used
This commit is contained in:
@@ -22,6 +22,7 @@ BUILD_DATE_STAMP="202001010000.00"
|
||||
function reproducible_tar_gzip() {
|
||||
local dir=$1
|
||||
local tar_cmd=tar
|
||||
local gzip_cmd=gzip
|
||||
|
||||
# MacOS has a version of BSD tar which doesn't support setting the --mtime
|
||||
# flag. We need gnu-tar, or gtar for short to be installed for this script to
|
||||
@@ -38,12 +39,27 @@ function reproducible_tar_gzip() {
|
||||
tar_cmd=gtar
|
||||
fi
|
||||
|
||||
# On MacOS, the default BSD gzip produces a different output than the GNU
|
||||
# gzip on Linux. To ensure reproducible builds, we need to use GNU gzip.
|
||||
gzip_version=$(gzip --version 2>&1 || true)
|
||||
if [[ ! "$gzip_version" =~ "GNU" ]]; then
|
||||
if ! command -v "ggzip" >/dev/null 2>&1; then
|
||||
echo "GNU gzip is required but cannot be found!"
|
||||
echo "On MacOS please run 'brew install gzip' to install ggzip."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# We have ggzip installed, use that instead.
|
||||
gzip_cmd=ggzip
|
||||
fi
|
||||
|
||||
# Pin down the timestamp time zone.
|
||||
export TZ=UTC
|
||||
|
||||
find "${dir}" -print0 | LC_ALL=C sort -r -z | $tar_cmd \
|
||||
"--mtime=${BUILD_DATE}" --no-recursion --null --mode=u+rw,go+r-w,a+X \
|
||||
--owner=0 --group=0 --numeric-owner -c -T - | gzip -9n > "${dir}.tar.gz"
|
||||
--owner=0 --group=0 --numeric-owner -c -T - | $gzip_cmd \
|
||||
-9n > "${dir}.tar.gz"
|
||||
|
||||
rm -r "${dir}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user