[bitbake-devel] [PATCH 2/2] sanity.bbclass: Improved error message
Mark Hatle
mark.hatle at windriver.com
Thu Jan 12 19:52:40 UTC 2017
On 1/12/17 1:23 PM, Juro Bystricky wrote:
> When a non-existing MACHINE is specified, sanity check issues
> the following message:
>
> Please set a valid MACHINE in your local.conf or environment
>
> However, MACHINE can also be set in multiconfig .conf file(s).
> Hence we may have several different MACHINE settings within one
> (multiconfig) build, so the present error message is fairly
> ambiguous.
>
> This patch remedies this by explicitly naming the offending MACHINE and
> adding conf/multiconfig/*.conf to the list of places where this erroneous
> MACHINE definition could have originated.
>
> Invalid MACHINE=xyz. Please set a valid MACHINE in your local.conf, conf/multiconfig/*.conf or environment
(I don't have any problem with the change, but I do have a suggestion that may
make it better.)
I'm not sure if it's available without specifically using the bitbake -e flag,
but we do usually capture where variables are defined. Could this be used to
provide a better error message for the user?
i.e. bitbake -e output:
# $MACHINE [3 operations]
# set /home/mhatle/oe/build/conf/local.conf:76
# [_defaultval] "qemux86-64"
# set /home/mhatle/oe/meta/conf/documentation.co
nf:274
# [doc] "Specifies the target device for which the image is built. You defin
e MACHINE in the conf/local.conf file in the Build Directory."
# set /home/mhatle/oe/meta/conf/bitbake.conf:795
# [unexport] "1"
# pre-expansion value:
# "qemux86-64"
unset MACHINE
in this case it knows it was defined in the local.conf on line 76.
... and if I set it in the environment:
# $MACHINE [4 operations]
# from env data.py:177 [inheritFromOS]
# "foobar"
# set /home/mhatle/oe/build/conf/local.conf:76
# [_defaultval] "qemux86-64"
# set /home/mhatle/oe/meta/conf/documentation.co
nf:274
# [doc] "Specifies the target device for which the image is built. You defin
e MACHINE in the conf/local.conf file in the Build Directory."
# set /home/mhatle/oe/meta/conf/bitbake.conf:795
# [unexport] "1"
# pre-expansion value:
# "foobar"
unset MACHINE
It knows it was 'inheritFromOS'.
--Mark
> [YOCTO#10810]
>
> Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
> ---
> meta/classes/sanity.bbclass | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index c876dc6..8477d38 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -823,7 +823,7 @@ def check_sanity_everybuild(status, d):
> machinevalid = True
> if d.getVar('MACHINE'):
> if not check_conf_exists("conf/machine/${MACHINE}.conf", d):
> - status.addresult('Please set a valid MACHINE in your local.conf or environment\n')
> + status.addresult('Invalid MACHINE=%s. Please set a valid MACHINE in your local.conf, conf/multiconfig/*.conf or environment\n' % (d.getVar('MACHINE')))
> machinevalid = False
> else:
> status.addresult(check_sanity_validmachine(d))
>
More information about the bitbake-devel
mailing list