Bug#681419: Alternative main->non-free dependencies text
So I promised to write up my position on this. Sorry it's taken so
Firstly, I think it's very disingenous to say that putting
"Recommends: foo | bar" is not a recommendation by Debian of bar.
Mentioning in a positive way such specific non-free software is
clearly an endorsement, no matter any official position statements
claiming that it isn't.
The fact that the word "Recommends" is used is not just a matter of
"invisible" package metadata. It appears in many places
(packages.d.o, package manager UIs, etc.) And there are no "hygiene"
rules about when alternative names should be displayed, so that (for
example) a user who choses not to enable non-free isn't presented
(say when they try to remove "foo") with a suggestion to install a
It is utterly trivial to use neutrally-named virtual packages instead,
in this case. There are no cases of versioned dependencies.
The main goal of the project is promoting software freedom. We should
not undermine that by promoting non-free software when it is so easy
to avoid doing so.
We aren't (or at least I'm not) proposing to make these cases a
release-critical bug. It should however be a bug that should be
recorded in the BTS, and which interested parties can work on to
improve make Debian better promote software freedom.
Also a relevant consideration is what people like the FSF think of us.
I think we should be willing to make this small concession in order to
work better with our allies. The concession doesn't threaten our
principles at all. (Unless it's against our principles to take
account of the views of our allies and do a bit of extra work to make
them happier with us - which I hope it isn't!)
(I think a weaker version of the same argument applies to Suggests. I
haven't seen statistics about how many Suggests we have from main to
non-free. If there are lots then it would make sense to implement
Enhances instead. But at this stage I don't propose to argue about
To put all this in the form of alternative paragraphs for a
4. Listing a package explicitly in a Recommends field clearly states
that we are recommending it, even if the package appears only as
a secondary alternative. Official statements to the contrary are
ineffective at preventing readers from getting the impression
that packages mentioned in "Recommends" are being recommended.
5. One of the main goals of the Debian Project is to promote
software freedom. Promoting software freedom includes avoiding
promoting non-free software, at the very least when it's
straightforward to do so.
6. The alternative, of using a neutrally-named virtual package, is
only slightly inconvenient. Virtual packages are a suitable
existing mechanism for packages to declare the set of abstract
features they provide, and allow packages in main to depend on
such abstract features without needing to name every (free or
7. There are not very many dependencies which need to be fixed.
In any case, changing the policy (without making this a release
critical bug) doesn't constitute a demand that the existing
maintainers do this work. However, it is needed to ensure that
those who do want to do the work can get their changes accepted.
8. The Technical Committee resolves that alternative dependencies of
the form "Depends: package-in-main | package-in-non-free"
constitute a non-release-critical violation of the policy
clause cited in point 1.
9. When it is necessary to provide a reference in a Depends or
Recommends from main to non-free, this should be done via a
neutrally named virtual package.
10. The Technical Committee requests that the policy editors make
an appropriate clarification to the policy documents.