RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Bernhard Rosenkraenzer
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   12-Oct-2007 21:50:37
  Branch: HEAD                             Handle: 2007101220503601

  Modified files:
    rpm                     CHANGES
    rpm/scripts             rpm2cpio

  Log:
    Make rpm2cpio handle packages with non-gzip payloads
    
    Submitted by: bero

  Summary:
    Revision    Changes     Path
    1.1677      +1  -0      rpm/CHANGES
    1.3         +14 -1      rpm/scripts/rpm2cpio
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1676 -r1.1677 CHANGES
  --- rpm/CHANGES       12 Oct 2007 18:55:57 -0000      1.1676
  +++ rpm/CHANGES       12 Oct 2007 19:50:36 -0000      1.1677
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - bero: Make rpm2cpio work for packages with payloads other than gzip
       - jbj: change to hRET_t for existing headerGetExtension uses.
       - bero: Add %optional flag on files (packages a file if it is there,
         but doesn't error out if it isn't there)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/scripts/rpm2cpio
  ============================================================================
  $ cvs diff -u -r1.2 -r1.3 rpm2cpio
  --- rpm/scripts/rpm2cpio      25 May 2007 18:34:16 -0000      1.2
  +++ rpm/scripts/rpm2cpio      12 Oct 2007 19:50:37 -0000      1.3
  @@ -23,4 +23,17 @@
   hdrsize=`expr 8 + 16 \* $il + $dl`
   o=`expr $o + $hdrsize`
   
  -dd if=$pkg ibs=$o skip=1 2>/dev/null | gunzip
  +COMPRESSION=`(dd if=$pkg ibs=$o skip=1 |file -) 2>/dev/null`
  +if echo $COMPRESSION |grep -q gzip; then
  +     DECOMPRESSOR=gunzip
  +elif echo $COMPRESSION |grep -q bzip2; then
  +     DECOMPRESSOR=bunzip2
  +elif echo $COMPRESSION |grep -q cpio; then
  +     DECOMPRESSOR=cat
  +else
  +     # Most versions of file don't support LZMA, therefore we assume
  +     # anything not detected is LZMA
  +     DECOMPRESSOR="lzmash -d -c"
  +fi
  +
  +dd if=$pkg ibs=$o skip=1 2>/dev/null | $DECOMPRESSOR
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to