[poky] sstate info

McClintock Matthew-B29882 B29882 at freescale.com
Thu Jan 12 08:53:40 PST 2012


First off, what version of Yocto are you running? I've made a lot of
fixes post 1.1 release (others have made some as well ;)), and I
believe lots of these fixes will be in the 1.1.1 release. They should
all be in master, although I've not tested master sstate-cache in a
while now.

On Thu, Jan 12, 2012 at 9:33 AM, Gary Thomas <gary at mlbassoc.com> wrote:
> I worked this down to the do_patch in pseudo-native:
> $ bitbake-diffsigs
> p60_poky/tmp/stamps/i686-linux/pseudo-native-1.2-r4.do_patch.sigdata.6e97a41d825568db298fdc9dbaed563c
> p60_test_pass1/tmp/stamps/i686-linux/pseudo-native-1.2-r4.do_patch.sigdata.a0d4e99625c211f4f1d793213014ac07
> basehash changed from f5994d735ee2b909b72ee811364befc1 to
> 564be8db4146afa5fc3579dc4c1618d3
> Variable DATE value changed from 20120110 to 20120111
> Hash for dependent task quilt-native_0.50.bb.do_populate_sysroot changed
> from 9307106f3c5dfd49d953e206cb1b6da5 to 24151a370083d625b84a2afb77955021
>

This is telling you that you need to look at the quilt-native task
now. Nothing is wrong about the signature for psuedo-natve.

> Why is DATE as a variable important?
> Why is it not ignored by this statement in ./meta/classes/patch.bbclass?
>   patch_do_patch[vardepsexclude] = "DATE SRCDATE PATCHRESOLVE"

DATE is not important, that is why we are explicitly telling the
signature to ignore this variable.

> As is, it seems that the sstate cache is only good on the day it
> was made :-(

This is possible, but you need to check the upstream task that
changed. Since psuedo-native depends on quilt-native it's getting a
new signature since something that changed in quilt-native might
effect psuedo-native.

> Here's what I tried yesterday:
>  * Create a new build, e.g.
>    % . /local/poky/oe-init-build-env /local/test_pass1
>    -- adjust local.conf to match desired target
>    % bitbake core-image-minimal
>  * Create a new build, using the previous one's sstate-cache
>    % . /local/poky/oe-init-build-env /local/test_pass2
>    -- adjust local.conf to match desired target
>    -- enable sstate cache via these lines in local.conf:
>         SSTATE_MIRRORS ?= "\
>         file://.* file:///local/test_pass1/sstate-cache/"
>    % bitbake core-image-minimal
>
> This all went to plan - the sstate cache was reused for every package except
> one.  For some reason, dbus-1 had to be rebuilt.

This should work. I'm building on one machine and reusing on others
including native cache. I'm doing thing on something close to what
1.1.1 will look like.

> Today, I tried it again, just like the second step.  Low and behold,
> virtually
> none of the sstate packages were reused :-(  This seems totally broken to me
> and has been filed as bug #1896

-M



More information about the poky mailing list