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

Re: Metapackage dependencies: "Depends" or "Recommends"?



* Ole Streicher <olebole@debian.org> [150728 05:15]:
> Hi,
> 
> I recently created two metapackages (astromatic and eso-pipelines) which
> were accepted by the ftp-masters yesterday. However, I got a commend
> that my choice of "Recommends" dependencies is discouraged:
> 
> Paul Richards Tagliamonte <ftpmaster@ftp-master.debian.org> [1]:
> > using Recomends and not Depends on the metapackage strikes me as very
> > awkward. I think I get what you're trying to do (allow folks to remove
> > one package they don't want, I guess), but I really don't think that's
> > quite right.
> 
> What is the rationale behind this? From the policy, I would think that
> "Recommends" is the perfect dependency here [2]:
> 
> | Recommends
> | This declares a strong, but not absolute, dependency. The Recommends
> | field should list packages that would be found together with this one
> | in all but unusual installations.
> 
> Why should one use the much stronger "Depends" here?

I strongly believe Recommends is correct.  First, this is clearly what
the policy states.  Second, it allows you to use the package manager the
way it was intended (which is the reason for the definition in policy).

If you use Recommends, you put the user in control of what is on his/her
system.  You can install the whole metapackage, or just the parts you
want, but still have the whole thing removed by removing the
metapackage.

If you use Depends, the user has two choices, install everything, or not
use the metapackage.

Take the metapackage games-finest.  If all of those packages were
Depends instead of Recommends, you could not remove a small handful of
the larger games (e.g. wesnoth, at 153M) without marking every single
game you wanted to keep as "manual" and then removing the metapackage.
You then lose the ability to remove all of those games simply by
removing the metapackage.

There is no downside to using Recommends and no upside to using Depends
for metapackages.  I believe that policy should explicitly mention
Recommends as the correct dependency for metapackages.

A metapackage should not be a hammer to beat the user into installing
everything you want them to, it should be a tool to allow the user to
easily select a group of related packages that make sense to install
together.  Any real Depends relationship should be specified in the
sub-packages.  Note that games-finest Depends on games-tasks; this is an
example of correct use of Depends in a metapackage.

...Marvin


Reply to: