aboutsummaryrefslogtreecommitdiffstats
path: root/meta/conf/sanity.conf
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-06-08 23:28:12 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-06-10 11:59:08 +0100
commit4ea39427eedeadd51439a62fa015c86be30c3445 (patch)
treef39c563efe006a6402aea3d9cf20970974716676 /meta/conf/sanity.conf
parentde6a26b95a7f7bd8f9dc47ab35d8b07ba671f4eb (diff)
downloadopenembedded-core-contrib-4ea39427eedeadd51439a62fa015c86be30c3445.tar.gz
sstate: Add eventhandler which cleans up stale recipe data
"Incremental builds do not work well when renaming recipes or changing architecture" is a long standing issue which causes people considerable pain. We've struggled for a long time to come up with a way to generically address the problem. There are additional issues where removal of a layer caused data to continue to exist and additionally, changing DISTRO_FEATURES also caused problems in an existing TMPDIR. This patch attempts to address this by adding a mapping between stamp files and manifests. After parsing we can easily tell which stamp files are still reachable, if any manifest has a stamp that can no longer be reached, we can remove it. Since this code ties this to the sstate architecture list, it will not remove data from other than the current MACHINE (and its active architectures). It does not clean the sstate cache so if another build activates something which was cleaned, it should reinstall from sstate. We can also go one step further, depending on the setting of SSTATE_PRUNE_OBSOLETEWORKDIR, workdirs which are no longer active can also be removed. This avoids the buildup of many old copies of data in WORKDIR for example when versions are upgraded. The one thing which may surprise people with this change is if you remove a layer, data added by that layer will be "uninstalled" before the next build continues. I believe this is a feature and a good thing to do though. This code is safe with existing builds. If something isn't in the new index it simply isn't removed. Since changes to the sstate code trigger a rebuild, after this merges, we can assume the code will start to detect changes from that point onwards. [YOCTO #4102] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/conf/sanity.conf')
0 files changed, 0 insertions, 0 deletions