| Summary: | Bitbake doesn't detect changes to SRC_URI files when using multiple bbappends | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BitBake | Reporter: | Magnus Olsson <magnus> |
| Component: | bitbake | Assignee: | Richard Purdie <richard.purdie> |
| Status: | VERIFIED FIXED | QA Contact: | Costin <costin.c.constantin> |
| Severity: | normal | ||
| Priority: | Medium+ | CC: | bogdanx.a.voiculescu, poky.bs.watcher, poky.watcher |
| Version: | unspecified | ||
| Target Milestone: | 1.8 M2 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | TC needed | ||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | Don't know | |
|
Description
Magnus Olsson
2014-12-03 09:58:26 UTC
Hello, Just tested on latest poky master hash: 84e8b1ba296c92ec00cfc5b5077ee253c4ed65ab. Steps performed: 1) cloned fresh poky 2) created 3 new layers with necessary files in them: cosscat@ubnt:/media/poky/3poky$ ls meta-layer? meta-layer1: conf recipes-test meta-layer2: conf recipes-test meta-layer3: conf recipes-test 3) reproduced the original recipe files as per comment#1: cosscat@ubnt:/media/poky/3poky$ ls meta-layer?/recipes-test meta-layer1/recipes-test: foo.bb meta-layer2/recipes-test: foo foo.bbappend meta-layer3/recipes-test: foo foo.bbappend 4) with both FOO.txt available in meta-layer2/recipes-test/foo and meta-layer3/recipes-test/foo the result is: cosscat@ubnt:/media/poky/3poky/build/tmp/work/i586-poky-linux/foo/1.0-r0$ cat FOO.txt: This is from layer3 :) 5) changed FOO.txt from layer3: cosscat@ubnt:/media/poky/3poky/meta-layer3/recipes-test/foo$ mv FOO.txt FOO1.txt ...(bitbake foo) cosscat@ubnt:/media/poky/3poky/build/tmp/work/i586-poky-linux/foo/1.0-r0$ cat FOO.txt from meta-layer2 ... 6) got FOO.txt back in layer3: cosscat@ubnt:/media/poky/3poky/meta-layer3/recipes-test/foo$ mv FOO1.txt FOO.txt ...(bitbake foo) cosscat@ubnt:/media/poky/3poky/build/tmp/work/i586-poky-linux/foo/1.0-r0$ cat FOO.txt from meta-layer2 ... The behavior should have been that after step 6, the FOO.txt from layer3 would be present in work dir. Costin reopened as per last comment This is not a correct reproducer of an problem. Why? """ cosscat@ubnt:/media/poky/3poky/build/tmp/work/i586-poky-linux/foo/1.0-r0$ cat FOO.txt from meta-layer2 ... """ is expected. Why? The configuration had previously been built so it was installed from sstate, not rebuilt. This meant that WORKDIR was never really used and hence there is a stale file left there. A better check is to check the tmp/deploy/xxx/foo_*.ipk file. You'll find that in each case this *does* have the correct contents. Or as well as "mv FOO1.txt FOO.txt", add something to the file. In that case it will rebuild since there will not be a valid cache item from sstate to reuse. Hello, I checked as per comment#4 recommendations and indeed the expected results were present. I checked each time the content of the foo-1.0-r0.i586.rpm file from /media/poky/3poky/build/tmp/deploy/rpm/i586/ and found the expected result. Steps performed: 1) cd /media/poky/3poky/build/tmp/deploy/rpm/i586 2) mkdir test 3) bitbake foo # following comment#2 steps 4) cp foo-1.0-r0.i586.rpm test 5) rpm2cpio test/foo-1.0-r0.i586.rpm | cpio -idmv 6) cat test/FOO.txt Marking as verified. Costin |