On Mon, 2026-05-11 at 11:02 +0100, Paul Barker via lists.openembedded.org wrote: > On Thu, 2026-04-30 at 09:39 +0100, Sam Kent wrote: > > BBLAYERS and BBPATH contain host-specific paths which contaminate the > > hash and result in unnecessary cache misses. > > > > Exclude BBLAYERS and BBPATH from vardeps and instead enumerate the wic > > plugin .py files tracking them via file-checksums. > > > > The hash now only changes when a plugin file is actually added, removed, > > or modified. > > > > Fixes [YOCTO #15662] > > > > Signed-off-by: Sam Kent <[email protected]> > > --- > > meta/classes-recipe/image_types_wic.bbclass | 21 +++++++++++++++++++++ > > 1 file changed, 21 insertions(+) > > > > diff --git a/meta/classes-recipe/image_types_wic.bbclass > > b/meta/classes-recipe/image_types_wic.bbclass > > index ea8c1c9..e6f77e9 100644 > > --- a/meta/classes-recipe/image_types_wic.bbclass > > +++ b/meta/classes-recipe/image_types_wic.bbclass > > @@ -68,6 +68,22 @@ def wks_checksums(files, search_path): > > ret = ret + " " + found + ":True" > > return ret > > > > +def wic_plugin_checksums(bblayers, bbpath): > > + entries = [] > > + seen = set() > > + paths = (bblayers or "").split() + [p for p in (bbpath or > > "").split(":") if p] > > + for path in paths: > > + if path in seen: > > + continue > > + seen.add(path) > > + plugin_dir = os.path.join(path, "lib", "wic", "plugins") > > + if os.path.isdir(plugin_dir): > > + for root, dirs, files in os.walk(plugin_dir): > > + dirs.sort() > > + for f in sorted(files): > > + if f.endswith(".py"): > > + entries.append(os.path.join(root, f) + ":True") > > + return " ".join(entries) > > Re-implementing the wic plugin search logic here is likely to lead to > inconsistencies. For example, wic currently searches for plugins based > on BBLAYERS but not BBPATH, and it looks in both scripts/lib/wic/plugins > and lib/wic/plugins. Even if we align the two implementations now, it > will be very easy for them to drift apart again in the future. > > Could we instead rely on wic to perform the plugin search? There is > currently a `wic list source-plugins` command, we could add a `wic list > imager-plugins` command or perhaps a `wic list plugins` command to list > all plugins. We could then call that here to get the list. > > We should also move this to an event handler so that we don't > unnecessarily re-run this search whenever the bitbake data store is > updated. See image-postinst-intercepts.bbclass for an example of how to > do this.
We need to run this at parse time and since wic is now an external tool, calling it in these contexts is effectively not possible... Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#237612): https://lists.openembedded.org/g/openembedded-core/message/237612 Mute This Topic: https://lists.openembedded.org/mt/119078158/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
