| Message ID | 20260420143154.452247-2-corentin.guillevic@smile.fr |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [v3] sanity: add check for own-mirrors/SOURCE_MIRROR_URL | expand |
On Mon Apr 20, 2026 at 4:31 PM CEST, 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> > --- > > Notes: > Changes in v3: > - Unused variable removed. > > meta/classes-global/sanity.bbclass | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass > index 1a490f8d61..3142ff61f2 100644 > --- a/meta/classes-global/sanity.bbclass > +++ b/meta/classes-global/sanity.bbclass > @@ -984,6 +984,10 @@ 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 > + if oe.utils.inherits(d, 'own-mirrors') and not d.getVar('SOURCE_MIRROR_URL'): > + status.addresult("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'] Reviewed-by: Antonin Godard <antonin.godard@bootlin.com> This should be added to https://git.yoctoproject.org/yocto-docs/tree/documentation/ref-manual/qa-checks.rst if merged and if you have some time and can send a patch to docs@lists.yoctoproject.org :) Thanks, Antonin
Hi Antonin, Sure, but my test has been added to the sanity class. The https://git.yoctoproject.org/yocto-docs/tree/documentation/ref-manual/qa-checks.rst doc is related to the insane class. Is there a document relating to the sanity class in which I can document the new test? Corentin Le lun. 20 avr. 2026 à 16:42, Antonin Godard <antonin.godard@bootlin.com> a écrit : > On Mon Apr 20, 2026 at 4:31 PM CEST, 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> > > --- > > > > Notes: > > Changes in v3: > > - Unused variable removed. > > > > meta/classes-global/sanity.bbclass | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/meta/classes-global/sanity.bbclass > b/meta/classes-global/sanity.bbclass > > index 1a490f8d61..3142ff61f2 100644 > > --- a/meta/classes-global/sanity.bbclass > > +++ b/meta/classes-global/sanity.bbclass > > @@ -984,6 +984,10 @@ 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 > > + if oe.utils.inherits(d, 'own-mirrors') and not > d.getVar('SOURCE_MIRROR_URL'): > > + status.addresult("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'] > > Reviewed-by: Antonin Godard <antonin.godard@bootlin.com> > > This should be added to > > https://git.yoctoproject.org/yocto-docs/tree/documentation/ref-manual/qa-checks.rst > if merged and if you have some time and can send a patch to > docs@lists.yoctoproject.org :) > > Thanks, > Antonin >
Hi, On Wed Apr 22, 2026 at 11:32 AM CEST, Corentin Guillevic via lists.openembedded.org wrote: > Hi Antonin, > > Sure, but my test has been added to the sanity class. The > https://git.yoctoproject.org/yocto-docs/tree/documentation/ref-manual/qa-checks.rst > doc > is related to the insane class. Is there a document relating to the sanity > class in which I can document the new test? Ah you're right sorry, I keep mixing them up. Ignore my comment then, there's no docs about all sanity.bbclass checks I think. Thanks, Antonin
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass index 1a490f8d61..3142ff61f2 100644 --- a/meta/classes-global/sanity.bbclass +++ b/meta/classes-global/sanity.bbclass @@ -984,6 +984,10 @@ 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 + if oe.utils.inherits(d, 'own-mirrors') and not d.getVar('SOURCE_MIRROR_URL'): + status.addresult("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']