[OE-core] [PATCH 3/4] default-distrovars: Add empty weak definition for DISTRO variable

Denys Dmytriyenko denis at denix.org
Thu Mar 22 01:23:58 UTC 2012


On Mon, Mar 05, 2012 at 01:36:05PM -0800, Saul Wold wrote:
> On 02/24/2012 09:05 AM, Khem Raj wrote:
> >On Fri, Feb 24, 2012 at 8:21 AM, Richard Purdie
> ><richard.purdie at linuxfoundation.org>  wrote:
> >>On Thu, 2012-02-23 at 19:33 -0800, Khem Raj wrote:
> >>>Signed-off-by: Khem Raj<raj.khem at gmail.com>
> >>>---
> >>>  meta/conf/distro/include/default-distrovars.inc |    7 +++++++
> >>>  1 files changed, 7 insertions(+), 0 deletions(-)
> >>>
> >>>diff --git a/meta/conf/distro/include/default-distrovars.inc b/meta/conf/distro/include/default-distrovars.inc
> >>>index 16b3108..dba204e 100644
> >>>--- a/meta/conf/distro/include/default-distrovars.inc
> >>>+++ b/meta/conf/distro/include/default-distrovars.inc
> >>>@@ -41,6 +41,13 @@ NO32LIBS ??= "1"
> >>>
> >>>  # Default to emitting logfiles if a build fails.
> >>>  BBINCLUDELOGS ??= "yes"
> >>>+
> >>>+# dummy distro related variables
> >>>+# they should be overridden by real distros
> >>>+# these fallbacks only serve the purpose of
> >>>+# oe-core standalone testability
> >>>+
> >>>+DISTRO ??= ""
> >>>  SDK_VERSION ??= "oe-core.0"
> >>>  DISTRO_VERSION ??= "oe-core.0"
> >>
> >>Why do we need this? The commit message tells me what you're doing but
> >>not why. I'm really getting frustrated with one line commit messages
> >>with no details.
> >>
> >>I don't think we should need this either, I'm not sure I like the
> >>change. The whole idea was OE-Core could run "distroless".
> >>
> >
> >There is an error case I dont remeber how I obtained that where it
> >prints bogus value if DISTRO is not
> >defined at all but and empty DISTRO var is distroless in essence anyway IMO
> >
> Khem,
> 
> Please let us know what the reproducer for this is.  Once we have a
> reproducer we can look into the issue.

Richard, Saul, Khem,

I was able to track this issue down (at least the one I was having). DISTRO is 
used in OVERRIDES unconditionally:

OVERRIDES = "${TARGET_OS}:${TRANSLATED_TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:forcevariable"
DISTROOVERRIDES ?= "${DISTRO}"

If DISTRO is not set, FILESPATH becomes littered with directories like 
files/${DISTRO} etc. It won't bomb until you try to eval it - i.e. 
manipulating FILESPATH directly with .= works fine, but calling e.g. 
base_set_filespath() throws this:

ERROR: Failure expanding variable FILESPATH, expression was ${@blah} which 
triggered exception SyntaxError: EOL while scanning string literal (FILESPATH, 
line 1)

I have a patch that basically does this in conf/bitbake.conf to fix it:

-DISTROOVERRIDES ?= "${DISTRO}"
+DISTROOVERRIDES ?= "${@d.getVar('DISTRO', True) or ''}"

A proper formatted patch to follow...

-- 
Denys




More information about the Openembedded-core mailing list