OSI Considered Harmful

In 1986, the first draft of the Free Software Definition was published, and included three freedoms; a fourth, freedom 0, was added in 1996, and together they read as follows:

  1. The freedom to run the program as you wish, for any purpose.
  2. The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help your neighbor.
  4. The freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Because software is written by human beings, it is a form of speech, and the four freedoms establish the requirements for exercising that speech. Human beings are a natural source of bias, and the best possible way to reduce bias is by allowing anyone the fullest possible access to the code underlying the software they use.

In 1999, both the Open Source Definition was published and the Open Source Initiative was founded. The OSD is a much more detailed definition than the FSD, but not included is a rationale for why it exists as a separate entity, and unfortunately the OSI’s history page omits one as well. It’s a curious omission, since both its proponents and the Free Software Foundation claim that ‘open source’ software and ‘free software’ are largely identical. (Richard Stallman, founder of the FSF, notes that there are underlying philosophical differences.)

While the two terms overlap significantly according to their respective definitions, ordinary developers often misunderstand what ‘open source’ actually means. I don’t believe that this is an accident; ‘open source’ does not, itself, refer to software freedom, and one must first know that there is an Open Source Definition and then actually read it to understand the intended meaning.

Because of this, a lot of ‘open source’ software has complications attached to it, regardless of the text of the licenses applied to such software. For example, the leading PDF & PostScript interpretation & rendering library GhostScript is ostensibly available under the terms of the Affero General Public License, but the company which develops the software has been extremely litigious with regards to the license requirements. (GNU have maintained the GPL version of the software since 2013, but development on it seems to have stalled for over a year.)

As another example, Redis developed the Commons Clause to shield certain of their plugins because other companies were selling Redis support, including customized builds of the Redis software. This clause prohibits selling the software, thereby restricting freedom 3. (The ‘open source’ movement condemned this clause, of course.)

Finally, there are a number of other ‘open core’ projects such as nginx. ‘Open core’ refers to the practice of having a basic ‘open source’ version of the software and selling closed-source plugins or add-ons in addition to providing support contracts. Typically the codebase is prohibitively difficult to audit for correctness, which also makes it impossible to know for certain that Free alternatives to the proprietary plugins won’t mysteriously become unusable.

All of this is possible because the term ‘open source’ does not convey a sense of software freedom and, as a consequence, ‘open source’ lacks the ideological underpinnings that maintain Free software. This leads to people thinking that the unrar program is ‘open source’ because the license text makes it look like it is Free software, when in reality the license explicitly forbids people who work on data compression software from interacting with the code in any way.

By removing the ideology, companies are able to apply a veneer of software freedom through embracing and adoption of ‘open source’ metholodogies, without actually embracing Free software in any significant way. This can allow a single company to dominate a huge portion of everyday life, at nearly every level. I refer, of course, to Google. Through Chromium, Google enjoys a near-monopoly level of control over Web software development. This is possible due both to Node.js being built on V8, a Chromium component, and to Electron, a UI-less version of Chromium (as a fork with minimal divergence from upstream development) which makes it easy to bring web applications to desktop (and encourages the creation of web applications).

But the insidiousness does not stop with Chromium. Android enjoys a market share of over 80% of the global smartphone ecosystem. It achieved this in part by providing a single platform for any smartphone manufacturer to customize. No smartphone manufacturer makes their customizations of the Android Open Source Platform available outside of their particular binary-only distributions of Android. (LineageOS is not a compelling alternative, as it requires significant user investments in time and/or trust to make use of this Android fork.)

In essence, an ‘open source’ project which, in and of itself, is also Free software is in fact not even remotely Free. Users have no control over Android as published outside of the Android Open Source Project. The average user has no hope of removing all of the closed-source, non-Free software provided to them on the phone that they purchase, even if they buy it from Google, because Android itself prevents the removal of vendor-provided software. Because none of the hardware on any smartphone is Free, even the Free alternatives like LineageOS have to include non-Free components, and that can limit the availability of such alternatives.

The OSI has facilitated and enabled this state of affairs by championing a term that is implicitly free of the ideology of software freedom. That they have a definition of ‘open source’ which supports software freedom is immaterial, because ordinary usage of ‘open source’ conveys the idea that the code is available, not that users have speech rights related to software.

The ideology of disability, and particularly my experience with blindness, shows that the choice of terms is vital to communicating needs and desires. It is far simpler for me to describe myself as blind and then the limits of my vision, because ‘blind’ conveys immediately that I can’t see. ‘Visually-impaired’ and ’low-vision’ are far more nebulous, because people don’t know what either term actually means until you describe the limits of your vision.

Similarly, ‘free software’ conveys immediately that there is freedom that relates to software. What does it mean? The four freedoms in free software, which I enumerated above. What does ‘open source’ convey? And why is it that the Open Source Definition is significantly more long-winded and, therefore, harder to tell people about?

What ‘open source’ immediately conveys is that the code is available. And a long, elaborate definition encourages the omission of that definition when describing the concept to newcomers. Without that definition, ‘open source’ becomes a tool for stealing the speech rights of users and locking it away. After all, the source is right there, so the obligations entailed have been met.

Or have they?