Bug#681419: Alternative dependencies on non-free packages in main
On Fri, 13 Jul 2012, Russ Allbery wrote:
> Don Armstrong <email@example.com> writes:
> > For example, if foo conflicted with baz, but foo-nonfree did not
> > and baz was installed, foo-nonfree could be installed in
> > preference to foo without the user specifically asking for
> > foo-nonfree.
> It seems like it would be difficult for the person adding the
> alternative dependency to know whether this is the case, and it
> could change later without any changes to the package that has the
I believe they could know at the point they added the dependency, but
it could certainly change at some point later in time. That'd just
result in a bug when it was found.
> More broadly, if it's there as an alternative dependency, then I
> think it's hard to know whether the dependency evaluation scheme
> might choose to pull it in for other, less obvious reasons. For
> example, the non-free version might have fewer dependencies, or the
> free version may have dependencies that have transient
> installability issues. I don't see how to guarantee the behavior
> that you want.
> I had previously assumed that we weren't worrying too much about
> issues like that because the end-user had to have explicitly enabled
> the non-free repository to have any of the non-free packages become
> candidates, and that (having enabled that repository) they were
> requesting the best possible dependency resolution including the
> non-free repository.
This disadvantage is that normally you have to install specific
packages in non-free because nothing in main will pull them in. I'm
primarily worried about someone accidentally pulling in a non-free
package which has some kind of restrictive usage license.
A possible compromise would be to only allow this kind of alternative
dependency on non-free packages which do not have usage restrictions.
I'd sign up in a hot second for any cellular company whose motto was:
"We're less horrible than a root canal with a cold chisel."
-- Cory Doctorow