Bug 3137

Summary: rpm unpacking error
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Ross Burton <ross.burton>
Component: devtools / tool chainAssignee: Robert Yang <liezhi.yang>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: liezhi.yang, meta.mr.watcher, meta.watcher, poky.bs.watcher, poky.watcher, ross.burton, sgw, yi.zhao, zhenfeng.zhao
Version: 1.3   
Target Milestone: 1.3 M5   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Ross Burton 2012-09-19 11:21:04 UTC
The relatively new rpm unpacking in master is causing the PVR drivers in meta-intel to crash:

| DEBUG: Executing python function do_unpack
| DEBUG: Executing python function base_do_unpack
| NOTE: Unpacking /home/ross/Yocto/downloads/psb-video-cdv-1.0.3-1.1.i586.rpm to /data/poky-master/tmp/work/core2-poky-linux/cdv-pvr-driver-1.0.3-r1/
| cpio: ./lib/firmware/msvdx_fw_mfld.bin: Cannot open: No such file or directory
| cpio: ./lib/firmware/msvdx_fw_mfld_DE2.0.bin: Cannot open: No such file or directory
| cpio: pvr_drv_video.so: Cannot symlink to `./usr/lib/dri/psb_drv_video.so': No such file or directory
| cpio: ./usr/lib/dri/pvr_drv_video.so: Cannot open: No such file or directory
| cpio: ./usr/share/doc/psb-video-cdv-1.0.3/license.txt: Cannot open: No such file or directory
| 1210 blocks
| DEBUG: Python function base_do_unpack finished
| DEBUG: Python function do_unpack finished
Comment 1 Robert Yang 2012-09-25 12:36:27 UTC
Hi Ross:

I can't reproduce this error, would you please provide more information or try it again? e.g.:

1) How to reproduce it.
2) The full log.
Comment 2 Ross Burton 2012-09-25 13:24:58 UTC
You can't replicate it because I worked around it in meta-intel by disabling the extract.  Revert c3644c66fad3d9a91259ea382e72304dc6576ca0 and you'll see it.
Comment 3 Robert Yang 2012-09-26 09:00:57 UTC
(In reply to comment #2)
> You can't replicate it because I worked around it in meta-intel by disabling
> the extract.  Revert c3644c66fad3d9a91259ea382e72304dc6576ca0 and you'll see
> it.

Hi Ross,

I'm afraid that the c3644c66fad3d9a91259ea382e72304dc6576ca0 is the correct fix:

The cdv-pvr-driver has 3 binary RPMs, the cdv-pvr-driver_1.0.3.bb has unpacked and installed them manually, so disable the auto unpack is the correct way, if we want to unpack them automatically, then we need re-work cdv-pvr-driver_1.0.3.bb, but I don't think we have to do this, since its do_install have more than 60 lines, and it worked correctly currently, it would cost much time to  do the runtime test if we re-work it. I did a "grep" in meta-* in yocto, there are 2 recipes: rpm and cdv-pvr-driver which use the rpm as the source, the rpm works correctly since it uses srpm. 

The automatically unpack rpm in fetch2 does have a bug, the cpio command should be "cpio -di", not "cpio -i". I will send a patch to fix it.
Comment 4 Robert Yang 2012-09-28 02:07:47 UTC
Hi Ross,

I assume that you have read the previous comments, I will mark it as fixed.

Merged into master:

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=faaa0653c2a24fcd419d8a79c33086611ea36b89
Comment 5 Ross Burton 2012-09-28 06:05:42 UTC
Yes, thanks.  My extract=0 was certainly the right short-term fix and now the fetcher is fixed too these recipes can be simplified.
Comment 6 Yi Zhao 2012-10-12 09:00:31 UTC
Verified with M5 RC3
poky: 86c9aa8081f107420cd3763d0566d779daddc2b1
meta-intel: 2c1e927fa99abe47865a03cf661d4757ff3147c6