On Wed, Aug 5, 2009 at 4:12 PM, Cedric Staniewski<cedric@gmx.ca> wrote:
The selection of the decompression command for gzip/bzip2/xz compressed files now also depends on the file suffix, since the decompression programs rely on them when not using -c option.
Signed-off-by: Cedric Staniewski <cedric@gmx.ca> --- scripts/makepkg.sh.in | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 2f1db38..702e4c1 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -641,16 +641,23 @@ extract_sources() {
# fix flyspray #6246 local file_type=$(file -bizL "$file") + local ext=${file##*.} local cmd='' case "$file_type" in *application/x-tar*|*application/zip*|*application/x-zip*|*application/x-cpio*) cmd="bsdtar -x -f '$file'" ;; *application/x-gzip*) - cmd="gunzip -c -f '$file' > '${file%.*}'" ;; + [ "$ext" = "gz" -o "$ext" = "z" -o "$ext" = "Z" ] \ + && cmd="gunzip -cf '$file' > '${file%.*}'" \ + || continue ;; *application/x-bzip*) - cmd="bunzip2 -f -k '$file'" ;; + [ "$ext" = "bz2" -o "$ext" = "bz" ] \ + && cmd="bunzip2 -fk '$file'" \ + || continue ;; *application/x-xz*) - cmd="xz -d -f -k '$file'" ;; + [ "$ext" = "xz" ] \ + && cmd="xz -dfk '$file'" \ + || continue ;; *) # Don't know what to use to extract this file, # skip to the next file -- 1.6.4
an example of a compressed file with a different extension which came to my mind : http://en.wikipedia.org/wiki/PK3_%28file_extension%29 So without this patch, makepkg would just error out, unless we put the file in noextract With this patch, it is just skipped. This situation is probably quite rare, but I am totally fine with this patch.