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

Re: alternative dependency ordering - with respect of packages in main

On Thu, Sep 22, 2011 at 10:25:06PM +0200, Bill Allombert wrote:
> >  I know that the buildd system likes to pull in the first package in
> > such an alternative dependency chain.  And now I start to wonder:

> >  Is it allowed for a package in main to have a package _outside_ of main
> > as first component of an alternative dependency?  The package in
> > question is extremely unlikely to ever be used as Build-Depends, so this
> > is of a more general question.

> >  What also might be used as argument is the social contract, DFSG #4:
> > "Our priorities are our users and free software" -- it can be argued
> > that we don't put the priority on free software in such a case.

> >  tl;dr - what do you think, is a "Depends: foo-contrib | foo" acceptable
> > for packages in main or should it be "Depends: foo | foo-contrib"
> > instead?

> Policy 2.2.1 forbid both usages: it says:

>  the package must not declare a "Depends", "Recommends", or "Build-Depends"
>  relationship on a non-_main_ package

> Nowhere in policy there is an indication that the first alternative is
> special.

That is a bug in the policy wording.  What is meant by "Depends
relationship" and "Recommends relationship" is "the package must not under a
normal configuration cause a package outside of main to be pulled in to
satisfy the dependency", which is the *relationship* expressed; it does not
mean that a non-free package may not appear anywhere in the Depends *field*.

> I suggest that foo-contrib Provides: foo instead.

Are you sure that can't give results that are contrary to policy's intent?
Whereas 'Depends: foo | foo-contrib' will always install the real 'foo' by
preference, as far as I know once you make foo-contrib Provides: foo,
'Depends: foo' could result in 'foo-contrib' being given preference
arbitrarily.  Or does apt have a guarantee that real packages will be given
preference, or that main packages will be given preference over non-free
ones, when resolving virtual packages?

In any case, you can't have versioned provides, so there are some use cases
where this would still not be sufficient.

Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org

Attachment: signature.asc
Description: Digital signature

Reply to: