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

Re: "Please drop perl dependency" bugs



On 11 November 2010 21:39, Martin Pitt <martin.pitt@ubuntu.com> wrote:
> There are also perl library packages which don't import any particular
> Perl module, i. e. just use the core perl language.

Perl Policy deals with this in §4.4: if an architecture-independent
library package does not use any core modules, a dependency on "perl"
is not technically required.  Binary packages always require a
dependency.

> Also, libnss-mdns
> just uses "perl -i" in its postinst, but doesn't even ship perl
> modules. Do you think we can at least safely drop the perl dependency
> from those, since they don't make any assumptions about which modules
> perl-base ships? Since perl-base is essential, and there are
> maintainer and init scripts written in perl, it's guaranteed that
> /usr/bin/perl is available, after all.

Using in a maintainer script is fine, and does not require a
dependency unless a particular version is required, or modules outside
of those included with perl-base are used (in which case a pre-depend
is needed).  In this case, libnss-mdns does not require any depends.

The modules which were initially included in perl-base were determined
by looking at the uses by packages in the base system and installer,
then adding whatever else was required to make that function.
Subsequently, modules have been added when new upstream releases
changed what was required to make either Perl, or the modules we were
including run.  Modules have also been occasionally added at the
request of the installer team.

The wording in policy about the contents of perl-base is intentionally
loose.  The idea was tha trivial uses (such as the "perl -i" which
libnss-mdns uses) would work fine, and things that were more complex
would declare a dependency (as per policy), or would work with the
perl maintainer to ensure that the requisite modules were
included--something which was limited to developers of the installer
and packages in the base system.

This may sound ad-hoc, but in practice it works pretty well so long as
only exceptional cases require perl-base, and everything else requires
perl.

--bod


Reply to: