Bug 15528 - python function code contents in pylibs are not part of the task hash
Summary: python function code contents in pylibs are not part of the task hash
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: core (show other bugs)
Version: unspecified
Hardware: x86 Multiple
: High normal
Target Milestone: 5.1 M2
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard: AB-INT
Depends on:
Blocks:
 
Reported: 2024-06-27 13:46 UTC by Alexandre Belloni
Modified: 2024-07-11 15:12 UTC (History)
6 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.