Bug 3165 - kernel recipes must be cleaned to avoid a confused runtime-reverse directory
Summary: kernel recipes must be cleaned to avoid a confused runtime-reverse directory
Status: RESOLVED FIXED
Alias: None
Product: BitBake
Classification: Build System, Metadata & Runtime
Component: bitbake (show other bugs)
Version: 1.3
Hardware: All Multiple
: Medium normal
Target Milestone: 1.3
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2012-09-24 22:14 UTC by Darren Hart
Modified: 2012-09-27 14:41 UTC (History)
2 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Darren Hart 2012-09-24 22:14:15 UTC
Build Configuration:
BB_VERSION        = "1.15.3"
TARGET_ARCH       = "i586"
TARGET_OS         = "linux"
MACHINE           = "sys940x"
DISTRO            = "poky"
DISTRO_VERSION    = "1.2+snapshot-20120924"
TUNE_FEATURES     = "m32 core2"
TARGET_FPU        = ""
meta-yocto        = "master:88429f018bbb15749f31067d5e7bf33c21b15f92"
meta-sys940x      
meta-intel        = "dvhart/1.3/fri2:102814d8ba2735d1e24c75b297508f863da9915e"
meta              = "master:88429f018bbb15749f31067d5e7bf33c21b15f92"

While updating sys940x from linux-yocto 3.2 to 3.4, the core-image-sato do_rootfs task would fail with:

| ++ ls /build/poky/master/sys940x_AdM_pj/tmp/pkgdata/sys940x-poky-linux/runtime-reverse/kernel-module-ipv6
| + filename=/build/poky/master/sys940x_AdM_pj/tmp/pkgdata/sys940x-poky-linux/runtime-reverse/kernel-module-ipv6
| ++ sed -n 's/^PN: //p' /build/poky/master/sys940x_AdM_pj/tmp/pkgdata/sys940x-poky-linux/runtime-reverse/kernel-module-ipv6
| sed: can't read /build/poky/master/sys940x_AdM_pj/tmp/pkgdata/sys940x-poky-linux/runtime-reverse/kernel-module-ipv6: No such file or directory


In linux-yocto 3.4 CONFIG_IPV6=y, in 3.2 CONFIG_IPV6=m. The do_rootfs task found the runtime-reverse/kernel-module-ipv6 link from the previous linux-yocto-rt 3.2 build, while the 3.4 build didn't add or remove the link, but it also didn't install the target the link was pointing to in ../runtime.

The warning:
bb.warn("The recipe is trying to install files into a shared area when those files already exist. Those files are:\n   %s" % "\n   ".join(match))

Didn't trigger. I suspect this is because it is looking for files that are being overwritten, as opposed to files which are left over from a previous kernel build and are NOT being recreated.

A clean of the previous kernel gets things building again. This can be confusing if the PREFERRED_PROVIDER has moved from the previous version to the new version as the wrong package will get cleaned.
Comment 1 Richard Purdie 2012-09-27 14:41:43 UTC
There is a now a fix in master which sorted the duplicate file detection: http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=8593c6c1d8995f449a41a99c6e3242e2e58e79a5

In a later release we can change warn -> error so rather than warning the user about the issue, we'd see an error.