On Fri, Jun 09, 2017 at 01:49:25PM +0200, Petr Šabata wrote: > The way perls packaged is intentional and small installation > footprint wasn't, as far as I know, the reason. It was more > of a general modular (ha) packaging rule -- perl, as a source > package, is the same as whatever upstream ships in their tarball. > It is then split into subpackages, where perl is just the > interpreter and dozens of the bundled modules are available > as subpackages. The same perl modules are also available as > standalone packages so they can be updated. This allows people > (and packages) install only what they need which is rarely the > entire installation of perl which, among other things, pulls in > gcc and the entire C development toolchain. That's the default > upstream perl experience, after all. Doing so in Fedora was > deemed unacceptable. > > People who expect the whole thing can always install perl-core. > Perhaps there could be a 'Perl Development' comps group, too, > to make this option more visible. > > Using weak dependencies would install C development tools on > practically every system by default. I don't think that's the > answer here. > Perl maintainer here. It is as Contyk writes. Upstream bundles Perl interpreter with a hundred of Perl modules and for various reasons Fedora splits them again into miriad of subpackages. The basic reason is modularity (for packagers, infrastructure, as well as users). The problem the original poster describes has very simple solution. Specifying all dependencies. If a Perl code uses a Perl module, then the code should declare a dependency on the module. This is how it works in upstream on CPAN (see META.json or META.yml in CPAN distributions) and how it works in Fedora (see Requires and Provides in Fedora packages). I recommend reading recent blog post <http://blogs.perl.org/users/neilb/2017/05/specifying-dependencies-for-your-cpan-distribution.html> that helps Perl authors to understand how vital dependencies are and how to specify them properly. Regarding changes in Fedora, adding a dependency on Recommends level is bad option because it does not bring Fedora users any benefit. It would only install packages that are not needed for other pieces of Fedora software. And that's because Recommeds is enabled by default in DNF. We could add Suggests kind of dependency. But that would also not help much because no package manager in Fedora presents to users this kind of dependency. There was a moment when we delibareted on swapping perl and perl-core package names so that installing "perl" would brought everything what upstream ships. But we dismissed the idea because of backward compatibility in Fedora. There are thousands of packages that rely the names. In my opinion, even upstream regrets the idea of bundling all the modules and one can sometimes see long flame wars about which module should be there and which shouldn't. Lookging at future, Perl6 upstream took the issue seriously and tries its best not to bundle any modules unless really necessary. -- Petr
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ perl-devel mailing list -- perl-devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to perl-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx