Free system distributions

Comparing different concepts of free system



What is a free system?

An operating system consisting of free software and satisfying certain criteria may be called a free system distribution.

Different people have proposed different sets of criteria or guidelines to be complied with by a system distribution, in order to be considered as a truly free system.

Debian Social Contract

The Debian Project promises to produce the Debian system and to abide by a set of commitments. It can be said that this is basically a promise to produce a free system (called Debian), accompanied by Debian's own definition of free system.

The promise and the definition are embodied in the Debian Social Contract, which consists of five commitments, followed by the Debian Free Software Guidelines (which are part of the Social Contract itself).

The commitments are:

  1. The Debian system will remain entirely composed by free works, according to the Debian Free Software Guidelines, and will never require non-free components.
  2. Components of the Debian system developed by Debian Project members will be free according to the Debian Free Software Guidelines. The Debian system will be made as best as possible, and things such as bug fixes, enhancements and user requests will be forwarded to the upstream authors of the works included in the Debian system.
  3. Problems will not be hidden from the public: bug reports will promptly become visible online and will stay so at all times.
  4. The Debian Project will be guided by two priorities: the users of the Debian system and the free software community. The Debian Project will not object to any kind of work (free or non-free) intended to be used on Debian systems. No fees will be charged to people creating or using such works, or creating derived distributions.
  5. The Debian Project acknowledges that certain users may need to use some non-free works: those users are supported through the "non-free" and "contrib" areas of the Debian archive, which distribute non-free works and free works requiring other non-free components, respectively. Packages from these two areas are not part of the Debian system: they are just intended to be used on Debian systems.

GNU Free System Distribution Guidelines

The Free Software Foundation (FSF) proposes a set of guidelines as a definition of free system. These are called "GNU Free System Distribution Guidelines" (or GNU FSDG, for short).

  • One of the first things that the GNU guidelines state is the distinction between "information for practical use" and "artistic"/"aesthetic"/"opinion" works. The FSF idea is that, in a free system, all "practical" information must have source available and be provided under a free license, while the other "non-functional" kinds of work may be distributed without source and/or under a license that would be considered non-free, if applied to "practical" works. This is confirmed by a subsequent section, where it is stated that the only requirements for "non-functional data" is to be distributable both for commercial and non-commercial purposes.
  • Another guideline insists that users of a free system must not be steered towards obtaining non-free "information for practical use". The FSF idea is that repositories or recipes or suggestions to install non-free software are not OK, nor references to any third-party repository potentially including non-free software.
  • Another point is that a free system should be self-hosting: this means that all the tools needed to develop and build it must be included in the system itself.
  • One guideline explicitly says that accidental inclusion of non-free code into a free system is a bug that should be fixed, but not an unforgivable mistake. This is repeated similarly in the section dedicated to the commitment to correct mistakes.
  • Another guideline states that non-free firmware files distributed only in non-source form (the so-called "non-free firmware blobs") should be removed from a free system.
  • The GNU guidelines establish some constraints that have to be complied with by trademarks in a free system: trademarks may be included, even if there is the request to remove them upon modification, as long as the practical requirements are reasonable. However, it is not acceptable to use trademarks to restrict verbatim copying and redistribution.
  • Another guideline states that all the documentation in a free system must be under an "appropriate free license".
  • A further guideline goes on by saying that documentation in a free system must not recommend non-free software. This is a variant of the above mentioned guideline against steering users towards obtaining non-free software. Perhaps a softer variant.
  • As far as patents are concerned, the GNU guidelines acknowledge that there are so many of them and they are often so vague, that it is basically impossible to avoid infringing on them: as a consequence, software should not be excluded from a free system on the ground of possible patent issues.
  • The GNU guidelines include a very short section about "malware" stating that a free system cannot include any DRM, back doors, or spyware.
  • Another guideline states that a free system should be actively maintained and have a way to report freeness issues (such as, for instance, a bug tracking system) and to notify users, when those issues are solved.
  • A final guideline insists that a free system should not be named too similarly to a non-free distribution.

The remainder of the FSF text consists of kind requests and suggestions, rather than actual guidelines.

Comparison between different concepts of free system

The Debian Social Contract and the GNU Free System Distribution Guidelines represent two different definitions for the concept of free system. In the following, differences and similarities between them are discussed: the various GNU FSDG are compared with the Debian Social Contract and Debian Project established practice. Comments about my own personal opinion are also added.

  • The first point in the GNU FSDG is the (unfortunate) distinction between "practical" and "non-practical" works. It is known that the FSF applies different freedom standards, depending on what a given bit stream represents.
    • Personally, I think this first point is a very bad start for the GNU FSDG. I disagree with this vision, since I believe that all software should be free, with the same freedom standards, as explained in the essays about the meaning of software and free software.
    • As far as Debian is concerned, it should be noted that the Social Contract insists that all the Debian system must be free according to the DFSG, without drawing distinctions between categories of works. As a consequence, Debian is stricter than the FSF, in this respect. Packages in Debian main (should) automatically satisfy this GNU guideline.
  • A second GNU guideline forbids steering users towards non-free "practical" works.
    • I feel that this guideline goes somewhat too far: it might seem to require censorship, as it could be interpreted as forbidding any kind of reference to non-free software. This interpretation is extreme: it's a fact that non-free software exists (unfortunately!), refraining from mentioning it can be sensible in some cases (wherever there are acceptable free alternatives, for instance), but avoiding any reference at all looks like denying reality. Moreover, I don't agree that merely having a non-free or contrib archive area means that Debian is "steering" users towards obtaining non-free software. It is true that the Debian Project could do something more to better highlight the distinction between Debian (main) and the additional archives (that are not even part of the Debian system): for instance, the packages section of the Debian website shows a clear red "non-free" or "contrib" mark besides all packages that are outside of main, but the Package Tracker does not currently try to visually mark the distinction (one has to carefully look at the section the package belongs to, in order to figure out whether it is non-free/something, contrib/something, or just something). But I don't think that the mere existence of the non-free and contrib archive areas warrants the accusation of "steering" users towards proprietary software.
    • As already noted, the GNU FSDG are stricter than the Debian Social Contract, with respect to this point. Packages in Debian main do not automatically satisfy this GNU guideline; moreover, according to the FSF interpretation, the Debian Project would probably have to drop the non-free and contrib archive areas, in order to comply with this GNU guideline. I do not think that this would be a good thing to do.
    • What would be the effects of the extreme interpretation of this GNU guideline? There are many cases where Debian is used along with some non-free software. For instance, non-free drivers or firmware for hardware that requires them: the issue is obviously a very bad choice of hardware. But what would be worse? People that use Debian with some non-free works and may choose the hardware better next time? Or people that give up and switch to some other less free-software-strict distribution or even to a wholly proprietary OS (and never come back), because Debian does not work with their hardware? The fact is that many people won't ditch their expensive hardware away, just because a GNU/Linux distro won't work with it; they will probably switch to another distro or OS, instead...
  • Another GNU guideline states that a free system should be self-hosting.
    • As far as my own personal opinion is concerned, there is nothing special to say here: I agree with this guideline.
    • The Debian Policy also seems to agree: this point is in common between the GNU FSDG and the Debian Social Contract.
  • One GNU guideline says that accidental inclusion of non-free works into a free system is a forgivable mistake, as long as it gets corrected.
    • I personally agree with this line of reasoning.
    • The Debian Project seems to also agree: this point is more or less shared by the GNU FSDG and the Debian practice (even though, in some cases, Debian seems to be too willing to wait patiently for bugs to be fixed, unfortunately...).
  • There's another GNU guideline stating that a free system cannot include non-free firmware blobs.
    • As far as my own opinion is concerned, I agree with this guideline.
    • The Debian Policy also agrees: this is another point in common between the GNU FSDG and the Debian Social Contract.
  • The GNU FSDG insist that trademark cannot be used to impose impractical requirements or restrictions to verbatim copying and redistribution of a free system.
    • Personally, I think I agree with these constraints.
    • The Debian Project seems to follow similar lines: probably another point in common between GNU and Debian.
  • The GNU guidelines also state that all the documentation in a free system must be under an "appropriate free license".
    • I personally agree with this statement, the way it is written. But I am aware that the FSF means something different from what I mean with that same sentence. First of all, I believe that documentation should not be held to different freedom standards with respect to programs. Hence, I think that the above cited sentence is a special case of the general statement about the requirement for a free system to only include free software. Secondly, I think that a "free license" is appropriate for documentation, as long as it is appropriate for software.
    • Similarly, the Debian Project does not draw distinctions between categories of works, as previously said. On the other hand, the FSF has repeatedly stated that some restrictions (which would not be considered acceptable for free programs) are allowed in what the FSF nonetheless calls "free" documentation. This is therefore a point where the Debian Social Contract is stricter than the GNU FSDG: packages in Debian main (should) automatically satisfy this GNU guideline.
  • One further GNU guideline says that documentation in a free system must not recommend non-free software. This is a softer variant of the guideline against steering users towards non-free software. The above considerations apply, although with a somewhat less worried tone.
  • The GNU guidelines say that software should not be excluded from a free system because of patent issues.
    • I think this is the most sensible line of reasoning.
    • The Debian Project usually adopts a nearly identical approach: do not worry about patents, except for those which are known to be actively enforced. Another point more or less in common between the GNU FSDG and Debian practice.
  • One GNU guideline states that a free system cannot include "malware".
    • I definitely agree that "malware" is harmful, but I am not too convinced it should be mentioned in a set of freeness guidelines. After all, things like DRM, back doors, and spyware are bad from a technical point of view, not from a software freedom one. Back doors and spyware may be identified and removed from free software, exactly because free software may be inspected and modified. DRM is slightly different, since there exist some absurd laws (DMCA in the USA, EUCD in the EU, ...) which forbid circumvention of DRM and may thus be construed to forbid the removal of a DRM-enforcing feature from a piece of free software (perhaps?).
    • As far as I can say, the Debian Social Contract and the DFSG do not ban technical anti-features (that is to say, features that act against the user): they rely on the freedom to modify free software in order to tend towards a system that doesn't work against its users. This requirement is included in the GNU FSDG, but not in the Debian Social Contract. Packages in Debian main do not automatically satisfy this GNU guideline, although they are very likely to be compliant.
  • Another GNU guideline states that a free system should be actively maintained and accept feedback on freeness issues.
    • This almost sounds obvious to me: I agree.
    • Debian seems to qualify. Nothing else to say here.
  • The last GNU guideline says that a free system should not be named too similarly to a non-free distribution.
    • In my opinion, this requirement is not unreasonable, but it may probably also be construed to imply that Debian main has the same name as (or an excessively similar name to) Debian main+contrib+non-free, thus failing to qualify as a free system. I don't agree with this specific interpretation, since Debian main+contrib+non-free is not a non-free distro with a similar name: it is just Debian with the addition of some packages which are not part of Debian (although they are intended to be installed on Debian systems).
    • Debian should be considered as compliant with respect to this GNU guideline, although some people might possibly claim the contrary.
Francesco Poli

This work is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2. It comes with absolutely no warranty. See the license text for details.