]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
externalsrc: Ensure SRCREV is processed before accessing SRC_URI
authorYoann Congal <yoann.congal@smile.fr>
Fri, 15 Dec 2023 21:21:51 +0000 (22:21 +0100)
committerSteve Sakoman <steve@sakoman.com>
Wed, 20 Dec 2023 14:14:55 +0000 (04:14 -1000)
commitf6563cca6c4bf627e904d81fbe5b0b0f2b16a107
tree8a46776e287d67ee5f58b4d5f58786597b9756a0
parentd1bc5fb1d090cf93b9014a050b418499c0209080
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]

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>
meta/classes/externalsrc.bbclass