| Message ID | 20260417160925.339720-1-corentin.guillevic@smile.fr |
|---|---|
| State | Changes Requested |
| Headers | show |
| Series | sanity: add check for own-mirrors/SOURCE_MIRROR_URL | expand |
Hi Corentin, On 4/17/26 6:09 PM, Corentin Guillevic via lists.openembedded.org wrote: > From: Corentin Guillevic <corentin.guillevic@smile.fr> > > The SOURCE_MIRROR_URL variable belongs to the own-mirrors class. However, the > user may forget to define it. This will cause the class to inject incorrect > content into PREMIRRORS, resulting in the following error: > > ERROR: gettext-minimal-native-1.0-r0 do_fetch: Bitbake Fetcher Error: MalformedUrl('${SOURCE_MIRROR_URL}') > ERROR: Logfile of failure stored in: /path/to/tmp/work/x86_64-linux/gettext-minimal-native/1.0/temp/log.do_fetch.258066 > ERROR: Task (/path/to/layers/poky/meta/recipes-core/gettext/gettext-minimal-native_1.0.bb:do_fetch) failed with exit code '1' > > Add a check to the sanity class, to detect this case and raise an error. > > Signed-off-by: Corentin Guillevic <corentin.guillevic@smile.fr> > --- > meta/classes-global/sanity.bbclass | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass > index 1a490f8d61..b24cec7f2c 100644 > --- a/meta/classes-global/sanity.bbclass > +++ b/meta/classes-global/sanity.bbclass > @@ -984,6 +984,11 @@ def check_sanity_everybuild(status, d): > "Please set TMPDIR to a clean path with no trailing slash or " > "consecutive slashes (e.g. %s).\n" % (tmpdir, os.path.normpath(tmpdir))) > > + # Check whether the SOURCE_MIRROR_URL variable, belonging to the 'own-mirrors' class, is defined > + inheritlist = d.getVar('INHERIT') > + if "own-mirrors" in inheritlist.split(" ") and not d.getVar('SOURCE_MIRROR_URL'): We have oe.utils.inherits(d, <classes>), I'm wondering if we can use that instead? > + bb.fatal("own-mirrors is enabled, but SOURCE_MIRROR_URL is not defined") We don't have any bb.fatal in that function, only bb.warn, status.addresult() and raise_sanity_error, so we probably should use one of those. Cheers, Quentin
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass index 1a490f8d61..b24cec7f2c 100644 --- a/meta/classes-global/sanity.bbclass +++ b/meta/classes-global/sanity.bbclass @@ -984,6 +984,11 @@ def check_sanity_everybuild(status, d): "Please set TMPDIR to a clean path with no trailing slash or " "consecutive slashes (e.g. %s).\n" % (tmpdir, os.path.normpath(tmpdir))) + # Check whether the SOURCE_MIRROR_URL variable, belonging to the 'own-mirrors' class, is defined + inheritlist = d.getVar('INHERIT') + if "own-mirrors" in inheritlist.split(" ") and not d.getVar('SOURCE_MIRROR_URL'): + bb.fatal("own-mirrors is enabled, but SOURCE_MIRROR_URL is not defined") + # Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS import re mirror_vars = ['MIRRORS', 'PREMIRRORS', 'SSTATE_MIRRORS']