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 > working.
There was some discussion relevant to this on debian-devel-games earlier this year: the subthread starts at <https://lists.debian.org/debian-devel-games/2021/01/msg00014.html>. 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 convinced otherwise). 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. smcv