Re: [yocto] -staticdev packages not in sdk

2019-08-07 Thread Koeller, Thomas
>On Tue, 2019-08-06 at 14:04 +0000, Koeller, Thomas wrote:
>> browsing the list archives I came across an older thread that exactly
>> describes the problem I am currently struggling with:
>>
>> https://lists.yoctoproject.org/pipermail/yocto/2018-February/039950.html
>>
>> In short, I have a recipe that produces only a couple of header files
>> and a single static library, nothing to be installed on the target.
>> So the base package is empty, which is why I have 'ALLOW_EMPTY_${PN}
>> = "1"' in its recipe. In my image definition I have
>> 'SDKIMAGE_FEATURES_append = " staticdev-pkgs"', so I expect the
>> -staticdev package to be included when generating the SDK. This is,
>> however, not the case. While a large number of -staticdev packages
>> from different recipes is now included in the SDK, only the -dev
>> package is included for my recipe, not the -staticdev (though the
>> corresponding rpm is actually built and contains the library as
>> expected, it just is not installed).
>>
>> The archived mail thread referenced above suggests adding the base
>> package ${PN} to IMAGE_INSTALL, which indeed does work for me.
>> However, I do not understand why this is necessary at all, as my
>> package is already referenced from another recipe by being listed in
>> that recipe's DEPENDS variable, shouldn't that be enough?
>
> DEPENDS means its a *build* time dependency. Since nothing links to it
> there is no runtime dependency generated and this empty package you've
> created is never installed into the image.
>
> If its not installed into the image, the SDK for that image won't have
> the corresponding -dev package.

But the -dev image is in fact installed, it is the -staticdev that is
not.

> If you add an RDEPENDS on the empty package to something in the image,
> you'll probably find the -dev package then is installed.

Meanwhile, I tried a different approach:

In bitbake.conf there is a line
DEPCHAIN_POST = "-dev -dbg"
that causes -dev and -dbg packages to pull in the respective packages
generated by recipes that are dependencies. This seemed to explain why
-dev packages were chained while -staticdev were not. I appended
" -staticdev" to that variable (in my image recipe), which IMHO should
be the default. I do not see any reason why -staticdev packages should
be treated differently from -dev in this respect.

Then, I used
ALLOW_EMPTY_${PN}-staticdev = "1"
in my dependent recipe, because that one does not produce a non-empty
-staticdev package.

I chose that approach because to me it appeared to be the cleanest way
to address the problem. Too bad it doesn't work, still only the -dev
packages are included in the SDK. Any idea as to why this did not work
out?

>>  Also, the -dev package gets installed into the SDK even without such
>> cruft. As far as I can see, identical logic is applied to both -dev
>> and -staticdev packages, so what is the difference?
>>
>> I also found a different workaround for the problem: listing the
>> -staticdev package in TOOLCHAIN_TARGET_TASK. Needless to say, this
>> workaround is just as undesirable as the former one.


Thomas Koeller
Senior Software Developer


Basler AG
An der Strusbek 60-62
22926 Ahrensburg
Germany

Tel. +49 4102 463 390
Fax +49 4102 463 46 390


thomas.koel...@baslerweb.com
www.baslerweb.com

Management board: Dr.-Ing. Dietmar Ley (CEO) · John P. Jennings · Arndt Bake · 
Hardy Mehl
Chairman of the supervisory board: Norbert Basler
Basler AG · Amtsgericht Lübeck HRB 4090 · Ust-IdNr.: DE 135 098 121 · 
Steuer-Nr.: 30 292 04497 · WEEE-Reg.-Nr. DE 83888045
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] -staticdev packages not in sdk

2019-08-06 Thread Koeller, Thomas
Hi,

browsing the list archives I came across an older thread that exactly describes 
the problem I am currently struggling with:

https://lists.yoctoproject.org/pipermail/yocto/2018-February/039950.html

In short, I have a recipe that produces only a couple of header files and a 
single static library, nothing to be installed on the target. So the base 
package is empty, which is why I have 'ALLOW_EMPTY_${PN} = "1"' in its recipe. 
In my image definition I have 'SDKIMAGE_FEATURES_append = " staticdev-pkgs"', 
so I expect the -staticdev package to be included when generating the SDK. This 
is, however, not the case. While a large number of -staticdev packages from 
different recipes is now included in the SDK, only the -dev package is included 
for my recipe, not the -staticdev (though the corresponding rpm is actually 
built and contains the library as expected, it just is not installed).

The archived mail thread referenced above suggests adding the base package 
${PN} to IMAGE_INSTALL, which indeed does work for me. However, I do not 
understand why this is necessary at all, as my package is already referenced 
from another recipe by being listed in that recipe's DEPENDS variable, 
shouldn't that be enough? Also, the -dev package gets installed into the SDK 
even without such cruft. As far as I can see, identical logic is applied to 
both -dev and -staticdev packages, so what is the difference?

I also found a different workaround for the problem: listing the -staticdev 
package in TOOLCHAIN_TARGET_TASK. Needless to say, this workaround is just as 
undesirable as the former one.

I am using the sumo branch.

Thomas


Thomas Koeller
Senior Software Developer


Basler AG
An der Strusbek 60-62
22926 Ahrensburg
Germany

Tel. +49 4102 463 390
Fax +49 4102 463 46 390


thomas.koel...@baslerweb.com
www.baslerweb.com

Management board: Dr.-Ing. Dietmar Ley (CEO) · John P. Jennings · Arndt Bake · 
Hardy Mehl
Chairman of the supervisory board: Norbert Basler
Basler AG · Amtsgericht Lübeck HRB 4090 · Ust-IdNr.: DE 135 098 121 · 
Steuer-Nr.: 30 292 04497 · WEEE-Reg.-Nr. DE 83888045
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto