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 <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Tom Zanussi 2011-12-29 19:29:06 -06:00 committed by Richard Purdie
parent 9c6601a45e
commit fa03a6d17d
1 changed files with 4 additions and 4 deletions

View File

@ -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