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

Re: idea: generalized soft dependencies

On Wed, May 8, 2013 at 8:51 PM, Eugene V. Lyubimkin <jackyf@debian.org> wrote:
> Soft-Depends: a {90%}, b (>= 1.2) {20%}, c (>= 4) {99%}, c (>= 6) {70%}

If we assume its already hard to decide "recommends" or "suggests" it will
be impossible to choose a number between 0 and 100. Basically we are rating
likelihood of usage here and while the one provided by "a" will be a
common one for many, I am not up to the task of deciding if it will be
used by 90%, 80% or "just" 70% so naturally numbers will be assigned at
"random", which in turn means as a user I can't say: hey, install if
>= 70/80/90 as it means something different for everyone.

> Soft-Depends: iceweasel {50%,tag:desktop}, curl {95%,if_not_installed:wget}

So supposedly on 50% of all desktops iceweasel is installed which can
in turn be used by the software having this dependency. Great, but I still
have no idea why 50% installed it and 50% don't.
Which 50% group I am part of? The tag desktop might give a hint, but
such tags need to be defined and carry a meaning. A tag like "laptop"
tells me that it will help with powersaving (which would probably be the
better tag name, as I will like want to install it on my phone too),
"printing" is useless if I don't have a printer, "online" and "streaming"
might not be the best ideas if I have no internet connection at all …
That's a lot harder of course, but caries way more useful information as
I have no idea how many people don't have their own nuclear power plant,
highspeed internet or a printer. 30, 50 or 90% ? I might be able to answer
that in my area (and I would probably still be wrong), but not on a global

> Soft-Depends: debdelta {10%,text:"to enable automatic delta downloading"}

While this solves the why, we have a new problem: Translations
And these texts are quickly written in a way a user can't use:
What the hell is a "delta"? -> debian-l10n-english to the rescue!?

Its really up to the debdelta package to tell the user what it does as in
this case it seems to be a plugin, so this should be an "Enhances" even if
from a technical point the "glue" to use debdelta is in the package the
enhances would point to.

Of course, this doesn't work if wget is used instead of debdelta in the
example as wget is used by a lot of stuff, but always for the same task:
So annotating all dependencies on wget with the tag use:downloading just
feels wrong. And the package wget is already tagged with use:downloading,
we just don't make proper use of this so far.

So in summary, I see a need for it, and I would like to reserve the syntax
we will use for build-profiles in build-dependencies also in "normal"
dependencies as use-profiles (as Johannes has already pointed to), but we
should really use the current information we already have much more and
take the new syntax we could use in ~2 releases as an override/selector
(e.g. iceweasel has 3 uses, so we could select which one is meant).

Best regards

David Kalnischkies

Reply to: