Hello Slaven,

On 14/06/2022 18:37, Slaven Rezic wrote:

Hi Alceu,

Kwalify is just a schema for validating data structures and it does not do any parsing or matching using the distroprefs data. The latter is done by CPAN::Distroprefs.

That said, I tried "useithreads: undef" and it did not work. So it looks like the matching is not done against what is displayed in "perl -V" (in this case the string "undef"), but what is in the Config data structure (the value undef).

However, the distroprefs code only does regexp matches against the stringified values, so to match the stringified undef (the empty string) one has to use '^$'. Below is a distroprefs file just for demonstration purposes, and it works on my system.

Thank you for that!

Just tried with the regex "^$" on OpenBSD 7.1 and worked without the warning.

On the other hand, I tried both methods on my Ubuntu box and both worked without any warning, which isn't the expected:

me:~/.cpan/prefs$ cat test.yml
---
disabled: 1
match:
  distribution: ^MIK/CryptX
  perlconfig:
    #useithreads: null
    useithreads: '^$'

me:~/.cpan/prefs$ cpan -t CryptX
CPAN: CPAN::SQLite loaded ok (v0.219)
Database was generated on Wed, 15 Jun 2022 03:16:47 GMT
Running test for module 'CryptX'
CPAN: YAML::XS loaded ok (v0.83)
CPAN: CPAN::Kwalify loaded ok (v5.50)

______________________ D i s t r o P r e f s ______________________
test.yml[0]
  MIK/CryptX-0.076.tar.gz
  [disabled] -- NA Disabled via prefs file '/home/semantix/.cpan/prefs/test.yml' doc 0
me:~/.cpan/prefs$ vi test.yml

me:~/.cpan/prefs$ cat test.yml
---
disabled: 1
match:
  distribution: ^MIK/CryptX
  perlconfig:
    useithreads: null
    #useithreads: '^$'

me:~/.cpan/prefs$ cpan -t CryptX
CPAN: CPAN::SQLite loaded ok (v0.219)
Database was generated on Wed, 15 Jun 2022 03:16:47 GMT
Running test for module 'CryptX'
CPAN: YAML::XS loaded ok (v0.83)
CPAN: CPAN::Kwalify loaded ok (v5.50)

______________________ D i s t r o P r e f s ______________________
test.yml[0]
  MIK/CryptX-0.076.tar.gz
  [disabled] -- NA Disabled via prefs file '/home/semantix/.cpan/prefs/test.yml' doc 0

Now, testing on OpenBSD, I got the warning if using "undef", as previous stated.

Comparing the systems, the only thing I got that is different is the perl itself:

[goku@cpan-smoker-openbsd:~/cpan-openbsd-smoker]$ mversion CPAN::Kwalify
5.50
[goku@cpan-smoker-openbsd:~/cpan-openbsd-smoker]$ mversion CPAN::Distroprefs
6.0001
[goku@cpan-smoker-openbsd:~/cpan-openbsd-smoker]$ perl -v

This is perl 5, version 32, subversion 1 (v5.32.1) built for i386-openbsd

The Ubuntu box is running:

perl 5, version 34, subversion 0 (v5.34.0) built for x86_64-linux.

Both without ithreads support, but the perl on OpenBSD is patched (by the maintainers), so that might explain the difference.

Anyway, I think it's worth to document all this and I'm willing to provide a PR for that. Any suggestions where I should do it? Maybe the CPAN's distribution Pod?

Regards,

Alceu





  • how to specify ... Alceu Rodrigues de Freitas Junior via cpan-testers-discuss
    • Re: how to... Slaven Rezic
      • Re: ho... Slaven Rezic
        • Re... Alceu Rodrigues de Freitas Junior via cpan-testers-discuss
          • ... Slaven Rezic
            • ... Alceu Rodrigues de Freitas Junior via cpan-testers-discuss

Reply via email to