| Message ID | 20260420133804.443583-2-corentin.guillevic@smile.fr |
|---|---|
| State | Superseded |
| Headers | show |
| Series | [v2] sanity: add check for own-mirrors/SOURCE_MIRROR_URL | expand |
Hi, On Mon Apr 20, 2026 at 3:38 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 v2: > - Use addresult() / oe.utils.inherits() instead of bb.fatal() / inheritlist.split() > > 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..cd2cfa9a62 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') This variable isn't used afterwards, you can remove it > + 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'] Antonin
Hi Antonin, My bad, I forgot to remove it... Will send a v3 shortly Corentin Le lun. 20 avr. 2026 à 15:48, Antonin Godard <antonin.godard@bootlin.com> a écrit : > Hi, > > On Mon Apr 20, 2026 at 3:38 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 v2: > > - Use addresult() / oe.utils.inherits() instead of bb.fatal() / > inheritlist.split() > > > > 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..cd2cfa9a62 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') > > This variable isn't used afterwards, you can remove it > > > + 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'] > > > Antonin >
diff --git a/meta/classes-global/sanity.bbclass b/meta/classes-global/sanity.bbclass index 1a490f8d61..cd2cfa9a62 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 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']