On Mon, 2022-05-30 at 13:46 +0200, Kristian Amlie wrote: > On 27/05/2022 16:19, richard.pur...@linuxfoundation.org wrote: > > On Fri, 2022-05-27 at 14:07 +0200, Kristian Amlie via > > lists.openembedded.org wrote: > > > Hey all, > > > > > > I have a problem on kirkstone where using the "externalsrc" class wipes > > > out the directory mentioned in EXTERNALSRC, in other words my personal > > > development repository. > > > > > > I have traced it down to the "do_unpack[cleandirs]" variable flag. This > > > flag is supposed to be removed here [1] when using "externalsrc", and > > > indeed I have verified that this is the case. But when the function is > > > about to be executed, the "cleandirs" variable flag has somehow been > > > restored [2]. This causes the directory to be removed after all, despite > > > the attempt at avoiding it. > > > > > > At this point I'm a bit lost, I don't really know what happens between > > > those two steps. Does anyone have any idea what might be happening? It > > > sounds like a pretty serious bug to me, wiping out things in the home > > > directory of the user. > > > > > > [1] > > > https://git.yoctoproject.org/poky/tree/meta/classes/externalsrc.bbclass?h=kirkstone#n93 > > > [2] > > > https://git.yoctoproject.org/poky/tree/bitbake/lib/bb/build.py?h=kirkstone#n191 > > > > That certainly isn't supposed to happen. As you say, the code is > > supposed to disable that and isn't behaving as intended. It is hard to > > say more though. > > > > Is there a test case you can share with us so we can reproduce the > > issue? Without some way to replicate of more details of the environment > > this occurred in, debugging it will be very hard. > > Here's a way to reproduce it: > > 1. Take any recipe, let's say recipes-core/busybox/busybox_1.35.0.bb > > 2. Add "inherit go" to that recipe. > > 3. Add 'INHERIT += "externalsrc"' to local.conf. > > 4. Add 'EXTERNALSRC:pn-busybox = "/tmp/busybox"' to local.conf. > > 5. Run "mkdir -p /tmp/busybox/keep". > > 6. Run "bitbake -fc unpack busybox". > > 7. Afterwards, observe that "/tmp/busybox/keep" has vanished. > > The key part here appears to be the "EXPORT_FUNCTIONS" statement inside > go.bbclass. If "do_unpack" is removed from there, then the mechanism > works correctly again.
Thanks, a reproducer helps a lot. This was almost certainly a result of: https://git.yoctoproject.org/poky/commit/?id=73fa855f6af5ef9c3a78656aa56f09d213601be2 Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#166282): https://lists.openembedded.org/g/openembedded-core/message/166282 Mute This Topic: https://lists.openembedded.org/mt/91374926/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-