diff options
author | Titus von Boxberg <titus@v9g.de> | 2011-11-22 10:08:10 +0100 |
---|---|---|
committer | Titus von Boxberg <titus@v9g.de> | 2011-11-22 10:08:10 +0100 |
commit | f084787743d07e1fcfd316cb6ed4890f3cf20483 (patch) | |
tree | f0f14edef593109d72c0f87526c88a07740671a7 | |
parent | 3980ce99051c14b5af5978486e78a2c58e36a4a7 (diff) | |
download | crosstool-ng-f084787743d07e1fcfd316cb6ed4890f3cf20483.tar.gz crosstool-ng-f084787743d07e1fcfd316cb6ed4890f3cf20483.tar.bz2 crosstool-ng-f084787743d07e1fcfd316cb6ed4890f3cf20483.zip |
scripts/functions: extract: portable call for old and defective tars
Instead of using -J, --lzma, --use-compress-program or the like
use <compressor> -dc <file> | tar -f -
Signed-off-by: Titus von Boxberg <titus@v9g.de>
-rw-r--r-- | scripts/functions | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/scripts/functions b/scripts/functions index 2f15e3c8..a601860d 100644 --- a/scripts/functions +++ b/scripts/functions @@ -760,15 +760,15 @@ CT_Extract() { # - so, if we get an lzma tarball, and either 'xz' or 'lzma' is # missing, we can assume the other is available if [ "${CT_CONFIGURE_has_lzma}" = "y" ]; then - lzma_prog=lzma + lzma_prog="lzma -fdc" else - lzma_prog=xz + lzma_prog="xz -fdc" fi case "${ext}" in - .tar.xz) CT_DoExecLog FILE tar "${tar_opts[@]}" --use-compress-program=xz -f "${full_file}";; - .tar.lzma) CT_DoExecLog FILE tar "${tar_opts[@]}" --use-compress-program="${lzma_prog}" -f "${full_file}";; - .tar.bz2) CT_DoExecLog FILE tar "${tar_opts[@]}" -j -f "${full_file}";; - .tar.gz|.tgz) CT_DoExecLog FILE tar "${tar_opts[@]}" -z -f "${full_file}";; + .tar.xz) xz -fdc "${full_file}" | CT_DoExecLog FILE tar "${tar_opts[@]}" -f -;; + .tar.lzma) ${lzma_prog} "${full_file}" | CT_DoExecLog FILE tar "${tar_opts[@]}" -f -;; + .tar.bz2) bzip2 -dc "${full_file}" | CT_DoExecLog FILE tar "${tar_opts[@]}" -f -;; + .tar.gz|.tgz) gzip -dc "${full_file}" | CT_DoExecLog FILE tar "${tar_opts[@]}" -f -;; .tar) CT_DoExecLog FILE tar "${tar_opts[@]}" -f "${full_file}";; /.git) CT_ExtractGit "${basename}" "${@}";; *) CT_DoLog WARN "Don't know how to handle '${basename}${ext}': unknown extension" |