I thought I sent a V2 using normpath() which works a lot better. Looks like I forgot...
On 27 April 2018 at 17:34, Peter Kjellerstedt <[email protected]> wrote: >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of >> Burton, Ross >> Sent: den 26 april 2018 12:46 >> To: OE-core <[email protected]> >> Subject: Re: [OE-core] [PATCH] base: improve do_unpack[cleandirs] logic >> >> Retracting this, doesn't work on a clean build dir. >> >> Ross >> >> On 25 April 2018 at 14:58, Ross Burton <[email protected]> wrote: >> > If a recipe sets S to ${WORKDIR}/ then the S != WORKDIR test doesn't >> work as >> > expected. Use os.path.samefile() instead of string comparisons to do >> the right >> > thing. >> > >> > Signed-off-by: Ross Burton <[email protected]> >> > --- >> > meta/classes/base.bbclass | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass >> > index bb1f4b75336..7ddf70414a1 100644 >> > --- a/meta/classes/base.bbclass >> > +++ b/meta/classes/base.bbclass >> > @@ -152,7 +152,7 @@ python base_do_fetch() { >> > addtask unpack after do_fetch >> > do_unpack[dirs] = "${WORKDIR}" >> > >> > -do_unpack[cleandirs] = "${@d.getVar('S') if d.getVar('S') != >> > d.getVar('WORKDIR') else os.path.join('${S}', 'patches')}" > > This should work even if the paths don't exist: > > do_unpack[cleandirs] = "${@d.getVar('S') if os.path.realpath(d.getVar('S')) > != os.path.realpath(d.getVar('WORKDIR')) else os.path.join('${S}', > 'patches')}" > >> > +do_unpack[cleandirs] = "${@os.path.join('${S}', 'patches') if >> > os.path.samefile(d.getVar('S'), d.getVar('WORKDIR')) else d.getVar('S')}" >> > >> > python base_do_unpack() { >> > src_uri = (d.getVar('SRC_URI') or "").split() >> > -- >> > 2.11.0 > > //Peter > -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
