Re: [OE-core] "ptest-pkgs" image feature misses ptest package dependencies due to COMPLEMENTARY_GLOB ignoring all RRECOMMENDS

2024-01-16 Thread Alexander Kanavin
Yes, ptest-pkgs is not tested anywhere, and so isn't guaranteed to
work. But if you can fix it, that'd be welcome.

Alex

On Tue, 16 Jan 2024 at 01:07, Lyu, William via lists.openembedded.org
 wrote:
>
> When I try to build a core-image-minimal image with ptest for openssl 
> installed using the following conf/local.conf modifications, the 
> openssl-ptest is installed but with missing runtime dependencies.
>
> DISTRO_FEATURES:append = " ptest"
> EXTRA_IMAGE_FEATURES += " ptest-pkgs"
> PTEST_ENABLED = "1"
> IMAGE_INSTALL:append = " openssl"
>
> When I boot the image and try to run the ptest for openssl, I get the 
> following error complaining about missing dependencies in the output:
>
> # ptest-runner openssl -t 3000
> BEGIN: /usr/lib/openssl/ptest
> Can't locate File/Spec/Functions.pm in @INC ...
> ...
>
> This error is due to package perl-module-file-spec-functions, along with some 
> other perl-module-* packages, not being installed - these packages are 
> missing in the .manifest file in the directory containing the built image. 
> The dependency for these packages is as follows.
>
> openssl-ptest --(RDEPENDS)--> perl-modules --(RRECOMMENDS)--> 
> perl-module-file-spec-functions
>\-(RRECOMMENDS)--> some other 
> perl-module-* packages
>
> "ptest-pkgs" along with various other image features are defined as 
> COMPLEMENTARY_GLOB in meta/classes-recipe/populate_sdk_base.bbclass in 
> openembedded-core:
>
> COMPLEMENTARY_GLOB[ptest-pkgs] = '*-ptest ${MLPREFIX}ptest-runner'
>
> Following this patch to package_manager referenced by link 
> https://lists.openembedded.org/g/openembedded-core/message/167303, recommends 
> relationships (set via RRECOMMENDS) are always ignored when installing 
> complementary packages [1]. This causes the necessary runtime dependencies 
> for openssl-ptest not being installed. I am not sure if this issue only 
> pertains to openssl-ptest.
>
> Note that, if I follow the alternative "more selective" [2] way to include 
> the tests (see the following sample conf/local.conf), I can properly install 
> openssl-ptest with all dependencies, as openssl-ptest is now explicitly 
> declared as package-to-be-installed instead of implicitly discovered via the 
> COMPLEMENTARY_GLOB "ptest-pkgs". I would say that this means that 
> "ptest-pkgs" is not very robust to use.
>
> DISTRO_FEATURES:append = " ptest"
> PTEST_ENABLED = "1"
> IMAGE_INSTALL:append = " openssl openssl-ptest"
>
> [1] 
> https://docs.yoctoproject.org/dev/ref-manual/variables.html#term-COMPLEMENTARY_GLOB
> [2] https://wiki.yoctoproject.org/wiki/Ptest#Adding_ptest_to_your_build
>
> William
>
>
> 
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193835): 
https://lists.openembedded.org/g/openembedded-core/message/193835
Mute This Topic: https://lists.openembedded.org/mt/103752398/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] "ptest-pkgs" image feature misses ptest package dependencies due to COMPLEMENTARY_GLOB ignoring all RRECOMMENDS

2024-01-15 Thread Lyu, William via lists.openembedded.org
When I try to build a core-image-minimal image with ptest for openssl installed 
using the following conf/local.conf modifications, the openssl-ptest is 
installed but with missing runtime dependencies.

DISTRO_FEATURES:append = " ptest"
EXTRA_IMAGE_FEATURES += " ptest-pkgs"
PTEST_ENABLED = "1"
IMAGE_INSTALL:append = " openssl"

When I boot the image and try to run the ptest for openssl, I get the following 
error complaining about missing dependencies in the output:

# ptest-runner openssl -t 3000
BEGIN: /usr/lib/openssl/ptest
Can't locate File/Spec/Functions.pm in @INC ...
...

This error is due to package perl-module-file-spec-functions, along with some 
other perl-module-* packages, not being installed - these packages are missing 
in the .manifest file in the directory containing the built image. The 
dependency for these packages is as follows.

openssl-ptest --(RDEPENDS)--> perl-modules --(RRECOMMENDS)--> 
perl-module-file-spec-functions
   \-(RRECOMMENDS)--> some other 
perl-module-* packages

"ptest-pkgs" along with various other image features are defined as 
COMPLEMENTARY_GLOB in meta/classes-recipe/populate_sdk_base.bbclass in 
openembedded-core:

COMPLEMENTARY_GLOB[ptest-pkgs] = '*-ptest ${MLPREFIX}ptest-runner'

Following this patch to package_manager referenced by link 
https://lists.openembedded.org/g/openembedded-core/message/167303, recommends 
relationships (set via RRECOMMENDS) are always ignored when installing 
complementary packages [1]. This causes the necessary runtime dependencies for 
openssl-ptest not being installed. I am not sure if this issue only pertains to 
openssl-ptest.

Note that, if I follow the alternative "more selective" [2] way to include the 
tests (see the following sample conf/local.conf), I can properly install 
openssl-ptest with all dependencies, as openssl-ptest is now explicitly 
declared as package-to-be-installed instead of implicitly discovered via the 
COMPLEMENTARY_GLOB "ptest-pkgs". I would say that this means that "ptest-pkgs" 
is not very robust to use.

DISTRO_FEATURES:append = " ptest"
PTEST_ENABLED = "1"
IMAGE_INSTALL:append = " openssl openssl-ptest"

[1] 
https://docs.yoctoproject.org/dev/ref-manual/variables.html#term-COMPLEMENTARY_GLOB
[2] https://wiki.yoctoproject.org/wiki/Ptest#Adding_ptest_to_your_build

William


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193807): 
https://lists.openembedded.org/g/openembedded-core/message/193807
Mute This Topic: https://lists.openembedded.org/mt/103752398/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-