Hello, I noticed an issue when I tried to develop a BSP meta for a NUC (model E3815TKHE).
In my first implementation, I named the conf file nuc_E3815.conf. This leads to a bitbake error described in the commit message. 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). When I renamed the file without upercase (ie nuc_e3815.conf) , the error disappeared. As I never saw any Machine name with uppercase, I thought that it was forbidden ( and the root cause of the issue I saw). This seems to be linked to the path name generation of the rpm repositories. Sorry for the noise. Baptiste 2015-03-05 7:26 GMT+01:00 Michael Gloff <mgl...@emacinc.com>: > 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.eggle...@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.eggle...@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 <p...@paulbarker.me.uk> > 3/6/14 > > > to Khem, me, Paul, Yocto > On 5 March 2014 21:14, Khem Raj <raj.k...@gmail.com> wrote: > > On Wed, Mar 5, 2014 at 9:00 AM, Michael Gloff <mgl...@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.dur...@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.dur...@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@lists.openembedded.org >> http://lists.openembedded.org/mailman/listinfo/openembedded-core >> > > -- Baptiste DURAND
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core