[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