Re: SRC_URI Directory Change

Richard Purdie

On Fri, 2021-10-15 at 03:03 -0700, Chuck Wolber wrote:
Is there a recommended strategy to get do_fetch to invalidate on directory
path changes in paths pointed to by file:// URLs in SRC_URI?


SRC_URI += "file://src;subdir=${S}"

A file at src/foo/bar/baz is recognized just fine. But then a directory change
to something like src/foo/bar2/baz is not recognized and does not invalidate
any tasks in subsequent builds.

Use case is a recipe that has a fair bit of metadata that is not even remotely
amenable to the typical flat layout expected of a set of patches.


P.S. I attempted to do this with an event handler that was run when
bb.event.RecipePreFinalise is is fired. It would compare directory trees and
set do_fetch[nostamp] = "1" to invalidate the fetcher task. But I got really
spotty behavior. It seems like event handlers are cached like tasks.
I can see why this breaks and it isn't entirely straightforward to fix since
we'd have to add data to the file-checksums entries which are generated by both
OE and Bitbake.

I have a bit of a horrible idea to do this in master-next which does solve the
problem. We probably need a new bitbake selftest testcase before I could think
about merging it though.



Join to automatically receive all group messages.