From fa03a6d17d63db0e69e12c6451075ceab723bbf7 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Thu, 29 Dec 2011 19:29:06 -0600 Subject: [PATCH] rpm2cpio.sh: make compression tests case-insensitive In the rpm2cpio.sh script, the output of $COMPRESSION is tested for certain lowercase strings such as 'xz' in order to determine the decompression to use. The problem is that the output strings tested are from the output of 'file', which uses different cases in different versions e.g. file-5.09 prints: tmp/sysroots/x86_64-linux/usr/bin$ ./file xxx.tar.xz: XZ compressed data while file-5.03 prints: tmp/sysroots/x86_64-linux/usr/bin$ ./file xxx.tar.xz: xz compressed data In the former, the XZ string causes xz compressed payloads to incorrectly fall through to the catch-all lzma case. (From OE-Core rev: fe48e55988a2208bb7a3a2cc2bc641c41dbd1cb0) Signed-off-by: Tom Zanussi Signed-off-by: Richard Purdie --- scripts/rpm2cpio.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/rpm2cpio.sh b/scripts/rpm2cpio.sh index 426fd77bb7..5df8c0f705 100755 --- a/scripts/rpm2cpio.sh +++ b/scripts/rpm2cpio.sh @@ -27,13 +27,13 @@ o=`expr $o + $hdrsize` EXTRACTOR="dd if=$pkg ibs=$o skip=1" COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null` -if echo $COMPRESSION |grep -q gzip; then +if echo $COMPRESSION |grep -iq gzip; then DECOMPRESSOR=gunzip -elif echo $COMPRESSION |grep -q bzip2; then +elif echo $COMPRESSION |grep -iq bzip2; then DECOMPRESSOR=bunzip2 -elif echo $COMPRESSION |grep -q xz; then +elif echo $COMPRESSION |grep -iq xz; then DECOMPRESSOR=unxz -elif echo $COMPRESSION |grep -q cpio; then +elif echo $COMPRESSION |grep -iq cpio; then DECOMPRESSOR=cat else # Most versions of file don't support LZMA, therefore we assume