Merge branch 'main' into revert-2767-cklin/prefer-gtar
This commit is contained in:
commit
906452d251
3 changed files with 21 additions and 3 deletions
11
lib/tar.js
generated
11
lib/tar.js
generated
|
|
@ -143,7 +143,16 @@ async function extractTarZst(tar, dest, tarVersion, logger) {
|
|||
: ""}`);
|
||||
try {
|
||||
// Initialize args
|
||||
const args = ["-x", "--zstd"];
|
||||
//
|
||||
// `--ignore-zeros` means that trailing zero bytes at the end of an archive will be read
|
||||
// by `tar` in case a further concatenated archive follows. Otherwise when a tarball built
|
||||
// by GNU tar, which writes many trailing zeroes, is read by BSD tar, which expects less, then
|
||||
// BSD tar can hang up the pipe to its filter program early, and if that program is `zstd`
|
||||
// then it will try to write the remaining zeroes, get an EPIPE error because `tar` has closed
|
||||
// its end of the pipe, return 1, and `tar` will pass the error along.
|
||||
//
|
||||
// See also https://github.com/facebook/zstd/issues/4294
|
||||
const args = ["-x", "--zstd", "--ignore-zeros"];
|
||||
if (tarVersion.type === "gnu") {
|
||||
// Suppress warnings when using GNU tar to extract archives created by BSD tar
|
||||
args.push("--warning=no-unknown-keyword");
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
11
src/tar.ts
11
src/tar.ts
|
|
@ -152,7 +152,16 @@ export async function extractTarZst(
|
|||
|
||||
try {
|
||||
// Initialize args
|
||||
const args = ["-x", "--zstd"];
|
||||
//
|
||||
// `--ignore-zeros` means that trailing zero bytes at the end of an archive will be read
|
||||
// by `tar` in case a further concatenated archive follows. Otherwise when a tarball built
|
||||
// by GNU tar, which writes many trailing zeroes, is read by BSD tar, which expects less, then
|
||||
// BSD tar can hang up the pipe to its filter program early, and if that program is `zstd`
|
||||
// then it will try to write the remaining zeroes, get an EPIPE error because `tar` has closed
|
||||
// its end of the pipe, return 1, and `tar` will pass the error along.
|
||||
//
|
||||
// See also https://github.com/facebook/zstd/issues/4294
|
||||
const args = ["-x", "--zstd", "--ignore-zeros"];
|
||||
|
||||
if (tarVersion.type === "gnu") {
|
||||
// Suppress warnings when using GNU tar to extract archives created by BSD tar
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue