diff --git a/srcpkgs/rpmextract/files/rpm2cpio b/srcpkgs/rpmextract/files/rpm2cpio new file mode 100755 index 0000000000..a960609ed8 --- /dev/null +++ b/srcpkgs/rpmextract/files/rpm2cpio @@ -0,0 +1,26 @@ +#!/bin/bash + +pkg=$1 +if [ "$pkg" = "" -o ! -e "$pkg" ]; then + echo "no package supplied" 1>&2 + exit 1 +fi + +leadsize=96 +o=`expr $leadsize + 8` +set `od -j $o -N 8 -t u1 $pkg` +il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` +dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` +# echo "sig il: $il dl: $dl" + +sigsize=`expr 8 + 16 \* $il + $dl` +o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8` +set `od -j $o -N 8 -t u1 $pkg` +il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` +dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` +# echo "hdr il: $il dl: $dl" + +hdrsize=`expr 8 + 16 \* $il + $dl` +o=`expr $o + $hdrsize` + +dd if=$pkg ibs=$o skip=1 2>/dev/null diff --git a/srcpkgs/rpmextract/files/rpmextract b/srcpkgs/rpmextract/files/rpmextract new file mode 100755 index 0000000000..c5efa88cf3 --- /dev/null +++ b/srcpkgs/rpmextract/files/rpmextract @@ -0,0 +1,6 @@ +#!/bin/bash +if [ "$1" = "" -o ! -e "$1" ]; then + echo "no package supplied" 1>&2 + exit 1 +fi +rpm2cpio $1 | bsdtar -xf - diff --git a/srcpkgs/rpmextract/template b/srcpkgs/rpmextract/template new file mode 100644 index 0000000000..fd0ca2c89b --- /dev/null +++ b/srcpkgs/rpmextract/template @@ -0,0 +1,24 @@ +# Template file for 'rpmextract' +pkgname=rpmextract +version=1.0 +revision=1 +short_desc="Script to convert or extract RPM archives (contains rpm2cpio)" +maintainer="Ypnose " +license="GPL" +homepage="http://www.archlinux.org" + +nofetch=yes +noextract=yes + +do_install() { + vinstall ${FILESDIR}/rpm2cpio 755 usr/bin + vinstall ${FILESDIR}/rpmextract 755 usr/bin +} + +rpmextract_package() { + depends="bash bsdtar coreutils" + noarch="yes" + pkg_install() { + vmove usr + } +}