Degrees of Non-Free Software Tolerance

From ParabolaWiki
Jump to: navigation, search

The GNU FSDG and the Debian DFSG deal extensively with the degrees of toleration, condonation, and assistance regarding access to and mentions of proprietary software that are acceptable for a free software distribution. Their conclusions differ slightly, but the topics and nomenclature are much the same.

Unfortunately, folks tend to draw these strokes broadly; and there are many over-lapping and conflicting interpretations of terminology such as "require", "facilitate", "recommend", "suggest", "mention", and "restrict". For example, some contend that providing access to non-free software does not necessarily endorse it's use; while others say that merely mentioning the name of a non-free program is akin to recommending it.

This article aims to distinguish each of these terms by placing them on a spectrum of the least to the most tolerant and note some well-known software and devices that fall into the various ranges. Please do add to it if you know of some popular software or device that exemplifies one of these categories.

1 Requires:

Many hardware devices fall into this range because their normal functionality strictly requires proprietary firmware or drivers. In fact, most desktop and laptop computers have closed-source firmware that runs at boot-time and can not be removed. On some rare models it can be replaced, disabled, or "neutralized"; but attempting to do so would prevent most computers from even starting, perhaps irreversibly so. Computers with RISC-V, and the upcoming Power9 CPUs are the only new general-purpose computing devices that do not require non-free firmware to boot.

The Windows operating system, for one notable example, sits here; if only for fact that it is known to forcefully install updates to core system components. Updates aside, those very system components being replaced were non-free to begin with. Broadly speaking, any closed-source program or operating system is in this range by it's very nature.

Even free software games, nearly all fall into this range; in that typically, most or all of their sounds and graphics are closed-source, perhaps not even re-distributable; and these games simply will not function in any meaningful way without the art blobs.

2 The grey area between 'requires' and 'facilitates':

The LiveCD installers for most GNU/Linux distributions fall somewhere between "requires" and "facilitates"; in that they include non-free programs and drivers on the install media and may even install them onto the target system. Sometimes nothing depends on them and they simply sit dormant; but they are often installed because some hardware device was detected as installed on the system that would have it's functionality enabled or enhanced by the non-free software. These "blobs" may or may not run automatically at boot time by default; but the user is not forced to use them because the system would perform normally if they were removed. In these cases where the system does not perform normally with only free software, that is usually because a particular piece of hardware requires a non-free driver; but the system could be used in that same state if that troublesome hardware is replaceable (and replaced). Otherwise this software would be squarely in the "requires" range.

3 Facilitates:

Facilitation is where there is some software on the system that will, in it's default configuration, directly assist the user in installing non-free software. Examples of this are operating system package managers that have non-free repositories enabled by default and the "Chrome Web Store" that is built into Chromium-based browsers and the Android OS. Many people take the hard-line stance of this; but it should be noted that every web browser that is capable of running Javascript also falls into this range. Web browsers are the most careless and eager of all facilitators; because they will download and execute any script that any web page asks it to, without ever prompting the user or verifying the license of any of them. People generally do not complain about this as much because Javascript runs in a sandbox, mostly isolated from the PC hardware; but that does not render it benign or exempt from scrutiny.

There is some disagreement as to whether or not "facilitates" is of a stronger "non-free" degree than "recommends". The GNU FSDG tends toward the side of facilitation being the more egregious activity; but the Debian DFSG insists that Debian does not ever recommend using non-free software although they may provide access to it at the user's option.

4 Recommends, Suggests, or Mentions:

These are very closely related and may differ only subtly in intention; but this range is where the FSDG's blurry edges fade. A "recommendation" and a "suggestion" would generally conflict with the FSDG, where a mere "mention" would not.

A free system distribution must not steer users towards obtaining any non-free information for practical use, or encourage them to do so.

Recommends:: The primary examples are in the form of documentation or software bundles. A "recommendation" is where the user is explicitly advised, coaxed, or enticed into trying something non-free, perhaps in combination with an otherwise libre program, with or without actively "facilitating" the recommendation. Some package managers relate packages to others as optional "recommendations" or "suggestions", in the form of meta-data; but the distinction in that context usually amounts to no more than the single words: "recommends" and "suggests".

Suggests: A "suggestion" would be something like a program that mentions it's capability to make use of non-free libraries or plug-ins, if they happen to be present on the system; but this is barely distinguishable from merely "allowing" non-free software to run, except for indicating that it is possible. In other words, an otherwise free software operating system could move out of the range of "allows" and into "suggests", simply by mentioning that it supports some specific non-free software use-case. If in addition, there were instructions for how to acquire, install, or use non-free software, that would be more of a "recommendation".

Mentions: However, if the distro merely mentions that it can not prevent non-free software from running, without mentioning any specific examples, or if it mentions specifically that certain non-free programs are intentionally suppressed or replaced, then it is not really recommending or suggesting anything, other than the replacement. Several FSDG distros are libre replacements for another well-known distro, and may mention the shared heritage and how they derive and deviate from it. That is clearly not a "recommendation" of the other. It is a "recommendation" of itself over the other. These would be merely "mentions" of something non-free.

A mere mention of that sort does not necessarily conflict with the FSDG. It could be simply stating a technical or historical fact, regarding the distro's capabilities and limitations, indicating the upstream sources of a liberated program in a liberation script, or something similarly benign. For example, a URL leading to the non-free upstream sources of a liberated program, if given as an active "hot-link", could perhaps be construed as a "suggestion" or invitation. It is literally "steering towards" non-free software; but the same URL, presented only as plain text, with no accompanying suggestion that anyone should investigate it, would not be "steering" in the same sense.

5 Allows:

Although this lies near to one end of the scale being presented here; this is actually the most neutral zone of the spectrum. In this range is found mostly operating systems; especially those that do not necessarily require, nor actively facilitate access to, nor recommend, suggest, or even mention non-free software; but merely can not prevent it from being used. Even the most freedom-respecting FSF-endorsed operating systems lie here.

The main goal of the FSF is to raise awareness of the hazards of depending on (or even tacitly accepting) technology that is under someone else's control and putting your data under someone else's supervision; as well as to convince people that it is in their own best interest to use free software, because it provides that control and supports self-reliance.

The purpose of the GNU FSDG and the Debian DFSG are to provide some guidance for software distributions as to what is in the best interest of computer users.

The goal of GNU and the FSDG-fit operating systems is to provide adequate alternatives to proprietary software and SAAS services; so that there are few compromises involved in being self-reliant and using a completely free (as-in-freedom) operating system. Some other notable groups working toward those goals include the developers of Sandstorm, FreedomBox, and Dyne Dowse. To be clear though, none of these organizations have, as among their stated goals, the total eradication of proprietary software, or preventing it's use. The abilities to use free software along-side, and/or in cooperation with, non-free software, falls under Freedom #0.

6 Restricts:

Practically speaking, the only way to restrict the user of a general-purpose computing device from installing non-free software on it is to have some very low-level gate-keeper program that is responsible for policing all software (and possibly network traffic) on the system. In order for this to be effective, the device owner or systems administrator must explicitly want such a gate-keeper to serve exactly such purposes; and normal users must not be able to remove the gate-keeper program or or influence it's policies in any way. Many business, for example, place such restrictions on the computers used by their employees.

As for personal computers running a free operating system this is quite impractical and actually pointless to enforce technically; as the owner could remove any such restrictions at any time. For the majority of computer users, the use of proprietary software is always, in all practicality, governed only by the conscious decision-making faculties of that user. In practice, the most that can be done to or for the typical computer user, whether that be by software developers, distro maintainers, or otherwise FOSS advocates, is to provide information, guidance, and easy-to-use alternatives. Any technical restrictions would need to be put into place (and kept in place) voluntarily by the end-user. The Parabola 'your-freedom' package aims to serve as a form of gate-keeper for Parabola users by conflicting with known non-free software packages; forcing oneself to make the conscious decision to "remove your freedom" in order to use those non-free programs. The Linux-libre kernel is also in this range in that it refuses to load any non-free kernel device drivers.

It is to note, that on this end of the spectrum, there is nothing intrinsic to free vs. non-free software. For any such restriction mechanism to be effective, it must necessarily restrict everything that is not pre-approved (white-listed). This is as true if that mechanism is merely the conscience of the device owner. The only way to physically restrict the owner of a general purpose computing device from installing their choice of software on it is to have the core system or at least some encryption keys hard-coded or hard-wired into the circuits; making the entire device useless if those components or keys are removed. This is something like the design of some "smart" phones and video game consoles. In many cases, these are ordinary general purpose computing devices that are assembled with off-the-shelf consumer parts, but customized for only a particular use-case; so these "tacked-on" restriction mechanisms are not 100% effective and the user can choose to disable them (a.k.a. jail-breaking). The typical deterrent against this is that it voids the device warranty; but some manufacturers, media publishers, and law-makers want to make it a crime to exercise Freedom #0 on such devices. This is just to say that it is very difficult to prevent a sufficiently tech-savvy user of a general-purpose computing device from using it for any general purpose of their choosing.