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