Re: [OE-core] [PATCH 2/2] openssl: Fix ptest dependencies on perl-module-* being ignored by COMPLEMENTARY_GLOB

Tim Orling
2024-01-16T22:31:27Z

[-- Attachment #1.1: Type: text/plain, Size: 2980 bytes --]

On Tue, Jan 16, 2024 at 10:57 AM Tim Orling via lists.openembedded.org
<ticotimo=gmail.com@lists.openembedded.org> wrote:

>
>
> On Tue, Jan 16, 2024 at 9:21 AM Alexander Kanavin <alex.kanavin@gmail.com>
> wrote:
>
>> How about simple depending on specific module packages? I don’t think
>> OpenSSL truly needs all modules.
>>
>
> Agreed. I don’t see a compelling reason to add the perl-modules-force-all
> complication. This will add confusion in my opinion.
>
> Iterate the tests and add the required perl-module-* sub-packages one by
> one (or by inspection if the test cases)
>
> In almost all cases, RDEPENDS on perl-modules is a short cut and should be
> avoided in favor of being explicit.
>
> This inspired me to sweep the dust off of
https://git.yoctoproject.org/poky-contrib/log/?h=timo/perl-deps_13376

This detects (but doesn't yet know how to properly handle) the RDEPENDS for
openssl-ptest. See attached snippet of the log.

It is too greedy so some dependencies are not going to be needed.

>> Alex
>>
>> On Tue 16. Jan 2024 at 17.56, Lyu, William via lists.openembedded.org
>> <william.lyu=windriver.com@lists.openembedded.org> wrote:
>>
>>> From: William Lyu <William.Lyu@windriver.com>
>>>
>>> Change the openssl-ptest RDEPENDS from perl-modules to
>>> perl-modules-force-all which RDEPENDS on the same set of packages
>>> perl-module-* recommended by perl-modules. So, when openssl-ptest is
>>> added via COMPLEMENTARY_GLOB "ptest-pkgs", its dependencies on these
>>> perl-module-* packages still get added.
>>>
>>> Signed-off-by: William Lyu <William.Lyu@windriver.com>
>>> ---
>>> meta/recipes-connectivity/openssl/openssl_3.2.0.bb | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
>>> b/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
>>> index d041d2d214..7076bd3a7b 100644
>>> --- a/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
>>> +++ b/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
>>> @@ -247,7 +247,7 @@ CONFFILES:openssl-conf =
>>> "${sysconfdir}/ssl/openssl.cnf"
>>>
>>> RRECOMMENDS:libcrypto += "openssl-conf ${PN}-ossl-module-legacy"
>>> RDEPENDS:${PN}-misc = "perl"
>>> -RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules bash sed"
>>> +RDEPENDS:${PN}-ptest += "openssl-bin perl perl-modules-force-all bash
>>> sed"
>>>
>>> RDEPENDS:${PN}-bin += "openssl-conf"
>>>
>>> --
>>> 2.43.0
>>>
>>>
>>>
>>>
>>>
>>
>>
>>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#193872):
> https://lists.openembedded.org/g/openembedded-core/message/193872
> Mute This Topic: https://lists.openembedded.org/mt/103766390/924729
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> ticotimo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

[-- Attachment #1.2: Type: text/html, Size: 5722 bytes --]

[-- Attachment #2: openssl-perldeps.log --]
[-- Type: text/x-log, Size: 6653 bytes --]

DEBUG: openssl-3.2.0-r0 do_perldeps: len(unresolved_rdeps[openssl-ptest]) = 82
DEBUG: openssl-3.2.0-r0 do_perldeps: unresolved_rdeps[openssl-ptest]:
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::ServerHello)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Util)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Errno)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Getopt::Std)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl >= 0:5.008
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(parent)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(FindBin)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform::mingw)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(List::Util)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(warnings)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Basename)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(IO::Socket)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Glob)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Time::Local)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl >= 1:5.10.0
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Template)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Test::Pod) >= 1.41
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::NewSessionTicket)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Glob)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Carp)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Text::Diff)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Text::Template) >= 1.46
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Test::Simple)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Pod::Html)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Getopt::Long)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Path) >= 2.00
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(ssltests_base)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::CertificateRequest)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform::BASE)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::Alert)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Test)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Test::More) >= 0.96
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::ServerKeyExchange)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Config)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Temp)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform::Windows)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Data::Dumper)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::fallback)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Ordinals)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Math::BigInt)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Pod::Usage)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Encode)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Cwd)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(strict)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform::Windows::MSVC)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(platform::Unix)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(utf8)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Exporter)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::EncryptedExtensions)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(constant)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Fcntl)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(base)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Copy)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(POSIX)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(checkhandshake)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::Message)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Storable)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Config::Query)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::CertificateVerify)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(vars)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Compare)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(configdata)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(IPC::Open2)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(FileHandle)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Scalar::Util)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::Test::Utils)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(MIME::Base64)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::Certificate)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(gentemplate)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(lib)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Digest::SHA)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(IO::Select)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(feature)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Spec::Functions)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::Proxy)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(Test::Harness)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::Record)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(OpenSSL::ParseC)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(IPC::Cmd)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(TLSProxy::ClientHello)
DEBUG: openssl-3.2.0-r0 do_perldeps: perl(File::Spec)
WARNING: openssl-3.2.0-r0 do_perldeps: [openssl-ptest] Possible missing runtime dependencies detected, but they could not be resolved "perl(TLSProxy::ServerHello) perl(OpenSSL::Util) perl(Errno) perl(Getopt::Std) perl >= 0:5.008 perl(parent) perl(FindBin) perl(platform::mingw) perl(List::Util) perl(warnings) perl(File::Basename) perl(IO::Socket) perl(OpenSSL::Glob) perl(Time::Local) perl >= 1:5.10.0 perl(OpenSSL::Template) perl(Test::Pod) >= 1.41 perl(TLSProxy::NewSessionTicket) perl(File::Glob) perl(Carp) perl(Text::Diff) perl(Text::Template) >= 1.46 perl(OpenSSL::Test::Simple) perl(Pod::Html) perl(Getopt::Long) perl(File::Path) >= 2.00 perl(ssltests_base) perl(TLSProxy::CertificateRequest) perl(platform::BASE) perl(TLSProxy::Alert) perl(OpenSSL::Test) perl(Test::More) >= 0.96 perl(TLSProxy::ServerKeyExchange) perl(platform) perl(Config) perl(File::Temp) perl(platform::Windows) perl(Data::Dumper) perl(OpenSSL::fallback) perl(OpenSSL::Ordinals) perl(Math::BigInt) perl(Pod::Usage) perl(Encode) perl(Cwd) perl(strict) perl(platform::Windows::MSVC) perl(platform::Unix) perl(utf8) perl(Exporter) perl(TLSProxy::EncryptedExtensions) perl(constant) perl(Fcntl) perl(base) perl(File::Copy) perl(POSIX) perl(checkhandshake) perl(TLSProxy::Message) perl(Storable) perl(OpenSSL::Config::Query) perl(TLSProxy::CertificateVerify) perl(vars) perl(File::Compare) perl(configdata) perl(IPC::Open2) perl(FileHandle) perl(Scalar::Util) perl(OpenSSL::Test::Utils) perl(MIME::Base64) perl(TLSProxy::Certificate) perl(gentemplate) perl(lib) perl(Digest::SHA) perl(IO::Select) perl(feature) perl(File::Spec::Functions) perl(TLSProxy::Proxy) perl(Test::Harness) perl(TLSProxy::Record) perl(OpenSSL::ParseC) perl(IPC::Cmd) perl(TLSProxy::ClientHello) perl(File::Spec)"