bitbake: fetch2: unpack rpm, ipk and deb binary package

* Unpack the ".rpm" binary package (only .src.rpm in the past)

* Unpack the .deb and .ipk binary package, their unpack commands are the same.

* This is useful for binary package recipe.

[YOCTO #1592]

(Bitbake rev: de7ceb9459574f33920ccc06255b533434f0ec25)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang
2012-09-02 12:08:51 +08:00
committed by Richard Purdie
parent 399d7f2029
commit 7d8b49cfe4

View File

@@ -938,7 +938,7 @@ class FetchMethod(object):
if dos:
cmd = '%s -a' % cmd
cmd = "%s '%s'" % (cmd, file)
elif file.endswith('.src.rpm') or file.endswith('.srpm'):
elif file.endswith('.rpm') or file.endswith('.srpm'):
if 'extract' in urldata.parm:
unpack_file = urldata.parm.get('extract')
cmd = 'rpm2cpio.sh %s | cpio -i %s' % (file, unpack_file)
@@ -946,6 +946,8 @@ class FetchMethod(object):
iterate_file = unpack_file
else:
cmd = 'rpm2cpio.sh %s | cpio -i' % (file)
elif file.endswith('.deb') or file.endswith('.ipk'):
cmd = 'ar -p %s data.tar.gz | zcat | tar --no-same-owner -xpf -' % file
if not unpack or not cmd:
# If file == dest, then avoid any copies, as we already put the file into dest!