Index: rpm2cpio =================================================================== RCS file: /v/rpm/cvs/rpm/scripts/rpm2cpio,v retrieving revision 1.2 retrieving revision 1.2.2.1 diff -u -u -r1.2 -r1.2.2.1 --- rpm/scripts/rpm2cpio 25 May 2007 18:34:16 -0000 1.2 +++ rpm/scripts/rpm2cpio 10 Jun 2007 11:43:39 -0000 1.2.2.1 @@ -23,4 +23,14 @@ hdrsize=`expr 8 + 16 \* $il + $dl` o=`expr $o + $hdrsize` -dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip +comp=$(dd if="$pkg" ibs=$o skip=1 count=1 2>/dev/null \ + | dd bs=3 count=1 2> /dev/null) + +gz="$(echo -en '\037\0213')" +case "$comp" in + BZh) dd if="$pkg" ibs=$o skip=1 2>/dev/null | bunzip2 ;; + "$gz"*) dd if="$pkg" ibs=$o skip=1 2>/dev/null | gunzip ;; + # no magic in old lzma format, if unknown we assume that's lzma for now + *) dd if="$pkg" ibs=$o skip=1 2>/dev/null | lzma d -si -so ;; + #*) echo "Unrecognized rpm file: $pkg"; return 1 ;; +esac