diff options
author | Yoann Congal <yoann.congal@smile.fr> | 2023-12-15 22:21:51 +0100 |
---|---|---|
committer | Steve Sakoman <steve@sakoman.com> | 2023-12-22 16:36:55 -1000 |
commit | 19c1f963a998575d0e6ee678fa7fb62ad2a0cd64 (patch) | |
tree | 660e92ee93e80fb25728d566e45bff6957db48b3 | |
parent | 1b0b487dccd1fe7cac96a2094e8de4690ba95f7f (diff) | |
download | poky-19c1f963a998575d0e6ee678fa7fb62ad2a0cd64.tar.gz |
externalsrc: Ensure SRCREV is processed before accessing SRC_URI
When SRCREV is used, call bb.fetch.get_srcrev() before accessing
SRC_URI. Without this new bb.fetch.get_srcrev() call, SRC_URI might be
accessed before SRCREV had a chance to be processed.
In master, this is fixed by https://git.yoctoproject.org/poky/commit/?id=62afa02d01794376efab75623f42e7e08af08526
However, this commit is not suited for backport since it is quite invasive.
The part of the commit that fix the bug is:
--- a/meta/classes/externalsrc.bbclass
+++ b/meta/classes/externalsrc.bbclass
@@ -63,6 +63,7 @@ python () {
else:
d.setVar('B', '${WORKDIR}/${BPN}-${PV}')
+ bb.fetch.get_hashvalue(d)
local_srcuri = []
fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d)
for url in fetch.urls:
NB: bb.fetch.get_hashvalue() does not exist in kirkstone but is
equivalent to bb.fetch.get_srcrev().
Fixes [YOCTO #14918]
(From OE-Core rev: f6563cca6c4bf627e904d81fbe5b0b0f2b16a107)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Suggested-by: Chris Wyse <chris.wyse@wysechoice.net>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r-- | meta/classes/externalsrc.bbclass | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index 97d7379d9f..a209730240 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass | |||
@@ -62,6 +62,10 @@ python () { | |||
62 | else: | 62 | else: |
63 | d.setVar('B', '${WORKDIR}/${BPN}-${PV}') | 63 | d.setVar('B', '${WORKDIR}/${BPN}-${PV}') |
64 | 64 | ||
65 | if d.getVar('SRCREV', "INVALID") != "INVALID": | ||
66 | # Ensure SRCREV has been processed before accessing SRC_URI | ||
67 | bb.fetch.get_srcrev(d) | ||
68 | |||
65 | local_srcuri = [] | 69 | local_srcuri = [] |
66 | fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d) | 70 | fetch = bb.fetch2.Fetch((d.getVar('SRC_URI') or '').split(), d) |
67 | for url in fetch.urls: | 71 | for url in fetch.urls: |