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

Re: [joy@cibalia.gkvk.hr: Re: Bug#66788: acknowledged by developer (mutt: mutt depends on doc-base)]



On Tue, Jul 11, 2000 at 07:29:06PM +1000, Herbert Xu wrote:
> > > >  >... but the package shouldn't have Depends: doc-base, just this:
> > > >  >
> > > >  >if command -v install-docs >/dev/null 2>&1; then
> > > >  >  install-docs -i /usr/share/doc-base/mutt
> > > >  >fi
> > > > It does. I'll close the bug.
> > > 
> > > But it doesn't work properly.  The problem I had was because doc-base
> > > depended on perl5 which weren't installed yet.  So even though install-docs
> > > existed it did not work.
> > 
> > This is surely not a problem with mutt package per se:
> > 
> > [joy@pork:/var/lib/dpkg/info]% grep 'command -v install-docs' *.p* | wc -l
> >     119
> > 
> > Any one of these may have broken. I suggest you raise this question on
> > -devel mailing list.
> 
> OK.  Currently most developper who use install-docs in their postinst script
> applies a command or -x test to determine whether it's available rather than
> having an explicit dependency on doc-base.

Note also that the doc-base manual section 2.4 `Registering documents using
install-docs' recommended the current way of doing this. :|

(/usr/doc/doc-base/doc-base.html/ch2.html)

> Unfortunately, this isn't enough since install-docs has its own dependencies
> which may not be satisfied even though install-docs itself exists.  Bug
> report #66788 is such an example where install-docs in mutt's postinst
> failed becaused perl5 wasn't configured yet.
> 
> There are three obvious solutions:
> 
> 1. Replace the existence test with a dependency in every package.
> 2. Make doc-base essential.
> 3. Rewrite doc-base so that it no longer has any non-essential dependencies.
> 
> So fellow developers, please express your opinions so that we can have this
> one nailed for woody.

I'd say the third option should be good... actually,

% egrep '^(use|require) ' /usr/sbin/install-docs # hopefully that's all
use File::Basename;
% dpkg -S $(locate File/Basename.pm)
perl-5.005-base: /usr/lib/perl5/5.005/File/Basename.pm

That package is de-facto `Essential: yes', as perl-base pre-depends on
perl5-base, a virtual package that perl-5.005-base provides.

Presuming other parts of doc-base do use perl5 (i.e. non-essential Perl), we
could move install-docs to debianutils, and hack it up to check if doc-base
package is in place and functioning before doing its stuff. Then again, if
we could test doc-base is functioning somehow, there'd be no need to move
install-docs out.

Make doc-base have `Pre-Depends: perl5'?

-- 
Digital Electronic Being Intended for Assassination and Nullification



Reply to: