All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jack Mitchell <ml@communistcode.co.uk>
To: openembedded-core@lists.openembedded.org
Subject: Re: SDK extract errors on master
Date: Mon, 6 Jul 2015 17:07:23 +0100	[thread overview]
Message-ID: <559AA7BB.9080102@communistcode.co.uk> (raw)
In-Reply-To: <559AA52F.9060505@communistcode.co.uk>

On 06/07/15 16:56, Jack Mitchell wrote:
> On 06/07/15 13:30, Jack Mitchell wrote:
>> On 06/07/15 12:35, Jack Mitchell wrote:
>>> On 03/07/15 15:56, Jack Mitchell wrote:
>>>> Built an SDK today on 7eb0abc5f4d971d9a511c93cfb2eb52b72e6f228 and 
>>>> when I tried to install it I got the following error:
>>>>
>>>> Setting it up...ls: cannot access 
>>>> /home/jack/Work/build/openembedded/sdk/1/x86_64/environment-setup-*: No 
>>>> such file or directory
>>>>
>>>> I have been messing about with the SDK install path and at one 
>>>> point it did spew out a load of files installed vs shipped warnings 
>>>> I assume due to a change of path and it getting upset about it, but 
>>>> since then I deleted the tmp directory and rebuilt a new SDK 
>>>> without warnings. However, both acted in the same way.
>>>>
>>>> The SDK then sits without installing, seemingly stuck on: grep 
>>>> OECORE_NATIVE_SYSROOT, which I assume means it's looking for the 
>>>> (non-existant) nvironment file.
>>>>
>>>> Any clues? Is this broken for anyone else?
>>>>
>>>> Cheers,
>>>> Jack.
>>>
>>> Ok, I figured out how I broke it; I used a relative path in SDKPATH. 
>>> i.e.
>>>
>>> SDKPATH=/path/to/sdk/../rel-sdk
>>>
>>> So, first off; should this be supported? Secondly, the use-case I 
>>> was trying to get at was to position an SDK relative to the build 
>>> dir, i.e.
>>>
>>> SDKPATH=${TOPDIR}/../sdk
>>>
>>> Is there a better way to do this. I guess this problem could be 
>>> solved somewhere in an SDK class by changing the relative path to an 
>>> absolute path. Ideas?
>>>
>>> Cheers,
>>> Jack.
>>
>> I found an ugly work-around but it would be nice for this to be 
>> supported in the future, or at least error on a relative path.
>>
>> SDKPATH := "${@os.path.abspath(d.getVar('TOPDIR', 
>> True)+"/../sdk/"+d.getVar('SDK_VERSION', 
>> True)+"/"+d.getVar('SDK_ARCH', True))}"
>>
>> Cheers,
>
> The saga continues... so, using a relative path is what causes bitbake 
> to spew the 'installed vs shipped' warnings; which I thought were the 
> root cause of the SDK failing to install, but apparently not. I'm 
> appending a custom recipe like this:
>
> TOOLCHAIN_HOST_TASK += "nativesdk-fastboot"
>
> Which seems to be the root cause of the SDK failing to install. I have 
> grepped the output of bitbake -e image -c populate_sdk and I get:
>
> TOOLCHAIN_HOST_TASK="nativesdk-packagegroup-sdk-host 
> packagegroup-cross-canadian-diffusion nativesdk-fastboot"
>
> Which looks perfectly reasonable to me; the fastboot recipe also 
> builds without issue and the resulting package looks sane. So, why is 
> this breaking the SDK and causing other packages not to be installed, 
> it looks specifically like it nullifies the 
> packagegroup-cross-canadian-diffusion as that is what brings in 
> meta-environment and as such environment-setup-* which is what is 
> claimed to be missing on SDK extract.
>
> I'm totally out of my depth now as on the surface everything looks OK. 
> Any input would be much appreciated.
>
> Cheers,
>

Turns out it's one of the magic variables that requires an _append 
rather than just a +=.

The example above turns out to be from my tests using _append and I 
didn't realise it was different with just a plain +=.

To conclude, TOOLCHAIN_HOST_TASK += "nativesdk-package" will overwrite 
TOOLCHAIN_HOST_TASK to just hold nativesdk-package, as such 
nativesdk-packagegroup-sdk-host and 
packagegroup-cross-canadian-diffusion won't be present anymore which 
makes a whole lot of sense now. Using append, like so:

TOOLCHAIN_HOST_TASK_append += "nativesdk-fastboot"

Will give you the whole list and result in:

TOOLCHAIN_HOST_TASK="nativesdk-packagegroup-sdk-host 
packagegroup-cross-canadian-diffusion nativesdk-fastboot"

Which is correct. Sorry for the noise; but just a heads up that I now 
feel strongly that this should be in the Yocto Docs somewhere, there is 
no mention of extending the SDK at all from what I could see and current 
examples found online specify just a plain += is fine to use, which it 
isn't.


      reply	other threads:[~2015-07-06 16:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-03 14:56 SDK extract errors on master Jack Mitchell
2015-07-06 11:35 ` Jack Mitchell
2015-07-06 12:30   ` Jack Mitchell
2015-07-06 15:56     ` Jack Mitchell
2015-07-06 16:07       ` Jack Mitchell [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=559AA7BB.9080102@communistcode.co.uk \
    --to=ml@communistcode.co.uk \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.