Re: [OE-core] [PATCH v9 4/5] wic: move canned *wks files

Trevor Woerner
2026-04-03T22:23:34Z

On Fri 2026-04-03 @ 10:13:00 PM, Richard Purdie wrote:
> On Fri, 2026-04-03 at 14:35 -0400, Trevor Woerner via lists.openembedded.org wrote:
> > When "wic create ..." is invoked with a bare *wks name (i.e. without the
> > `.wks` extension), wic calls engine.py:find_canned_images() to find the
> > fully qualified *wks file. This function searches every directory formed by:
> >     - permutating all BBLAYERS with `/wic`
> >     - permutating all BBLAYERS with `/scripts/lib/wic/canned-wks`
> >     - checking `<scripts_path>/lib/wic/canned-wks`
> > Where `<scripts_path>` is the directory containing the wic program.
>
> It doesn't. I just looked at the code and it uses BBPATH. That can be
> similar to BBLAYERS but it is different and the commit messages really
> should refer to BBPATH.

In the oe-selftest wic tests, most of the "wic create ..." commands
are called with bare *wks files (i.e. *wks files without the `.wks`
extension). When this happens, as "wic create..." is called, it starts
by running the code found here:

https://git.openembedded.org/openembedded-core/tree/scripts/wic#n206

which calls:

https://git.openembedded.org/openembedded-core/tree/scripts/lib/wic/engine.py#n46

which follows the algorithm that I have described above.

So for the oe-selftests to pass I wanted to move them.

> > When wic is part of oe-core, the last search path succeeds in finding
> > the canned *wks files in `<topdir>/scripts/lib/wic/canned-wks` (since
> > the wic program is found in oe-core's `<topdir>/scripts` directory, and
> > `<topdir>/scripts` is not a BBLAYER).
> >
> > However, once wic is removed from oe-core, this algorithm will not find
> > these bare *wks files in any of the above-mentioned search paths since
> > the oe-core layer will no longer be the home of the wic program, and the
> > canned *wks files are not located in any directory relative to BBLAYERS.
>
> I'm a bit confused by this reasoning. Are you saying that wic will no
> longer search BBPATH (or WKS_SEARCH_PATH)?
>
> > Since these *wks files are specific to oe-core's meta layer, they should
> > stay with this layer. Therefore move the *wks files so they exist in one
> > of the locations searched relative to oe-core/meta's BBLAYERS.
>
> I don't understand why these need to move given WKS_SEARCH_PATH remains
> unchanged, unless wic is going to ignore WKS_SEARCH_PATH going forward?

As an independent tool, these *wks files are rather oe-core-specific,
so I thought they should stay with the oe-core/meta layer, the same way
that, say, raspberry pi-specific *wks files stay in the raspberry pi
layer.

My first thought was to remove them from the standalone wic repository
altogether, but then decided I could keep them as examples.

I thought it would be dangerous to leave them in the wic source
tree where the above algorithm could find them. If I leave them in
src/wic/canned-wks, someone uses the tool and creates a *wks file with a
similar name to one of the canned-wks files, but they have a typo and
the canned one gets used instead of theirs...

...maybe I'm overthinking it?