Bug 15528

Summary: python function code contents in pylibs are not part of the task hash
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Alexandre Belloni <alexandre.belloni>
Component: coreAssignee: Richard Purdie <richard.purdie>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: High CC: alexandre.belloni, meta.mr.watcher, meta.watcher, randy.macleod, richard.purdie, tim.orling
Version: unspecified   
Target Milestone: 5.1 M2   
Hardware: x86   
OS: Multiple   
Whiteboard: AB-INT
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Alexandre Belloni 2024-06-27 13:46:02 UTC
RP says:


> I believe this causes the following reproducibility failures:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/117/builds/4998/steps/13/logs/stdio
>
> https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20240627-3tyeozgn/packages/diff-html/
>

This is exposing a problem with the way we're handling python library
functions and their effect or lack of effect on the task hashes.

If you do something like:

bitbake libdrm -S none

then look at

bitbake-dumpsig tmp/stamps/core2-64-poky-linux/libdrm/2.4.120.do_package.sigdata.*

you'll see:

List of dependencies for variable oe.package.process_pkgconfig is ['PACKAGES', 'PKGDEST', 'SHLIBSDIRS', 'SHLIBSWORKDIR']
List of dependencies for variable package_do_pkgconfig is ['oe.package.process_pkgconfig']
Variable package_do_pkgconfig value is     oe.package.process_pkgconfig(pkgfiles, d)
Variable oe.package.process_pkgconfig value is

i.e. it knows the function is being used but isn't caching its value.
That was by design but it does mean when you change funcitonality, you
have to manually tweak the tashhash which I'm not sure is a great idea
when put like this.