Re: Perl on Reddit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Legacy Announce]     [Fedora PHP Devel]     [Kernel Devel]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Big List of Linux Books]     [Gimp]     [Yosemite Information]
  Powered by Linux