[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