[OE-core] [PATCH] sanity.bbclass: Add syntax check on MACHINE variable

Michael Gloff mgloff at emacinc.com
Thu Mar 5 06:26:13 UTC 2015


Why? Uppercase letters should be allowed and work fine for the most part.
Below are a few excerpts from last year:

On Wed, Mar 5, 2014 at 11:45 AM, Paul Eggleton <
paul.eggleton at linux.intel.com> wrote:
On Wednesday 05 March 2014 11:00:31 Michael Gloff wrote:
> On Mon, Mar 3, 2014 at 12:52 PM, Paul Eggleton
> <paul.eggleton at linux.intel.com
>
> > wrote:
> > > On Sunday 02 March 2014 19:58:41 Michael Gloff wrote:
> > > > Is there a reason why the toolchain cannot be built with a machine
> name
> > > > that contains capital letters? Seems weird, everything else builds
> fine,
> > > > but meta-toolchain fails complaining about caps.
> > >
> > > Although machine names are traditionally all lower case in our build
> > > system, there's no deliberate restriction in place that enforces this.
> > >
> > > Would you be able to provide more details, such as the version of the
> > > build system you are using, the exact capital letters you used in the
> > > machine name, and the error you received?
> >
> > The error is below. Machine name: PMX-090T. This is on dora 1.5.1
> >
> > ERROR: Function failed: opkg-build execution failed
> > ERROR: Logfile of failure stored in:
> >
> /opt/oe/build/tmp/work/i686-nativesdk-emacsdk-linux/meta-environment-PMX-090
> > T/1.0-r8/temp/log.do_package_write_ipk.15358
> > Log data follows:
> > | DEBUG: Executing python function sstate_task_prefunc
> > | DEBUG: Python function sstate_task_prefunc finished
> > | DEBUG: Executing python function do_package_write_ipk
> > | DEBUG: Executing python function read_subpackage_metadata
> > | DEBUG: Python function read_subpackage_metadata finished
> > | DEBUG: Executing python function do_package_ipk
> > | meta-environment-PMX-090T
> > | *** Error: Package name  contains illegal characters, (other than
> > [a-z0-9.+-])
>
> Perhaps I spoke too soon. There might not be a direct restriction on
> machine
> names; but opkg does restrict characters allowed in package names, and for
> meta-environment the machine name ends up as part of the package name. You
> could probably hack around it if you felt the need to, but the simplest
> thing
> would be to just change the machine name to be all lower-case.
>
> Cheers,
> Paul
>

=============================================================================================
Paul Barker <paul at paulbarker.me.uk>
3/6/14


to Khem, me, Paul, Yocto
On 5 March 2014 21:14, Khem Raj <raj.khem at gmail.com> wrote:
> On Wed, Mar 5, 2014 at 9:00 AM, Michael Gloff <mgloff at emacinc.com> wrote:
>> | *** Error: Package name  contains illegal characters, (other than
>> [a-z0-9.+-])
>
> hmm meta-environment-PMX-090T is a package name and
> thats limitation of opkg backend, if you are too tied to

opkg itself doesn't seem to have this limitation, I just created and
installed a
test package named 'A' perfectly fine.

The Debian policy says:
    Package names (both source and binary, see Package, Section 5.6.7) must
    consist only of lower case letters (a-z), digits (0-9), plus (+) and
minus
    (-) signs, and periods (.). They must be at least two characters long
and
    must start with an alphanumeric character.

So I think the restriction is there to keep generated packages
compatible with dpkg-deb.

We could consider removing the restriction if that compatibility isn't
necessary.

===========================================================================

I think we should fix the SDK generation that has a problem with caps
instead of dis-allowing it completely.

Michael Gloff



On Tue, Mar 3, 2015 at 5:01 AM, Baptiste DURAND <baptiste.durand at gmail.com>
wrote:

> MACHINE variable should not contain uppercase characters.
>
> Having uppercase in Machine name can lead to this kind of error : (here
> Machine is set to nuc-E3815)
> ERROR: initramfs-live-boot not found in the base feeds (nuc_E3815
> corei7-64-intel-common corei7-64 core2-64 x86_64 noarch any all).
>
> Signed-off-by: Baptiste DURAND <baptiste.durand at gmail.com>
> ---
>  meta/classes/sanity.bbclass | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
> index 31b99d4..1fa2e58 100644
> --- a/meta/classes/sanity.bbclass
> +++ b/meta/classes/sanity.bbclass
> @@ -713,12 +713,17 @@ def check_sanity_everybuild(status, d):
>
>      # Check that the MACHINE is valid, if it is set
>      machinevalid = True
> -    if d.getVar('MACHINE', True):
> -        if not check_conf_exists("conf/machine/${MACHINE}.conf", d):
> -            status.addresult('Please set a valid MACHINE in your
> local.conf or environment\n')
> -            machinevalid = False
> +    machinevar = d.getVar('MACHINE', True)
> +    if machinevar:
> +        if machinevar == machinevar.lower():
> +            if not check_conf_exists("conf/machine/${MACHINE}.conf", d):
> +               status.addresult('Please set a valid MACHINE in your
> local.conf or environment\n')
> +               machinevalid = False
> +            else:
> +               status.addresult(check_sanity_validmachine(d))
>          else:
> -            status.addresult(check_sanity_validmachine(d))
> +            status.addresult('Please set a valid MACHINE : uppercase
> characters are not allowed in machine name : ${MACHINE} should be ' +
> machinevar.lower() + ' \n    Please rename file
> conf/machine/${MACHINE}.conf as conf/machine/' + machinevar.lower() +
> '.conf\n')
> +            machinevalid = False
>      else:
>          status.addresult('Please set a MACHINE in your local.conf or
> environment\n')
>          machinevalid = False
> --
> 1.8.1.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20150305/b33855a0/attachment-0002.html>


More information about the Openembedded-core mailing list