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

Re: using perl in preinst script



* Russ Allbery [2010-12-27 08:49 -0800]:
> Luk Claes <luk@debian.org> writes:
>
> > I thought there were some plans to try to get rid of perl-base being
> > essential, in that case only shell (or C?) is a real alternative.

We are not that far away from being able to implement this plan.  One
reason for this is that dpkg's perl scripts were rewritten in C.

After debootstraping the minbase variant of sid, installing file-rc and
removing insserv, there is not much perl left in the newly created
system.  The remaining perl library packages could be removed after
installing debconf-english.

Remaining perl scripts are:

 * chkdupexe from util-linux:

   This is short and could easily be replaced by something written in C.
   Alternatively, the following untested snippet could be prepended to
   chkdupexe:

   #!/bin/sh
   [ -x /usr/bin/perl ] && exec perl -x -- "$0" "$@"
   echo >&2 "Please install the package perl-base."
   exit 1

 * debconf:

   cdebconf exists and there is bug #328498 about switching to cdebconf
   as default, blocked by four other bugs.

 * pam_getenv and pam-auth-update from libpam-runtime:

   pam_getenv is 76 lines of code.  pam-auth-update is 490 lines of code
   and has been added after Lenny has been released.

Additionally, the preinst and postrm scripts of linux-image-* are
written in perl and kernel-package generates packages with perl
maintainer scripts.

Using debhelper to add the dependencies on perl-base for packages that
need them could reduce the required effort.  Doing this early would ease
ensuring sane upgrade paths.

> I cannot imagine this ever happening at a practical level.

Not if people continue to add new perl scripts to essential and to write
new preinst scripts in perl.


Regards
Carsten


Reply to: