Petr Pisar wrote:
That's nice theory that will never come true becaue it would
require to
make all Perl code parallel-installable. And Perl code is not only
libraries as in the Python language. That's also myriad of Perl scripts
that you want to have in PATH.
But the scripts do not need to care about the version of Perl you are
running, do they? It matters for compiled code, but why for Perl scripts?
Those can just run with the default version of Perl if they support it, or
with the shebang line changed to something like #!/usr/bin/perl5.30 if
that's what they require.
If you start fidling with things in PATH, you have the problem of
SCL. And
as you wrote, SCL is terrible. And that was the reason why we have
modularity: We do not want to relocate code to non-standard paths.
I agree that the SCL approach is not optimal, but letting the versions just
conflict is much worse!
The best way to deal with conflicts in PATH is to suffix the binaries, not
to move them. But that is only needed when it makes a difference for the end
user which version they run. If the executable script "foo" does the exact
same thing when run under Perl 5.28 or 5.30, then you need only one
/usr/bin/foo set up to run against the distribution default Perl, the other
one is redundant (which is the nice thing about parallel installation: you
do not have to support running all the executables under a non-default Perl,
only those that actually need it).
I think it's inevitable that there will be conflicts and it's
better to
have them managable with a package manager (i.e. having default
streams) rather crates few modules that silently overlay non-modular
packages whe a user enables them.
The parallel installablity is nice, but it's way more difficult than
parallel availability.
I think that any model that has conflicts is not workable for the Fedora
user base. Desktops and small servers are not normally containerized, so
being able to install different applications without conflict is a non-
negotiable requirement.
I see only 2 ways to provide a newer Perl for Fedora:
1. as a parallel-installable compatibility package, or
2. as a grouped official Bodhi update including a rebuild of all packages
depending on the old Perl ABI
(and only the first one is suitable if you wish to provide an older Perl,
because you should not be downgrading the system Perl).
Failing those, the only option is really:
3. just don't do it.
Providing a perl:5.30 module replacing the system Perl (and breaking
everything in the distro depending on it) is essentially useless and does
not provide much value over option 3.
Kevin Kofler