From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6646963333394071552 X-Received: by 2002:a19:ab11:: with SMTP id u17mr108810lfe.5.1547616755124; Tue, 15 Jan 2019 21:32:35 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:42c5:: with SMTP id h66-v6ls605122ljf.7.gmail; Tue, 15 Jan 2019 21:32:34 -0800 (PST) X-Google-Smtp-Source: ALg8bN44hGDC5duXZpO4vQIw3A/RlM0y8UQD/YW4Qur7UNJLrDh7Eh/tOYo5lvz4CipJJ8RXSPwo X-Received: by 2002:a2e:9a59:: with SMTP id k25-v6mr496664ljj.0.1547616754415; Tue, 15 Jan 2019 21:32:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547616754; cv=none; d=google.com; s=arc-20160816; b=Q29fNrTPbo+iOnBfx/OVPbo2dkJVvnoCyN2nNs4MFJnxpPeUYcEwHXhAI0zXZ0u+XL JYjPtLRE3ohsyAq3ZujVSRe5vWi70BnYbUVjPYYB+8LcqcTIZJicsPtYtGcjyGL767cf L5MYSocVNGNYZY8n26/D/mY1QMXtGjYE1xSCck5Bd/8YY6FQNt1VuvczkIkvlMlldHp6 Assva05s/S/+Vklfc+Xibk4QN8jCRzFJsGguIsRERQkvc+g513SW2KjqGHQJA3+ubAPC VGyTRjgIBTqHfbv4f20lRjbKUr1yfKcVB7FVLmhVvROYlxruPTFJkdxQLakM/FyEw0gR V6Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=references:in-reply-to:references:in-reply-to:message-id:date :subject:to:from; bh=1K4hsVPwgMiJkd4L8ii6dTz2OnTJq42nyY/KGFo8MnY=; b=AKPX8zjGTFrFMyDfoagXZHcWq+8p4D5ogtZSvQ7ywLaTi1LpWx0Asrhc5lbnRuxR9Z i7QFm2ZFJsrR1rqWv+GrvXhYwL16JMs50wRYSn6COYTmUgCnagUVbSRBjvDAjb2UsY/2 IZ4X86y5ULVzYMTVKNBxaOL/GOLk2cUb2WRMqeGHogW2qCPH8eCHJbQcJNj5dUoCBEAO F3neJEtrs3P1nGWiYhj4RyF5aq39F00JbbXKu2dvZAZmhJ1lihaxeHdvzFqIpH5dBajw 3zKLChYpv9i7SqaLTcVqWslr/kZ3z6TWRmhXTZwgaRA/N1kMevxUJBBawjcflU3XmvXY Jj9A== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id e17-v6si177303ljg.5.2019.01.15.21.32.34 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 15 Jan 2019 21:32:34 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id x0G5WXWE002037 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 16 Jan 2019 06:32:33 +0100 Received: from md1f2u6c.ad001.siemens.net ([167.87.33.125]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id x0G5WRoS011496 for ; Wed, 16 Jan 2019 06:32:33 +0100 From: Jan Kiszka To: isar-users Subject: [PATCH v3 10/14] scripts: Add rpm2cpio.sh Date: Wed, 16 Jan 2019 06:32:23 +0100 Message-Id: X-Mailer: git-send-email 2.16.4 In-Reply-To: References: In-Reply-To: References: X-TUID: LajvCEvDaclq From: Jan Kiszka Bitbake is able to unpack rpm packages. For this to work, it just needs rpm2cpio.sh in scripts. Add it from rpm upstream, similar to what OE core did. Signed-off-by: Jan Kiszka --- scripts/rpm2cpio.sh | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 scripts/rpm2cpio.sh diff --git a/scripts/rpm2cpio.sh b/scripts/rpm2cpio.sh new file mode 100755 index 0000000..db3cae6 --- /dev/null +++ b/scripts/rpm2cpio.sh @@ -0,0 +1,59 @@ +#!/bin/sh -efu +# +# This software is a part of ISAR, +# originating from the RPM Package Manager version 4.14 +# +# SPDX-License-Identifier: GPL-2.0 + +fatal() { + echo "$*" >&2 + exit 1 +} + +pkg="$1" +[ -n "$pkg" -a -e "$pkg" ] || + fatal "No package supplied" + +_dd() { + local o="$1"; shift + dd if="$pkg" skip="$o" iflag=skip_bytes status=none $* +} + +calcsize() { + offset=$(($1 + 8)) + + local i b b0 b1 b2 b3 b4 b5 b6 b7 + + i=0 + while [ $i -lt 8 ]; do + b="$(_dd $(($offset + $i)) bs=1 count=1)" + [ -z "$b" ] && + b="0" || + b="$(exec printf '%u\n' "'$b")" + eval "b$i=\$b" + i=$(($i + 1)) + done + + rsize=$((8 + ((($b0 << 24) + ($b1 << 16) + ($b2 << 8) + $b3) << 4) + ($b4 << 24) + ($b5 << 16) + ($b6 << 8) + $b7)) + offset=$(($offset + $rsize)) +} + +case "$(_dd 0 bs=8 count=1)" in + "$(printf '\355\253\356\333')"*) ;; # '\xed\xab\xee\xdb' + *) fatal "File doesn't look like rpm: $pkg" ;; +esac + +calcsize 96 +sigsize=$rsize + +calcsize $(($offset + (8 - ($sigsize % 8)) % 8)) +hdrsize=$rsize + +case "$(_dd $offset bs=3 count=1)" in + "$(printf '\102\132')"*) _dd $offset | bunzip2 ;; # '\x42\x5a' + "$(printf '\037\213')"*) _dd $offset | gunzip ;; # '\x1f\x8b' + "$(printf '\375\067')"*) _dd $offset | xzcat ;; # '\xfd\x37' + "$(printf '\135\000')"*) _dd $offset | unlzma ;; # '\x5d\x00' + "$(printf '\050\265')"*) _dd $offset | unzstd ;; # '\x28\xb5' + *) fatal "Unrecognized rpm file: $pkg" ;; +esac -- 2.16.4