[OE-core] Hash Equivalency - What this means for developer productivity

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Thu Aug 8 23:12:48 UTC 2019


On Thu, 2019-08-08 at 10:18 +0000, Jacob Kroon wrote:
> 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.

I've just seen this with dnf on the autobuilders and an rpm build. The
most interesting bit was:

[pokybuild at centos7-ty-1 temp]$ pwd
/home/pokybuild/yocto-worker/genericx86-lsb/build/build/tmp/work/core2-32-poky-linux/dnf/4.2.2-r0/temp
[pokybuild at centos7-ty-1 temp]$ cat log.task_order 
do_populate_lic_setscene (19174): log.do_populate_lic_setscene.19174
do_fetch (89722): log.do_fetch.89722
do_unpack (93503): log.do_unpack.93503
do_patch (97696): log.do_patch.97696
do_generate_toolchain_file (114754): log.do_generate_toolchain_file.114754
do_populate_sysroot_setscene (107361): log.do_populate_sysroot_setscene.107361
do_package (108444): log.do_package.108444
do_packagedata (28709): log.do_packagedata.28709
do_package_qa (21415): log.do_package_qa.21415
do_package_write_rpm (21400): log.do_package_write_rpm.21400
do_package_write_deb (94084): log.do_package_write_deb.94084
do_package_write_ipk (94059): log.do_package_write_ipk.94059

i.e. do_populate_sysroot_setscene let it skip do_configure, do_compile
and do_install and just run do_package. Which is very clearly badly
wrong!

I'll poke into this further tomorrow but I have some idea of how this 
might happen...

Cheers,

Richard




More information about the Openembedded-core mailing list