On Mon, 2022-09-26 at 04:46 -0700, Andriy Danylovskyy wrote: > On 26/09/2022 12:23, Richard Purdie wrote: > > On Mon, 2022-09-26 at 11:06 +0200, Andriy Danylovskyy wrote: > > > This will move the quilt cache from the default location '$S/.pc' > > > to > > > '$S/patches/.pc', to ensure source invalidation always wipes it > > > out, > > > together with all patches. > > > > > > Recipes which set $S to $WORKDIR are susceptible to a weird > > > issue: > > There are a number of problems with recipes which use S = WORKDIR > > unfortunately. Another is that rerunning fetch/unpack doesn't clean > > up > > files properly and can lead to build corruption. > > > > I'm leaning towards making S == WORKDIR a warning and migrating > > recipes > > to always use a subdir. That isn't entirely straight forward but > > probably the only way to solve all the issues. > Anything that doesn't let it "pass" silently would be already a big > improvement. Although deprecation with a warning sounds like a few > more years to go into all affected projects.
It wouldn't be a quick fix for the stable releases certainly but it would hopefully fairly quickly filter down through from master if we did start showing warnings. I have the warnings patch running locally and have had for a while. Converting recipes isn't as easy as you'd think though so I'm try trying to work out a better way to handle that. We may also have to go a step further and fetch into a subdir in order to address all the issues so I haven't really found a good answer to all the problems that I'm happy to promote and suggest we change to. > > > > > > > if > > > a source file is patched by quilt (a .bbappend adds a patch), > > > updates > > > to it are ignored by incremental builds, the first obsolete > > > version is > > > picked again and again. This is because quilt keeps its own cache > > > in > > > '$S/.pc', and this one survives source invalidation on do_unpack. > > > > > > This is a follow-up for a56fb90dc380 and 42a513489dc6 > > > > > > Signed-off-by: Andriy Danylovskyy > > > <[email protected]> > > > --- > > > meta/classes-global/patch.bbclass | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/meta/classes-global/patch.bbclass b/meta/classes- > > > global/patch.bbclass > > > index e3157c7b18..6fcac18d9c 100644 > > > --- a/meta/classes-global/patch.bbclass > > > +++ b/meta/classes-global/patch.bbclass > > > @@ -5,6 +5,9 @@ > > > # Point to an empty file so any user's custom settings don't > > > break things > > > QUILTRCFILE ?= "${STAGING_ETCDIR_NATIVE}/quiltrc" > > > > > > +# Move quilt's cache to ensure it always gets removed together > > > with "patches" > > > +export QUILT_PC = "${S}/patches/.pc" > > > + > > This would break all other commandline use of quilt without the > > right > > environment. Sadly that is a usecase I personally use quite heavily > > too > > :/. > > > > Cheers, > > > > Richard > I can't think of any patching in a recipe workdir, outside of > do_patch and the devtool, so this wasn't taken into account. But what > do I know about other people's workflows... I'm old school and have used quilt for patching kernels for a couple of decades and have used it before devtool (or even git) existed! There are probably better ways now but quilt is muscle memory. > Then another (dirtier?) option would be to patch quilt-native > itself, setting QUILT_PC to the relative ./patches/.pc Sadly it doesn't help my use case as I'm used to changing to some random WORKDIR and using the host's copy of quilt to save messing with PATH :/. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#171063): https://lists.openembedded.org/g/openembedded-core/message/171063 Mute This Topic: https://lists.openembedded.org/mt/93922956/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
