I guess this relative path comes from OEROOT setting in: https://github.com/96boards/oe-rpb-manifest/blob/master/conf/bblayers.conf#L4
maybe you can call os.path.normpath there as COREBASE is doing in: meta/conf/layer.conf:COREBASE = '${@os.path.normpath("${LAYERDIR}/../")}' That should help with both sstate reuse as well as this error. On Tue, Mar 2, 2021 at 6:33 PM Martin Jansa via lists.openembedded.org <Martin.Jansa=gmail....@lists.openembedded.org> wrote: > what's the value of COREBASE in that build? Wasn't full path already in > your sstate signatures - in that case this change didn't break your builds, > just highlighted an issue in your builds which was already there. > > We can fix that by calling os.path.normpath on THISDIR, but I would like > to know the reason why THISDIR is set this way for you (also to reproduce > it locally to verify the fix). > > > > > On Tue, Mar 2, 2021 at 6:14 PM Anibal Limon <anibal.li...@linaro.org> > wrote: > >> This breaks our builds, >> >> ... >> ERROR: Cannot add >> '/home/builds/oe-rpb-master/layers/openembedded-core/meta/recipes-core/glib-2.0/files/meson.cross.d/common' >> to --cross-file, because it's not relative to THISDIR >> '/home/builds/oe-rpb-master/build-410c-2/conf/../../layers/openembedded-core/meta/recipes-core/glib-2.0' >> and sstate signature would contain this full path >> ... >> >> In, >> >> >> https://ci.linaro.org/job/lt-qcom-openembedded-rpb-master/DISTRO=rpb,MACHINE=dragonboard-410c,label=docker-buster-amd64/470/console >> >> Regards, >> Anibal >> >> On Thu, 25 Feb 2021 at 11:45, Martin Jansa <martin.ja...@gmail.com> >> wrote: >> >>> * COREBASE works correctly only as long as this recipe is inside of >>> COREBASE directory and leaves the full absolute paths if you copy >>> this recipe into your own layer (e.g. to backport newer version) >>> >>> * use THISDIR as all FILESPATH should be relative to that, unless >>> there is a .bbappend not only extending FILESPATH, but also adding >>> meson.cross.d files there (at which point it also didn't work with >>> COREBASE replacements as well already) - show an ERROR in such case, >>> I don't think it's common scenario to spend more time to support that. >>> >>> Signed-off-by: Martin Jansa <martin.ja...@gmail.com> >>> --- >>> meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb | 8 ++++++-- >>> 1 file changed, 6 insertions(+), 2 deletions(-) >>> >>> diff --git a/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb >>> b/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb >>> index 15e9dbaf6f..882a89da7a 100644 >>> --- a/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb >>> +++ b/meta/recipes-core/glib-2.0/glib-2.0_2.66.7.bb >>> @@ -31,7 +31,7 @@ def find_meson_cross_files(d): >>> if bb.data.inherits_class('native', d): >>> return "" >>> >>> - corebase = d.getVar("COREBASE") >>> + thisdir = d.getVar("THISDIR") >>> import collections >>> sitedata = siteinfo_data(d) >>> # filename -> found >>> @@ -39,7 +39,11 @@ def find_meson_cross_files(d): >>> for path in d.getVar("FILESPATH").split(":"): >>> for element in sitedata: >>> filename = os.path.normpath(os.path.join(path, >>> "meson.cross.d", element)) >>> - files[filename.replace(corebase, "${COREBASE}")] = >>> os.path.exists(filename) >>> + sanitized_path = filename.replace(thisdir, "${THISDIR}") >>> + if sanitized_path == filename: >>> + bb.error("Cannot add '%s' to --cross-file, because it's >>> not relative to THISDIR '%s' and sstate signature would contain this full >>> path" % (filename, thisdir)) >>> + continue >>> + files[filename.replace(thisdir, "${THISDIR}")] = >>> os.path.exists(filename) >>> >>> items = ["--cross-file=" + k for k,v in files.items() if v] >>> d.appendVar("EXTRA_OEMESON", " " + " ".join(items)) >>> -- >>> 2.27.0 >>> >>> >>> >>> >>> > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#148861): https://lists.openembedded.org/g/openembedded-core/message/148861 Mute This Topic: https://lists.openembedded.org/mt/80907807/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-