Ben Finney wrote:
> I maintain that the error message (as initially reported) is unhelpful 
> for knowing what's wrong. The 'Suggests' control field is good, but 
> the error message doesn't lead the user to look there. If a plugin is 
> installed by the 'ikiwiki' package, it's rather counter-intuitive that 
> the plugin won't work at all until further packages are installed.

It's actually not counterintuitive for minor package features or unusual
configuration options to require suggested packages be installed. This is
a common pattern in debian, with countless examples.

> Perhaps the solution is to make the error message unnecessary, by 
> having the dependencies structured differently:
> 
> Since you say that certain libraries are required for any external 
> plugins to work, would it not make sense to have those external 
> plugins in a separate 'ikiwiki-plugins' package that itself depends on 
> the required libraries?
> 
> Then, 'ikiwiki' could 'Suggests: ikiwiki-plugins', and it would be 
> much clearer at install time that to get any plugins working, the 
> 'ikiwiki-plugins' package must be installed.

The hypothetical ikiwiki-plugins package would depend on rather a lot of
stuff, that would be unlikely to be used by most users who only use a plugin
or two from it:

libsearch-xapian-perl, xapian-omega, librpc-xml-perl, libtext-wikiformat-perl,
python, python-docutils, polygen, tidy, libxml-feed-perl, libmailtools-perl,
perlmagick, libfile-mimeinfo-perl, libcrypt-ssleay-perl,
libtext-typography-perl, libtext-csv-perl, libdigest-sha1-perl, graphviz,
libnet-amazon-s3-perl, sparkline-php, texlive, dvipng

But, even assuming that the VCS plugins and other core plugins (inline,
etc) are not included in ikiwiki-plugins, it would not be uncommon to
need to install it, pulling all of the above in. (And I don't think that
splitting things up to ever finer levels of granularity to deal with
that is a good path.)

And yet even with this change, ikiwiki could still be configured in ways
that make it complain about missing packages that are not in its
dependencies, including:

gcc, libc6-dev, subversion, git-core, tla, bzr, mercurial, monotone,
libxml-simple-perl, libnet-openid-consumer-perl, liblwpx-paranoidagent-perl,
libtimedate-perl, libcgi-formbuilder-perl, libcgi-session-perl,
libmail-sendmail-perl, libauthen-passphrase-perl

You certianly don't want to install all of these as hard dependencies, but
based on the configuration various ones will be needed.

The approach I've chosen for ikiwiki is to make packages that all, or
all except for very unusual configurations need be in the Depends;
packages that a typical wiki will need be in the Recommends; and all
else in the Suggests.

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature

Reply via email to