Bug 4447

Summary: The cache checksum for the base configuration does not change when the task data variable changes
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Laurentiu Palcu <laurentiu.palcu>
Component: coreAssignee: Laurentiu Palcu <laurentiu.palcu>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: meta.mr.watcher, meta.watcher
Version: 1.5   
Target Milestone: 1.5   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---

Description Laurentiu Palcu 2013-05-02 14:48:14 UTC
While working on an archiver issue, it was observed that changing the task data variable in a certain class did not produce the correct behavior. It can be reproduced by changing any "addtask" line anywhere in bitbake, but this what I've been playing with:

1. Add the following in the local.conf:
ARCHIVER_MODE ?= "original"
ARCHIVER_MODE[type] ?= "tar"
ARCHIVER_MODE[log_type] ?= "logs_with_scripts"
ARCHIVER_MODE[filter] = "no"
ARCHIVER_CLASS = "${@'archive-${ARCHIVER_MODE}-source' if ARCHIVER_MODE != 'none' else ''}"
INHERIT += "${ARCHIVER_CLASS}"

2. in archive-original-source.bbclass, change the following line:
-addtask do_dumpdata_create_diff_gz
+addtask do_dumpdata_create_diff_gz before do_rootfs

3. do a bitbake -g core-image-sato

4. run `cat task-depends.dot |grep do_rootfs|grep create`

Expected result:
"core-image-sato.do_rootfs" -> "core-image-sato.do_dumpdata_create_diff_gz"

Actual result:
The command will not output anything
Comment 1 Laurentiu Palcu 2013-05-02 14:49:47 UTC
One additional comment: if tmp/cache directory is removed, the task dependencies will be computed correctly.