]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
rpm2cpio.sh: make compression tests case-insensitive
authorTom Zanussi <tom.zanussi@intel.com>
Fri, 30 Dec 2011 01:29:06 +0000 (19:29 -0600)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 3 Jan 2012 12:10:51 +0000 (12:10 +0000)
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.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
scripts/rpm2cpio.sh

index 426fd77bb73e5428fa0603397445264cad1991db..5df8c0f70542d12154b5dcf3ce21d0187ad2320c 100755 (executable)
@@ -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