[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: