Comment # 4 on bug 1214303 from Michael Schröder
Perl does not provide API compatibility with the minor version, i.e. you can't
run 5.36 binary modules with 5.38 perl.

The API is compatible with patch versions, that's why there are the
perl(:MODULE_COMPAT_XXX) provides. If a new patch version is released, a new
provides is added so that all the old patch versions are still provided.

The version requires is a result of the search path built into perl. For
example, perl -V will show the following include path:

    /usr/lib/perl5/site_perl/5.38.2/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.38.2
    /usr/lib/perl5/vendor_perl/5.38.2/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.38.2
    /usr/lib/perl5/5.38.2/x86_64-linux-thread-multi
    /usr/lib/perl5/5.38.2
    /usr/lib/perl5/vendor_perl/5.38.0/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.38.0
    /usr/lib/perl5/site_perl

As you can see, perl looks both in the 5.38.2 and 5.38.0 directories for
modules. A module compiled for an old version is simply not in the search path
and thus cannot be found. So the requires in the package is needed.


You are receiving this mail because: