Bug 11741 - sdk: generates empty manifests when doing do_populate_sdk
Summary: sdk: generates empty manifests when doing do_populate_sdk
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: 2.4
Hardware: x86 Multiple
: Medium+ normal
Target Milestone: 2.4 M2
Assignee: Aníbal Limón
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2017-06-30 20:41 UTC by Jose Perez C
Modified: 2017-07-06 14:43 UTC (History)
4 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: No (bug/feature does not impact docs)


Attachments
buildtools refkit host manifest (5.54 KB, text/plain)
2017-07-04 17:23 UTC, Aníbal Limón
no flags Details
refkit minimal populate sdk ext fails (345.29 KB, application/octet-stream)
2017-07-04 17:25 UTC, Aníbal Limón
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jose Perez C 2017-06-30 20:41:21 UTC
SDK is generating empty manifest file when doing "do_populate_sdk", thi is making fail the SDK test on the AB.

https://autobuilder.yoctoproject.org/main/builders/nightly-x86/builds/1186/steps/Running%20SDK%20Sanity%20Tests/logs/stdio


Steps 

1. bitbake core-image-sato

2. bitbake core-image-sato -c do_populate_sdk

3. Verify that manifest is correctly populated on:
    tmp/deploy/sdk/poky-glibc-x86_64-core-image-sato-sdk-i586-toolchain-2.3.target.manifest
   
    
EXPECTED:

manifest should be populated with correct packages 

ACTUAL:

manifest is empty
Comment 2 Mikko Ylinen 2017-07-03 07:57:13 UTC
(In reply to comment #1)
> Review at,
> 
> http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> html

Even after this patch, '-c populate_sdk_ext' gives empty manifest (for refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
Comment 3 Aníbal Limón 2017-07-03 15:58:46 UTC
(In reply to comment #2)
> (In reply to comment #1)
> > Review at,
> > 
> > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> > html
> 
> Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.

Hi Miko, 

How can i test the refkit sdk?

I'm using poky and the code works.

Regards,
Anibal
Comment 4 Mikko Ylinen 2017-07-04 03:47:50 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > (In reply to comment #1)
> > > Review at,
> > > 
> > > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> > > html
> > 
> > Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> > refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
> 
> Hi Miko, 
> 
> How can i test the refkit sdk?
> 
> I'm using poky and the code works.

You can clone (--recursive) the intel-iot-refkit master (https://github.com/intel/intel-iot-refkit) and run, e.g., bitbake refkit-image-common -c populate_sdk_ext

btw, I did not test populate_sdk, only populate_sdk_ext
Comment 5 Aníbal Limón 2017-07-04 15:11:53 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > (In reply to comment #1)
> > > > Review at,
> > > > 
> > > > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> > > > html
> > > 
> > > Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> > > refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
> > 
> > Hi Miko, 
> > 
> > How can i test the refkit sdk?
> > 
> > I'm using poky and the code works.
> 
> You can clone (--recursive) the intel-iot-refkit master
> (https://github.com/intel/intel-iot-refkit) and run, e.g., bitbake
> refkit-image-common -c populate_sdk_ext
> 
> btw, I did not test populate_sdk, only populate_sdk_ext

Hi Miko,

After reviewing seems that you don't have this patch on refkit,

http://git.openembedded.org/openembedded-core/commit/meta/classes/populate_sdk_ext.bbclass?id=25ad7ed6f7bb0c931b404bda09576323200d093d

After do a git pull and submodule update the oe-core component
is at revision e02716ca29b744fde5a45dabe79fef11df772d92,

Regards,
Anibal
Comment 6 Mikko Ylinen 2017-07-04 16:28:45 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > (In reply to comment #3)
> > > (In reply to comment #2)
> > > > (In reply to comment #1)
> > > > > Review at,
> > > > > 
> > > > > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> > > > > html
> > > > 
> > > > Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> > > > refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
> > > 
> > > Hi Miko, 
> > > 
> > > How can i test the refkit sdk?
> > > 
> > > I'm using poky and the code works.
> > 
> > You can clone (--recursive) the intel-iot-refkit master
> > (https://github.com/intel/intel-iot-refkit) and run, e.g., bitbake
> > refkit-image-common -c populate_sdk_ext
> > 
> > btw, I did not test populate_sdk, only populate_sdk_ext
> 
> Hi Miko,
> 
> After reviewing seems that you don't have this patch on refkit,
> 
> http://git.openembedded.org/openembedded-core/commit/meta/classes/
> populate_sdk_ext.bbclass?id=25ad7ed6f7bb0c931b404bda09576323200d093d
> 

I had it applied locally when I tested:


(In reply to comment #2)
> 
> Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
Comment 7 Aníbal Limón 2017-07-04 17:23:04 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > (In reply to comment #4)
> > > (In reply to comment #3)
> > > > (In reply to comment #2)
> > > > > (In reply to comment #1)
> > > > > > Review at,
> > > > > > 
> > > > > > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/138956.
> > > > > > html
> > > > > 
> > > > > Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> > > > > refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
> > > > 
> > > > Hi Miko, 
> > > > 
> > > > How can i test the refkit sdk?
> > > > 
> > > > I'm using poky and the code works.
> > > 
> > > You can clone (--recursive) the intel-iot-refkit master
> > > (https://github.com/intel/intel-iot-refkit) and run, e.g., bitbake
> > > refkit-image-common -c populate_sdk_ext
> > > 
> > > btw, I did not test populate_sdk, only populate_sdk_ext
> > 
> > Hi Miko,
> > 
> > After reviewing seems that you don't have this patch on refkit,
> > 
> > http://git.openembedded.org/openembedded-core/commit/meta/classes/
> > populate_sdk_ext.bbclass?id=25ad7ed6f7bb0c931b404bda09576323200d093d
> > 
> 
> I had it applied locally when I tested:

After applying the 5 patches the esdk build fails, but i the manifest for buildtools was created, seems to be an issue only present on refkit.

Regards,
Anibal

> 
> 
> (In reply to comment #2)
> > 
> > Even after this patch, '-c populate_sdk_ext' gives empty manifest (for
> > refkit eSDKs) and many '-c testsdkext' tests get skipped due to that.
Comment 8 Aníbal Limón 2017-07-04 17:23:51 UTC
Created attachment 3856 [details]
buildtools refkit host manifest
Comment 9 Aníbal Limón 2017-07-04 17:25:16 UTC
Created attachment 3857 [details]
refkit minimal populate sdk ext fails
Comment 10 Mikko Ylinen 2017-07-04 19:22:41 UTC
(In reply to comment #7)
> 
> After applying the 5 patches the esdk build fails, but i the manifest for
> buildtools was created, seems to be an issue only present on refkit.
> 

buildtools manifest works OK but that's not sufficient when running 'bitbake <image> -c testsdkext'

'bitbake refkit-image-minimal -c populate_sdk_ext' works OK for me. Are you building full or minimal extsdk type?
Comment 11 Aníbal Limón 2017-07-04 20:05:41 UTC
(In reply to comment #10)
> (In reply to comment #7)
> > 
> > After applying the 5 patches the esdk build fails, but i the manifest for
> > buildtools was created, seems to be an issue only present on refkit.
> > 
> 
> buildtools manifest works OK but that's not sufficient when running 'bitbake
> <image> -c testsdkext'
> 
> 'bitbake refkit-image-minimal -c populate_sdk_ext' works OK for me. Are you
> building full or minimal extsdk type?

Yes after changing to SDK_EXT_TYPE="minimal" the extensible sdk builds but the manifest isn't populated.
Comment 12 Aníbal Limón 2017-07-04 20:26:22 UTC
(In reply to comment #11)
> (In reply to comment #10)
> > (In reply to comment #7)
> > > 
> > > After applying the 5 patches the esdk build fails, but i the manifest for
> > > buildtools was created, seems to be an issue only present on refkit.
> > > 
> > 
> > buildtools manifest works OK but that's not sufficient when running 'bitbake
> > <image> -c testsdkext'
> > 
> > 'bitbake refkit-image-minimal -c populate_sdk_ext' works OK for me. Are you
> > building full or minimal extsdk type?
> 
> Yes after changing to SDK_EXT_TYPE="minimal" the extensible sdk builds but
> the manifest isn't populated.

Hi Miko,

The eSDK needs the sstates folder populated in order to figure out what is within the eSDK.

I figured out what is the problem when the SDK_EXT_TYPE is set to minimal no sstates are copied within the sdk-ext dir [1][2][3], causing no detection of what is installed into the eSDK.

I suggest to change your eSDK type to full, but this ends in the previous error.

Cheers,
Anibal

[1] http://git.openembedded.org/openembedded-core/tree/meta/classes/populate_sdk_ext.bbclass#n412
[2] http://git.openembedded.org/openembedded-core/tree/meta/classes/populate_sdk_ext.bbclass#n169
[3] http://git.openembedded.org/openembedded-core/tree/meta/lib/oe/copy_buildsystem.py#n207
Comment 13 Aníbal Limón 2017-07-04 20:41:00 UTC
(In reply to comment #12)
> (In reply to comment #11)
> > (In reply to comment #10)
> > > (In reply to comment #7)
> > > > 
> > > > After applying the 5 patches the esdk build fails, but i the manifest for
> > > > buildtools was created, seems to be an issue only present on refkit.
> > > > 
> > > 
> > > buildtools manifest works OK but that's not sufficient when running 'bitbake
> > > <image> -c testsdkext'
> > > 
> > > 'bitbake refkit-image-minimal -c populate_sdk_ext' works OK for me. Are you
> > > building full or minimal extsdk type?
> > 
> > Yes after changing to SDK_EXT_TYPE="minimal" the extensible sdk builds but
> > the manifest isn't populated.
> 
> Hi Miko,
> 
> The eSDK needs the sstates folder populated in order to figure out what is
> within the eSDK.
> 
> I figured out what is the problem when the SDK_EXT_TYPE is set to minimal no
> sstates are copied within the sdk-ext dir [1][2][3], causing no detection of
> what is installed into the eSDK.
> 
> I suggest to change your eSDK type to full, but this ends in the previous
> error.
> 
> Cheers,
> Anibal
> 
> [1]
> http://git.openembedded.org/openembedded-core/tree/meta/classes/
> populate_sdk_ext.bbclass#n412
> [2]
> http://git.openembedded.org/openembedded-core/tree/meta/classes/
> populate_sdk_ext.bbclass#n169
> [3]
> http://git.openembedded.org/openembedded-core/tree/meta/lib/oe/
> copy_buildsystem.py#n207

I forget to mention that doesn't include the toolchain when is minimal.

See, http://git.openembedded.org/openembedded-core/tree/meta/classes/populate_sdk_ext.bbclass#n22
Comment 14 Mikko Ylinen 2017-07-05 05:08:59 UTC
(In reply to comment #12)
> I figured out what is the problem when the SDK_EXT_TYPE is set to minimal no
> sstates are copied within the sdk-ext dir [1][2][3], causing no detection of
> what is installed into the eSDK.

testsdk.bbclass implies it can be used to test "minimal" eSDK too. However, many of the test cases (gcc, python, perl) are skipped because the .manifests are empty. That's the only concern from me.

FWIW, the toolchain *is* installed in the minimal eSDK too during testing (and many build tests are run&passing). Therefore, I'd expect, e.g., the gcc tests to work too.
Comment 15 Aníbal Limón 2017-07-05 14:22:20 UTC
(In reply to comment #14)
> (In reply to comment #12)
> > I figured out what is the problem when the SDK_EXT_TYPE is set to minimal no
> > sstates are copied within the sdk-ext dir [1][2][3], causing no detection of
> > what is installed into the eSDK.
> 
> testsdk.bbclass implies it can be used to test "minimal" eSDK too. However,
> many of the test cases (gcc, python, perl) are skipped because the
> .manifests are empty. That's the only concern from me.

Yes this patch fix the sdk manifest creation, is different from esdk because the manifests of sdk are generated using package list and the esdk using sstate described previously.

The eSDK executes the tests from SDK for compatibility reasons. The populate_sdk should work with this patch.

> 
> FWIW, the toolchain *is* installed in the minimal eSDK too during testing
> (and many build tests are run&passing). Therefore, I'd expect, e.g., the gcc
> tests to work too.

Ok, i understand that you install the toolchain using devtool but in this case we need a enhancement to support this testing mode, minimal + toolchain on runtime. Feel free to file a bug.
Comment 16 Mikko Ylinen 2017-07-06 07:50:00 UTC
(In reply to comment #15)
> (In reply to comment #14)
> > 
> > testsdk.bbclass implies it can be used to test "minimal" eSDK too. However,
> > many of the test cases (gcc, python, perl) are skipped because the
> > .manifests are empty. That's the only concern from me.
> 
> Yes this patch fix the sdk manifest creation, is different from esdk because
> the manifests of sdk are generated using package list and the esdk using
> sstate described previously.

I'm aware of this.

> 
> The eSDK executes the tests from SDK for compatibility reasons. The
> populate_sdk should work with this patch.

Yes, I can to confirm this. I admit I accidentally reopened this bug too while only bug #9038 would have been sufficient.

> > FWIW, the toolchain *is* installed in the minimal eSDK too during testing
> > (and many build tests are run&passing). Therefore, I'd expect, e.g., the gcc
> > tests to work too.
> 
> Ok, i understand that you install the toolchain using devtool but in this
> case we need a enhancement to support this testing mode, minimal + toolchain
> on runtime. Feel free to file a bug.

I'm not installing anything, it's the testsdkext_main that prepares everything for testing so to me it's more of a bug than a missing feature that the testing is not possible.
Comment 17 Aníbal Limón 2017-07-06 14:36:13 UTC
(In reply to comment #16)
> (In reply to comment #15)
> > (In reply to comment #14)
> > > 
> > > testsdk.bbclass implies it can be used to test "minimal" eSDK too. However,
> > > many of the test cases (gcc, python, perl) are skipped because the
> > > .manifests are empty. That's the only concern from me.
> > 
> > Yes this patch fix the sdk manifest creation, is different from esdk because
> > the manifests of sdk are generated using package list and the esdk using
> > sstate described previously.
> 
> I'm aware of this.
> 
> > 
> > The eSDK executes the tests from SDK for compatibility reasons. The
> > populate_sdk should work with this patch.
> 
> Yes, I can to confirm this. I admit I accidentally reopened this bug too
> while only bug #9038 would have been sufficient.
> 
> > > FWIW, the toolchain *is* installed in the minimal eSDK too during testing
> > > (and many build tests are run&passing). Therefore, I'd expect, e.g., the gcc
> > > tests to work too.
> > 
> > Ok, i understand that you install the toolchain using devtool but in this
> > case we need a enhancement to support this testing mode, minimal + toolchain
> > on runtime. Feel free to file a bug.
> 
> I'm not installing anything, it's the testsdkext_main that prepares
> everything for testing so to me it's more of a bug than a missing feature
> that the testing is not possible.

Got it but the thing is that when SDK_EXT_TYPE is minimal didn't copy the sstates into the eSDK temp build folder causing the manifests to be empty.

So may be there is other options to generate the eSDK manifests but i don't see atm how.

Cheers,
Anibal
Comment 18 Ross Burton 2017-07-06 14:43:28 UTC
Merged in oe-core b10ecbab3acd46e48d36910e30544e9f5f08d6d7.