[OE-core] Hash Equivalency - What this means for developer productivity
Jacob Kroon
jacob.kroon at mikrodidakt.se
Thu Aug 8 10:18:20 UTC 2019
Hi,
On 8/2/19 5:53 PM, Richard Purdie wrote:
> This has been talked about in a lot of the project meetings but I
> wanted to ensure its on the mailing list too.
>
> master-next (and hopefully soon, master) now contain patches which
> enable "hash equivalency" support in runqueue in bitbake. That doesn't
> sound so interesting until I explain what this means.
>
<snip>
>
> I think this should be a "big deal" for many developers, reducing
> unneded rebuilds and hence speeding up development.
>
> As with any new feature, there are likely going to be some some
> teething issues but I'm very opitmistic about some of the benefits this
> should bring!
>
Very exciting see this feature being worked on! I have high hopes it is
gonna reduce my build times.
I just updated to latest bitbake/oe-core master and started an
incremental build of my distro with hash equivalency enabled, and ran
into one problem:
ERROR: core-image-minimal-1.0-r0 do_rootfs: Unable to install packages.
<snip>
Collected errors:
* Solver encountered 2 problem(s):
* Problem 1/2:
* - nothing provides eudev needed by <snip>
<snip>
* Problem 2/2:
* - nothing provides udev needed by <snip>
<snip>
Checking the build log I see:
...
NOTE: Task
/home/jkroon/Projects/<snip>/build/../openembedded-core/meta/recipes-core/glib-2.0/glib-2.0_2.60.6.bb:do_populate_sysroot
unihash changed to
b88f1b01421cd7501b290888b783b057b92a7fb7a20f37fd08a56f2eaf8c56ed
NOTE: Setscene task
/home/jkroon/Projects/<snip>/build/../openembedded-core/meta/recipes-core/udev/eudev_3.2.8.bb:do_populate_sysroot
now valid and being rerun
...
NOTE: Setscene tasks completed
NOTE: Task
/home/jkroon/Projects/<snip>/build/../openembedded-core/meta/recipes-core/udev/eudev_3.2.8.bb:do_package_qa
unihash changed to
607d4eb7859bf6c725add7592a2c8bd64464afb259264281cbf2a3ad4e17e8d2
...
NOTE: Task
/home/jkroon/Projects/<snip>/build/../openembedded-core/meta/recipes-core/glib-2.0/glib-2.0_2.60.6.bb:do_package_qa
unihash changed to
89413c6afc25b390471f0cebb6193a226e20a744ac86b473c0b11f7432b5165a
...
NOTE: Setscene tasks completed
...
Checking for built ipk packages I see:
[jkroon at manatarms-greyskull <snip>]$ find
/tmp/ramdisk/<snip>/deploy/ipk/|grep eudev
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-dbg_3.2.8-r0_i686.ipk
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-dev_3.2.8-r0_i686.ipk
If I then do:
bitbake -c cleansstate eudev
bitbake eudev
then I get:
[jkroon at manatarms-greyskull <snip>]$ find
/tmp/ramdisk/<snip>/deploy/ipk/|grep eudev
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-dev_3.2.8-r0_i686.ipk
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-dbg_3.2.8-r0_i686.ipk
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-hwdb_3.2.8-r0_i686.ipk
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev_3.2.8-r0_i686.ipk
/tmp/ramdisk/<snip>/deploy/ipk/i686/eudev-src_3.2.8-r0_i686.ipk
and then I can complete building the image.
I did not have hash equivalency enabled in the beginning, I've just
recently enabled it, without wiping tmp-build/ or sstate in between.
/Jacob
[mikrodidakt]
Jacob Kroon • +46 46325040
mikrodidakt.se • Skiffervägen 48, SE-224 78 LUND, Sweden
Consultans since 1980 • SW, HW, Embedded Systems, Linux
More information about the Openembedded-core
mailing list