summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnuj Mittal <anuj.mittal@intel.com>2022-03-24 13:58:09 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-03-24 11:05:16 +0000
commitd8cd104e66e7a616f6cf6be67d3b36a798be4c7b (patch)
treea1d2981b792a3be6d7c708891150a35e0e71bda1
parentd3f32d158427725385011ba146e1415f658a8651 (diff)
downloadpoky-d8cd104e66e7a616f6cf6be67d3b36a798be4c7b.tar.gz
crate-fetch: fix setscene failures
In sstate.bbclass, when fetching an sstate object we have: pstaging_fetch(sstatefetch, d): [...] localdata.setVar('SRCPV', d.getVar('SRCPV')) i.e. some code which expands SRCPV before it changes SRC_URI for the sstate tarball fetching. In crate-fetch.bbclass we have: def import_crate(d): import crate if not getattr(crate, 'imported', False): bb.fetch2.methods.append(crate.Crate()) crate.imported = True def crate_get_srcrev(d): import_crate(d) return bb.fetch2.get_srcrev(d) SRCPV = "${@crate_get_srcrev(d)}" and so an "import crate" occurs when pstating_fetch() is called. That succeeds and all is well but the bb.fetch2.get_srcrev(d) call fails since there is no url in SRC_URI which supports srcrev() resulting in: | WARNING: rust-cross-core2-32-musl-1.54.0-r0 do_deploy_source_date_epoch_setscene: ExpansionError('SRCPV', '${@crate_get_srcrev(d)}', FetchError('SRCREV was used yet no valid SCM was found in SRC_URI', None)) | WARNING: Logfile for failed setscene task is /home/pokybuild/yocto-worker/musl-qemux86/build/build/tmp/work/x86_64-linux/rust-cross-core2-32-musl/1.54.0-r0/temp/log.do_deploy_source_date_epoch_setscene.3133099 | WARNING: Setscene task (/home/pokybuild/yocto-worker/musl-qemux86/build/meta/recipes-devtools/rust/rust-cross_1.54.0.bb:do_deploy_source_date_epoch_setscene) failed with exit code '1' - real task will be run instead [YOCTO #14680] (From OE-Core rev: 73b6c53ceea30a3f81c6de88c5bea452fe1c0018) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/classes/crate-fetch.bbclass3
1 files changed, 3 insertions, 0 deletions
diff --git a/meta/classes/crate-fetch.bbclass b/meta/classes/crate-fetch.bbclass
index a7fa22b2a0..04d76c0de8 100644
--- a/meta/classes/crate-fetch.bbclass
+++ b/meta/classes/crate-fetch.bbclass
@@ -22,6 +22,9 @@ crate_import_handler[eventmask] = "bb.event.RecipePreFinalise"
22 22
23def crate_get_srcrev(d): 23def crate_get_srcrev(d):
24 import_crate(d) 24 import_crate(d)
25 srcuri = d.getVar("SRC_URI")
26 if "crate://" not in srcuri and "git://" not in srcuri:
27 return "Invalid"
25 return bb.fetch2.get_srcrev(d) 28 return bb.fetch2.get_srcrev(d)
26 29
27# Override SRCPV to make sure it imports the fetcher first 30# Override SRCPV to make sure it imports the fetcher first