Re: Packages in contrib solely because they allow using non-free software
On Sun, 04 Apr 2021 at 13:23:14 +0200, Joerg Jaspert wrote:
> On 16093 March 1977, Dominik George wrote:
> > That surprised me. If a package is free software, in ful laccordance
> > with the DFSG, why is it put into contrib?
> There is, as usual, no clear answer.
> The policy for main is clear on that it needs to be self contained. So
> software in main must not require something outside to work and do its job.
> Contrib is the area where that is allowed. License wise its the same as
> main, but it allows to depend on something not available for building or
There was some discussion relevant to this on debian-devel-games earlier
this year: the subthread starts at
I don't think the rule can be as simple as "must not require something
outside to work and do its job", because we have Free clients for non-Free
network services (like all the instant messaging services that used to
exist), and those were always in main. Similarly, it would be absurd to
kick out email clients into contrib just because they are primarily used
to read non-Free email messages like this one! :-)
As I mentioned on d-d-games, one of the major things I tend to ask myself
when thinking about the borderline between main and contrib is: if the
content that this package downloads was somehow in the Debian archive,
would the downloader have a Depends or Recommends on it, or would it be
a Suggests or no dependency at all?
Another factor in choosing main or contrib, for me, is whether the
downloader is specifically hard-coded to work with particular content,
or whether it generically works with any content in a particular
format. game-data-packager and quakespasm are both close to the main/contrib
borderline, and this factor is why I think they are in the correct archive
areas: g-d-p downloads and repackages specific non-Free games, so it's
in contrib, whereas quakespasm can play any Free or non-Free set of
Quake-compatible levels, so it's in main.
I think winetricks is *probably* correctly in contrib, because it has
hard-coded knowledge of how to best to download and install specific
non-Free Windows DLLs? Like game-data-packager, it's quite close to the
line between main and contrib, but I think it does make sense to consider
it to be on the contrib side of that line (although I'm sure I could be
As Joerg says, this is all fairly subjective and unclear, but I think we
do have an approximately coherent policy for what can and can't be in main,
and that's realistically the best thing we are going to get.