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 differ only subtly in intention. The primary examples are in the form of documentation or software bundles. A "recommendation" is where the user is strongly advised, coaxed, or enticed into trying something non-free with an otherwise free program or system. Some package managers relate packages to others as "recommendations" and "suggestions"; but the distinction in that context usually amounts to no more than the single words: "recommends" and "suggests".

A "suggestion" would be something like a program that mentions it's capability to make use of non-free libraries if they happen to be present on the system such as an audio plug-in host; but this is barely distinguishable from merely "allowing" non-free software to run, aside from the mere act of mentioning 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 makes no attempt to prevent non-free software from running. Very few operating system take any steps to actually prevent the installation of non-free software; with Parabola being a rare exception. So strictly speaking, the simple fact that the ability to run non-free software is not explicitly stated as a design goal is the only reason that even Parabola can be said not to "suggest" or even "mention" that it is capable of running non-free software.

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.