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: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to