scripts/rpm2cpio.sh fix
cover scripts/rpm2cpio.sh fix
From: Tom Zanussi <[email protected]>
When running rpm2cpio.sh on an xz-compressed rpm, it failed with the error:
tmp/sysroots/x86_64-linux/usr/bin/unlzma: (stdin): File format not recognized
This is due to the script demanding lowercase in tests that might produce uppercase output, such as newer versions of 'file'.
Tom Zanussi (1):
rpm2cpio.sh: make compression tests case-insensitive
scripts/rpm2cpio.sh | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
PATCH 1/1 rpm2cpio.sh: make compression tests case-insensitive
From: Tom Zanussi <[email protected]>
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.
--- scripts/rpm2cpio.sh | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
scripts/rpm2cpio.sh +4 -4
@@ -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
Signature · 1 line
1.7.0.4
Saul Wold
AppliedQuoted 12 lines · On 12/29/2011 05:29 PM, [email protected] wrote:
From: Tom Zanussi<[email protected]>
When running
rpm2cpio.shon an xz-compressed rpm, it failed with the error:tmp/sysroots/x86_64-linux/usr/bin/unlzma: (stdin): File format not recognized
This is due to the script demanding lowercase in tests that might produce uppercase output, such as newer versions of 'file'.
Tom Zanussi (1):
rpm2cpio.sh: make compression tests case-insensitive
Quoted 9 lines
scripts/rpm2cpio.sh | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Merged to OE-Core
Thanks
Sau!