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

Re: "Please drop perl dependency" bugs



On Tue, Nov 16, 2010 at 05:31:49PM -0500, David Golden wrote:
> On Tue, Nov 16, 2010 at 1:46 PM, Niko Tyni <ntyni@debian.org> wrote:

> >> 2) Many CPAN module authors do not declare "core module" dependencies.
> >>  They assume that if Perl 5.8 or 5.10 is installed, that all of the
> >> core modules of that release are available.  By removing core modules,
> >> it makes the CPAN module packaging process more complex if
> >> dependencies have to be heuristically determined.  Alternatively, you
> >> could have every packaged CPAN module depend on the full perl package,
> >> but that seems like it would somewhat defeats the point of shipping a
> >> minimal perl as the first CPAN package to be installed pulls in the
> >> full perl anyway.
> >
> > I don't think this is a showstopper for the official Debian packages of
> > CPAN modules. Any missing dependencies should usually show up in the
> > packaging process when the tests are run in a clean chroot with only
> > the listed dependencies installed. The rest are just bugs that will be
> > fixed when they are noticed.
> >
> > Any unofficial automatically generated debianizations of the CPAN modules
> > could still depend on the full perl package, of course.
> 
> I think you need to think about two audiences.  One audience installs
> things entirely with Debian packages.  The other audience installs
> things directly from CPAN, hopefully into a local library (not a
> system library with sudo).  For the former group, what you describe
> works fine.  For the latter group, it doesn't.

Oh, I think CPAN.pm and CPANPLUS.pm should definitely be in the full
'perl' package or something that pulls it in. Ideally, they would get
automatically accompanied by things like gcc and make.

I think this is a separate issue from your earlier point, which I read
as handling Debian packaging (official or otherwise) of CPAN modules.
Sorry if I misunderstood you.

> >> 5) I see no problem with shipping a very minimal perl with Debian if
> >> it were to be named something other than /usr/bin/perl.  

> > Unfortunately I don't think this is a realistic option for us. It's not
> > about just the critical parts of the Debian infrastructure: currently all
> > the 30000 packages in Debian are allowed to rely on /usr/bin/perl being
> > always present and working, including during system upgrades.
> 
> I don't see that a crippled core perl package is very different in
> principle.  You still need to break everything to find the missing
> dependencies.  The difference is that the fix is just dependencies
> instead of code.

I don't intend to break anything. All the packages in Debian needing Perl
currently either depend on 'perl' [which would continue to exist and
offer all the current functionality], or only use functionality from
'perl-base', which does not need to be touched at all.

The packages depending on 'perl' could then be modified to more fine
grained ones gradually over time, giving a smooth transition.

> If you have to stick with one /usr/bin/perl, then maybe an analogy to
> something like how python is handled wouldn't be terrible (as I
> understand it).  I.e. A "perl-minimal" package and a "perl" package
> (that also pulls in perl-doc).  I guess that might be similar to
> "perl-base" but more explicitly "minimal" and would allow for
> installing "perl" to bring in "perl-doc" as well.  Then it would seem
> the question is whether a "perl-minimal" could be smaller than
> perl-base and how many existing packages could be made to depend on
> "perl-minimal" instead of "perl".

I wasn't going for anything smaller than perl-base.

I'm thinking of something like

Package: perl-base
 (no change from now)

Package: perl-libs (or whatever)
Depends: perl-base
 contains all the standard libraries that aren't in the separate packages

Package: libfile-basename-perl
Depends: perl-base
 an example of a separate binary package, built from the perl tarball, not
 needing anything outside perl-base
 
Package: libcgi-pm-perl
Depends: perl-base (or perl-libs if necessary)
 an example of a separate package, possibly coming from its own source
 package from CPAN and not the perl tarball

Package: perl
Depends: perl-libs, libfile-basename-perl, libcgi-pm-perl, ...
 - might contain CPAN.pm and CPANPLUS.pm for reasons described above
 - eventually when enough packages have been converted to use perl-libs,
   this could depend on perl-doc as well

This way Ubuntu could possibly manage with just perl-base and
libfile-basename-perl and a few other separate modules on their CDs without
patching the packages to reimplement standard library functions.

Eventually, Debian users installing just packaged Perl applications would
normally get perl-libs and maybe a few other separate module packages.

And I could hopefully dump the maintenance of the separately packaged
dual life modules to the Debian Perl Group :)
-- 
Niko Tyni   ntyni@debian.org


Reply to: