RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/scripts/ rpm2cpio

From: Bernhard Rosenkraenzer <bero@rpm5.org>
Date: Fri 12 Oct 2007 - 21:50:37 CEST
Message-Id: <20071012195037.8FD1F348451@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Bernhard Rosenkraenzer
  Root:   /v/rpm/cvs                       Email:  bero@rpm5.org
  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
  @@ .
Received on Fri Oct 12 21:50:37 2007
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.