Several binary packaging systems (notably RedHat Linux, Debian GNU/Linux and ActiveState ActivePerl) have a recurring problem with "dual-life" modules.
These are modules that come with the Perl core, but are also distributed via CPAN.
The primary problem seems to be that binary packaging systems consider files to be inviolate. They freak out and can't handle the idea that there might be two packages which contain the same file, where the file from one of the packages can be legitimately installed over the top of the other.
It seems to be that we might be framing this in entirely the wrong terms.
These dual-life modules aren't so much two separate packages, but represent "updates to the Perl standard library".
Can we provide some assistance to the various Perl packagers in this regard?
Should upgrades to, say, Test::Builder on CPAN mean that they should upgrade their core Perl distribution to a new revision?
I've already had a debian packager tell me he couldn't upgrade the debian PPI pacakge (and thus upgrade perlcritic) because I updated my Scalar::Util dependency to a version newer than provided by the core.
If we the Perl community (in the loose sense of the word) provide an official recommendation that packagers should incorporate upgrades to dual-life modules into their core Perl package, this might provide some assistance to corporate requests to people like RedHat to upgrade their Perl packages, because the official guidelines say to...
Antiquated concepts (Score:1)
I think (part of) the solution is something that came up in the hallways of YAPC::EU a couple of times: de-core most of the modules and dual-life everything that can feasibly be.
Now it just needs to happen…
Re: (Score:1)
Igor Sutton
Re: (Score:1)
What I just don't understand is why we have dual-life modules install to CORE rather than site, if the module is being upgraded beyond the "core" version that comes with Perl.
Re: (Score:2)
Re: (Score:1)
Of course, then I'd have to create some form of certification and that would mean joining the TPF and that's a whole other ball game.
Perhaps "compliant"?
That way I can file a bug via RedHat Enterprise Support saying "The Perl packaging for blah is non-compliant"
Just make sure the docs have some for of "No Really, Do It This Way" to them
Re: (Score:2)
Re: (Score:1)
I'm talking about a compliant setup for the binary packages, not for the Perl distribution itself.
Re: Antiquated concepts (Score:1)
UNINSTExtUtils::MakeMakerparameter is for (--uninstallforModule::Build). See for example CPAN-RT#22130 [cpan.org].Close the world. txEn eht nepO
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
Re: (Score:1)
A distribution-supplied update to a core module should go into vendor. That leaves site (probably under /usr/local/) free for the local sys-admin, who may wish to manually install newer versions of modules than those supplied in the vendor's packages.
Re: (Score:1)
Perhaps they should use an "Override" directory (Score:1)
One obvious thing to consider is to have an "override" directory added to @INC. For further discussion of that option, please see the section:
=head2 Why isn't there a directory to override Perl's library?de-core most of the modules? (Score:2)
Re: (Score:1)
There are already many vendors who slice and dice the Perl package. There’s no real guarantee that a module will be there even if it’s “in core” anyway. We would just be blessing the de-facto situation. Hopefully an insistence on code modules only would then become untenable for enough people that maybe someone would finally find motivation for a good module bundling solution.
As for the places which would still insist that only core modules be used, well, I don’t think we can
Re: (Score:2)
Re: (Score:1)
You are making no sense whatsoever.
Re: (Score:2)
You said:
Rsnapshot doesn't require any non-core modules, and so has had to reinvent various wheels. Which, I guess, makes me, the current maintainer, stupid.
What doesn't make sense is removing stuff from the perl 5 core distribution. Although I live in hope that perl 6 will be slim and sylph-like, with only those modules included which are required to easily
Re: (Score:1)
When I say “stupid”, I mean workplaces that could easily install modules but refuse. Writing what’s effectively shrink-wrap software in Perl (ie. rsnapshot has to run on any number of machines, none of which you have any control over) is a very different situation.
However, even in your case, I don’t know that trimming down the core would be a problem. Are you better served working against a) a large but insufficient core, reinventing various wheels as needed, or b) a minimal core a
Debian (Score:1)
In Debian's case it's (largely) true that one file path belongs to one package, but that isn't actually a problem for dual-life Perl modules. Core modules (such as
CGI, which come in theperl-baseandperl-modulespackages) and Cpan modules (such asYAML, which each come in their own packages, such aslibyaml-perl) are installed to diRe: (Score:1)
split them out altogether? (Score:1)
Re: (Score:1)
Re: (Score:1)