Re: alternative dependency ordering - with respect of packages in main
On September 20, 2011 02:24:33 PM Stefano Zacchiroli wrote:
> On Tue, Sep 20, 2011 at 01:12:37PM +0200, Gerfried Fuchs wrote:
> > 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?
> I think the first form above ("foo-contrib | foo") is not acceptable. My
> argument is that we should make choice of non-free software an explicit
> action of Debian users, rather than an implicit/automated one.
Would once be fine, or should contrib/non-free users need to make an explicit
choice every first time a package outside of Main is an installation
> Most of our package manager frontends — including the default one — walk
> dependency formulae left to right, preferring the first alternative if
> it is satisfiable. That means that a user installing a package with a
> dependency like the first form above will install foo-contrib without
> necessarily knowing they are doing so.
> I understand it can be argued that users enabling contrib/non-free have
> decided to opt-in for non-free software. But I still don't think such a
> system-wide should be taken as a wildcard to install contrib/non-free
> packages without user consent.
> If there were a way to fix a system-wide dependency solving preference
> that would favor main packages by default, unless explicitly customized
> by the sysadm, the first form might be (more) acceptable. I don't think
> it is acceptable without it.
Debian already favours Main packages by default and the sysadmin/user must
explicitly choose to add Contrib and Non-free to the sources.list if they want
packages from those archives--why isn't that a good enough flag of the
sysadmin/user's dependency solving preferences?
AFAICT: A "system-wide dependency solving preference" is the same as asking
once and is logically no different from having contrib and/or non-free lines
in sources.list, or not. i.e, If the sysadmin wants to consider non-Main
packages as solutions then contrib/non-free must be in the sources.list, and
if they don't there is no point having them there. So, its not an
additional/redundant preference that needs to be set, it is the tools which
need to favour Main packages as solutions to dependency problems regardless of
whether they are A, B, or C, in an A|B|C statement... I'm assuming the
objective is to stack the deck to favour DFSG-free software.
Personally: I'd like to see any philosophical overloading of dependency
statements disappear. The statement "A|B|C" should mean that A is the best
choice from a technical perspective (stability, functionality, etc.) Those of
you who don't want to pollute you system with non-DFSG-free packages can
simply avoid putting contrib and/or non-free in your sources.list. Anyone who
wants a finer grained mix than what including Contrib and Non-free, or not,
gets you will need to play with pinning.