aboutsummaryrefslogtreecommitdiff
path: root/patches/bin/rpm2targz
diff options
context:
space:
mode:
Diffstat (limited to 'patches/bin/rpm2targz')
-rw-r--r--patches/bin/rpm2targz123
1 files changed, 0 insertions, 123 deletions
diff --git a/patches/bin/rpm2targz b/patches/bin/rpm2targz
deleted file mode 100644
index 4df00d7c..00000000
--- a/patches/bin/rpm2targz
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/bin/sh
-# Copyright 1997, 1998 Patrick Volkerding, Moorhead, MN USA
-# Copyright 2002, 2004 Slackware Linux, Inc., Concord, CA USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-if [ "$1" = "" ]; then
- echo "$0: Converts RPM format to standard GNU tar + GNU zip format."
- echo " (view converted packages with \"less\", install and remove"
- echo " with \"installpkg\", \"removepkg\", \"pkgtool\", or manually"
- echo " with \"tar\")"
- echo
- echo "Usage: $0 <file.rpm>"
- if [ "`basename $0`" = "rpm2tgz" ]; then
- echo " (Outputs \"file.tgz\")"
- else
- echo " (Outputs \"file.tar.gz\")"
- fi
- exit 1;
-fi
-
-# Create a new temporary directory with a secure filename:
-make_temp_dir() {
- if [ -x "$(which mcookie)" ]; then
- tempd=/tmp/tmp.$(mcookie)
- mkdir -p -m 0755 $tempd
- elif [ -x "$(which openssl)" ]; then
- tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5)
- mkdir -p -m 0755 $tempd
- elif [ -x "$(which md5)" ]; then
- tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5)
- mkdir -p -m 0755 $tempd
- elif [ -x "$(which mktemp)" ]; then
- tempd=$(mktemp -d)
- chmod 755 $tempd
- ## Uncomment for insecure use, but don't blame me:
- #else
- # tempd=/tmp/tmp.$$
- # mkdir -p -m 0755 $tempd
- fi
- if [ -d $tempd ]; then # success, return the name of the directory:
- echo $tempd
- else
- echo "ERROR: Could not find mcookie, openssl, or md5."
- echo " Exiting since a secure temporary directory could not be made."
- exit 1
- fi
-}
-
-for i in $* ; do
-
- # Determine if this is a source or binary RPM.
- # If we have getrpmtype, use that. Otherwise, try "file".
- if which getrpmtype 1> /dev/null 2> /dev/null; then
- if getrpmtype -n $i | grep source 1> /dev/null 2> /dev/null ; then
- isSource=1
- else
- isSource=0
- fi
- else # use file. This works fine on Slackware, and is the default.
- if file $i | grep RPM | grep " src " 1> /dev/null 2> /dev/null ; then
- isSource=1
- else
- isSource=0
- fi
- fi
-
- # Create a temporary directory:
- TMPDIR=$(make_temp_dir)
-
- # Extract the RPM:
- ofn=$TMPDIR/$(basename $i .rpm).cpio
- if which rpm2cpio 1> /dev/null 2> /dev/null ; then
- rpm2cpio $i > $ofn 2> /dev/null
- if [ ! $? = 0 ]; then
- echo "ERROR: rpm2cpio failed. (maybe $i is not an RPM?)"
- rm -rf $TMPDIR
- continue
- fi
- else # less reliable than rpm2cpio...
- ( dd ibs=`rpmoffset < $i` skip=1 if=$i 2> /dev/null | gzip -dc > $ofn 2>/dev/null ) || \
- ( dd ibs=`rpmoffset < $i` skip=1 if=$i 2> /dev/null | bzip2 -dc > $ofn 2>/dev/null )
- fi
- DEST=$TMPDIR
- if [ "$isSource" = "1" ]; then
- DEST=$DEST/$(basename $(basename $i .rpm) .src)
- fi
- mkdir -p $DEST
- ( cd $DEST
- cpio -i -m -d < $ofn 1> /dev/null 2> /dev/null
- rm -f $ofn
- find . -type d -perm 700 -exec chmod 755 {} \;
- )
-
- # Repack the files in a tar+gz archive:
- ( cd $TMPDIR ; tar cf - . ) > `basename $i .rpm`.tar
- gzip -9 `basename $i .rpm`.tar
- if [ "`basename $0`" = "rpm2tgz" ]; then
- mv `basename $i .rpm`.tar.gz `basename $i .rpm`.tgz
- fi
-
- # Remove temporary directory:
- rm -rf $TMPDIR
-
-done
-