All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] glib-2.0: replace THISDIR instead of COREBASE in find_meson_cross_files --cross-file paths
@ 2021-02-25 17:45 Martin Jansa
  2021-03-02 17:14 ` [OE-core] " Anibal Limon
  0 siblings, 1 reply; 9+ messages in thread
From: Martin Jansa @ 2021-02-25 17:45 UTC (permalink / raw)
  To: openembedded-core; +Cc: Martin Jansa

* 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.Jansa@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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-03-02 20:55 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-25 17:45 [PATCH] glib-2.0: replace THISDIR instead of COREBASE in find_meson_cross_files --cross-file paths Martin Jansa
2021-03-02 17:14 ` [OE-core] " Anibal Limon
2021-03-02 17:32   ` Martin Jansa
2021-03-02 18:02     ` Geoff Parker
2021-03-02 19:00     ` [OE-core] " Anibal Limon
2021-03-02 20:55       ` Geoff Parker
     [not found]   ` <166896E0294231B3.17091@lists.openembedded.org>
2021-03-02 17:38     ` Martin Jansa
2021-03-02 17:43   ` Geoff Parker
2021-03-02 17:50     ` Martin Jansa

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.