Patch v4: use idempotent copy of the files instead of simply skipping the code (see discussion under v2 of the patch).
On Tue, Dec 19, 2023 at 2:38 PM Etienne Cordonnier via lists.openembedded.org <[email protected]> wrote: > From: Etienne Cordonnier <[email protected]> > > The function do_symlink_kernsrc is not reentrant in the case where S is > defined > to a non-default value. This causes build-failures e.g. when building > linux-yocto, then updating > poky to a commit which modifies kernel.bbclass, and then building > linux-yocto again. > > Bugzilla: > https://urldefense.proofpoint.com/v2/url?u=https-3A__bugzilla.yoctoproject.org_show-5Fbug.cgi-3Fid-3D15325&d=DwIDAg&c=ncDTmphkJTvjIDPh0hpF_4vCHvabgGkICC2epckfdiw&r=AhkbNonVuMIGRfPx_Qj9TsRih1DULJTKUkSGa66m67E&m=VB1zXAiE9q_CqM9DgoA0BbtloUxpQE_rQ7eqk7HGzBW9KzFu44K9hS1iahsqSuIk&s=9Cr8vwWgUwwGM5oCO07DB4sO9sQpMCdweS1u8CmZ0Qw&e= > > Tested with a recipe "my-custom-linux" which unpacks sources to a custom > ${S} directory > and ran symlink_kernsrc several times: > $ bitbake -f -c symlink_kernsrc my-custom-linux > > Signed-off-by: Etienne Cordonnier <[email protected]> > --- > meta/classes-recipe/kernel.bbclass | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/meta/classes-recipe/kernel.bbclass > b/meta/classes-recipe/kernel.bbclass > index 9ff37f5c38..42c5519f81 100644 > --- a/meta/classes-recipe/kernel.bbclass > +++ b/meta/classes-recipe/kernel.bbclass > @@ -189,11 +189,17 @@ python do_symlink_kernsrc () { > # drop trailing slash, so that os.symlink(kernsrc, s) doesn't > use s as > # directory name and fail > s = s[:-1] > - if d.getVar("EXTERNALSRC"): > + if d.getVar("EXTERNALSRC") and not os.path.islink(s): > # With EXTERNALSRC S will not be wiped so we can symlink to it > os.symlink(s, kernsrc) > else: > import shutil > + # perform idempotent/reentrant copy > + s_copy = s + ".orig" > + if not os.path.isdir(s_copy): > + shutil.copytree(s, s_copy) > + bb.utils.remove(s, recurse=True) > + shutil.copytree(s_copy, s) > shutil.move(s, kernsrc) > os.symlink(kernsrc, s) > } > -- > 2.36.1.vfs.0.0 > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#192731): https://lists.openembedded.org/g/openembedded-core/message/192731 Mute This Topic: https://lists.openembedded.org/mt/103262114/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
