diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-06-30 13:21:30 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-09 12:44:49 +0200 |
commit | 1a44dbbbb900acb993fc68995fc3cfb50e5122ba (patch) | |
tree | 6915928d664960f6be974304bffa15429a9e3cd1 /pkgs/stdenv/generic/setup.sh | |
parent | 5e82aab5d4c6916fb4f35370b6f162d88bc6bf69 (diff) | |
download | nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar.gz nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar.bz2 nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar.lz nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar.xz nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.tar.zst nixlib-1a44dbbbb900acb993fc68995fc3cfb50e5122ba.zip |
unpackFile: Always copy directories
If $src refers to a directory, then always copy it. Previously, we checked the extension first, so if the directory had an extension like .tar, unpackPhase would fail.
Diffstat (limited to 'pkgs/stdenv/generic/setup.sh')
-rw-r--r-- | pkgs/stdenv/generic/setup.sh | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 286e9e019b1d..c3ebc3e9b5f0 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -475,32 +475,36 @@ unpackFile() { header "unpacking source archive $curSrc" 3 - case "$curSrc" in - *.tar.xz | *.tar.lzma) - # Don't rely on tar knowing about .xz. - xz -d < $curSrc | tar xf - - ;; - *.tar | *.tar.* | *.tgz | *.tbz2) - # GNU tar can automatically select the decompression method - # (info "(tar) gzip"). - tar xf $curSrc - ;; - *.zip) - unzip -qq $curSrc - ;; - *) - if [ -d "$curSrc" ]; then - stripHash $curSrc - cp -prd --no-preserve=timestamps $curSrc $strippedName - else + if [ -d "$curSrc" ]; then + + stripHash $curSrc + cp -prd --no-preserve=timestamps $curSrc $strippedName + + else + + case "$curSrc" in + *.tar.xz | *.tar.lzma) + # Don't rely on tar knowing about .xz. + xz -d < $curSrc | tar xf - + ;; + *.tar | *.tar.* | *.tgz | *.tbz2) + # GNU tar can automatically select the decompression method + # (info "(tar) gzip"). + tar xf $curSrc + ;; + *.zip) + unzip -qq $curSrc + ;; + *) if [ -z "$unpackCmd" ]; then echo "source archive $curSrc has unknown type" exit 1 fi runSingleHook unpackCmd - fi - ;; - esac + ;; + esac + + fi stopNest } |