From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6643631712973619200 X-Received: by 2002:a2e:90c8:: with SMTP id o8-v6mr3729312ljg.24.1546841047207; Sun, 06 Jan 2019 22:04:07 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a2e:814b:: with SMTP id t11-v6ls4908737ljg.6.gmail; Sun, 06 Jan 2019 22:04:06 -0800 (PST) X-Google-Smtp-Source: ALg8bN4EkrqPoWFjgGHxAn2aid/8cgkV87l80N7+T6YzQD6OvvE3hikKXfM+KOfMdmxaF+5UgwmT X-Received: by 2002:a2e:98cd:: with SMTP id s13-v6mr3733060ljj.30.1546841046515; Sun, 06 Jan 2019 22:04:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546841046; cv=none; d=google.com; s=arc-20160816; b=IoyXMxZqsPCL9H8x7kEeJpUlyAI6jITVTOVl6mNpJyiXUC6hcZmgwpAvM2S74dSqre 8I6nD0oqkAbPB3LhBoViW1hZxV2NDMtPWA4Dl3v88OEFH/l5MgIDPUAYyrkDucToyvvC 3ABZ5+QleotqHww7dv8uO7Wk1TEIVYGMG///OSe37eSFmTbJPBxywwQ4RtvdnYVtkGqE f06m7YcmiWGcn4okyE0ws88+j+oRBTh3sYfCG4NbX7hEVTRD9G0g65VuHE4MhfGFHqYd nRbiNifHuUFVlXNtKMCUjFNKHF8rsBGZcKZT92JCCQSZwrfjmOgIv9+Nipg6+d1gT9YP Zy6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:mime-version:user-agent :date:message-id:subject:from:to; bh=1K4hsVPwgMiJkd4L8ii6dTz2OnTJq42nyY/KGFo8MnY=; b=v7Hr+Eo0qgyv5K6+7MrmpMsr3lZgTH8de0sMMGooYvBbDpo/oH+C9c7ZUPWPlmoumO e28aTBHdJBOLSJ2xAsngD3bljQqnG0YukBban3rvgJpYleowZdTY8LNSUdx/a+ZcNSSn rAxwMViigGABnSsgcSkHnF1zbGy8xrUkSK3eBQXetcqWMPjsOZyFQV6EPsIsM+TyRjHm qkp/YuGtV4tVRU90kgOtWBnsBudFuXi0Nw29FfFNRp5Me3/WWByhCIvjT8Yx45t8MUmd xYm5bVysEr2NmcC1JsITdDJTs/r/7ZvMC0Wv4bKM03tQea8Ax7dSU5OkaxqwIw5b7l6M +yfw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id 134si2075582lfa.1.2019.01.06.22.04.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 06 Jan 2019 22:04:06 -0800 (PST) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id x07645ga005902 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 7 Jan 2019 07:04:05 +0100 Received: from [167.87.33.204] ([167.87.33.204]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id x07644X5019397 for ; Mon, 7 Jan 2019 07:04:04 +0100 To: isar-users From: Jan Kiszka Subject: [PATCH] scripts: Add rpm2cpio.sh Message-ID: Date: Mon, 7 Jan 2019 07:04:03 +0100 User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: Z7Y7iirIkzWF 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