Merge pull request #18138 from cho-m/gnu-tar-bottle

This commit is contained in:
Mike McQuaid 2024-08-23 17:22:16 +01:00 committed by GitHub
commit 72dec98721
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -359,11 +359,11 @@ module Homebrew
gnu_tar_formula
end
sig { params(mtime: String).returns([String, T::Array[String]]) }
def setup_tar_and_args!(mtime)
sig { params(mtime: String, default_tar: T::Boolean).returns([String, T::Array[String]]) }
def setup_tar_and_args!(mtime, default_tar: false)
# Without --only-json-tab bottles are never reproducible
default_tar_args = ["tar", tar_args].freeze
return default_tar_args unless args.only_json_tab?
return default_tar_args if !args.only_json_tab? || default_tar
# Use gnu-tar as it can be set up for reproducibility better than libarchive
# and to be consistent between macOS and Linux.
@ -540,7 +540,7 @@ module Homebrew
sudo_purge
# Tar then gzip for reproducible bottles.
tar_mtime = tab.source_modified_time.strftime("%Y-%m-%d %H:%M:%S")
tar, tar_args = setup_tar_and_args!(tar_mtime)
tar, tar_args = setup_tar_and_args!(tar_mtime, default_tar: formula.name == "gnu-tar")
safe_system tar, "--create", "--numeric-owner",
*tar_args,
"--file", tar_path, "#{formula.name}/#{formula.pkg_version}"