Re: [docs] [PATCH v4] doc: bitbake-user-manual-metadata: document inherit_defer limitations
"Antonin Godard" <[email protected]> Fri, 22 May 2026 17:39:34 +0200
| Newsgroups | org.openembedded.lists.bitbake-devel,org.yoctoproject.lists.docs |
|---|---|
| Message-ID | <[email protected]> |
On Sat May 16, 2026 at 9:11 PM CEST, Dawid Bijak via lists.yoctoproject.org wrote: > Add a warning explaining that anonymous Python functions cannot be > used to influence inherit_defer, since they run after the directive has > already been resolved. > > Also rename VARNAME to VARIABLE for consistency throughout the > documentation. > > Suggested-by: Quentin Schulz <[email protected]> > Signed-off-by: Dawid Bijak <[email protected]> > --- > .../bitbake-user-manual-metadata.rst | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > diff --git a/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst b/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst > index 0c7c3ff99..134cf8ff1 100644 > --- a/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst > +++ b/doc/bitbake-user-manual/bitbake-user-manual-metadata.rst > @@ -827,17 +827,17 @@ the variable after the line is parsed will take effect. With the :ref:`inherit > > Here is an example:: > > - inherit_defer ${VARNAME} > + inherit_defer ${VARIABLE} > > One way to achieve a conditional inherit in this case is to use > overrides:: > > - VARNAME = "" > - VARNAME:someoverride = "myclass" > + VARIABLE = "" > + VARIABLE:someoverride = "myclass" > > :ref:`inherit_defer <ref-bitbake-user-manual-metadata-inherit-defer>` > -defers the evaluation of ``${VARNAME}`` until the end of > -parsing. Assuming ``someoverride`` is in :term:`OVERRIDES`, ``${VARNAME}`` > +defers the evaluation of ``${VARIABLE}`` until the end of > +parsing. Assuming ``someoverride`` is in :term:`OVERRIDES`, ``${VARIABLE}`` > expands to ``myclass``, which is then inherited. > > Alternatively, you could use an inline Python expression in the > @@ -853,6 +853,14 @@ In all cases, if the expression evaluates to an > empty string, the statement does not trigger a syntax error because it > becomes a no-op. > > +.. warning:: > + > + Setting or modifying variables within an :ref:`anonymous Python function > + <bitbake-user-manual/bitbake-user-manual-metadata:Anonymous Python Functions>` > + will have no impact on the value of that variable in an > + :ref:`inherit_defer <ref-bitbake-user-manual-metadata-inherit-defer>` directive > + as the function runs after the directive has been resolved. > + > See also :term:`BB_DEFER_BBCLASSES` for automatically promoting classes > ``inherit`` calls to ``inherit_defer``. > Reviewed-by: Antonin Godard <[email protected]> Thanks! Antonin