Thursday, April 5, 2018

JSON and & "Good, not Evil"

The JSON license is apparently infamous in the FOSS community for its inclusion of a moral clause. The license was nearly identical to the classic MIT License, except the one line,
The Software shall be used for Good, not Evil.
This line has persisted in the license since 2002 when Douglas Crockford originally penned it, and not without controversy. This clause prevents the license from being considered a free license, since it places restrictions on use. That has consequences for artifacts licensed under JSON. Below are some highlights of its fascinating, contentious past and present.

Google Code stops hosting

Around 2009, Google Code (at the time a host for open-source projects) reportedly stopped hosting projects that used the license. Ryan Grove described how he chose to migrate his project, JSMin, to Github. 

In 2010, it would appear that the Google Android team replaced implementations in core Android by writing them from scratch, with the commit "Removing the non-free org.json implementation."

Debian rejects use

In 2010, the debian-legal listserv re-visited the topic of whether software can be included in Debian's free distributions. Thomas Koch reported he emailed Crockford about the line and received the response,
If you cannot tolerate the license, then do not use the software.
The opinion of the listserv, summarized by Josselin Mouette, was
Definitely non-free, and the author’s clarification removes any doubt.

Crockford & "Evil" IBM

In a fascinating talk for Yahoo on the history of JSON (Trivia: the first JSON 'Hello world' message failed), Crockford discussed granting a license change. In a short section on the history of the license he says
this was late in 2002, you know, we just started the war on terror and you know we were going after the evildoers with the president and the vice president and I felt like I need to do my part. So I added one more line to my license was that the software shall be used for good not evil.
 However, he also describes how he's frequently approached by individuals and companies wanting to use his license. After IBM asked for a separate license, he allowed IBM to use his software under the JSON license, writing,
I give permission to IBM, its customers, partners, and minions, to use JSLint for evil.
Apparently that was enough for IBM lawyers in 2011. So Crockford has, in fact, granted adjusted licenses to some large organizations like IBM.

Crockford & Actual Evil

In 2012, compelled by a conference talk that covered how "the regime in Syria was using open source software in its efforts to track down and murder anyone with the courage to oppose the evil government," Crockford posted on Google+ ,
My very, very, very small part in this is that I include The software shall be used for good, not evil in my licenses. It is not effective at all, but it at least states my intention. It is quite controversial in the open source community because it is claimed that it restricts a specific field of use (specifically, evil), and that software cannot be considered free unless its license permits it to be used in the investigation, torture, and murder of patriots who dare to resist tyrants.
 The line, "It is not effective at all, but it at least states my intention," brings forth questions about the tensions between intention and impact. I'd be curious what Kant thinks about this case study.

 Github & project bug reports

Across Github and other software hosts, you can find references and arguments to the license in bug reports and feature requests. 

In 2013, @blickly opened the issue " is not free software #187" on the popular jshint project for Javascript linting and hints. This issue has 79 comments and remains unresolved as of this writing. In September 2017, user @eclipseo commented that the issue was "preventing us from including it in Fedora."

In contrast, the open project management system Trac resolved their use of JSON software in less than two months in 2012. They simply replaced the parser they were using. petition

2014, Thomas Koch (yes, the same Koch from Debian) begins a petition to get Crockford to remove that line from its license with the reasoning
Many free software activists are also active for good causes in other areas than software. The non-evil clause costs them time and nerves and distracts them from doing good.
The petition got 35 signatures.

Apache doesn't get the joke

In 2016, Apache reversed (archived text) its prior 8-year decision to use JSON-licensed software in its products. Originally, circa 2008, the legal-discuss listserv's thread indicated that "Good, not Evil" was, for the most part, a joke rather than a legal concern. Henri Yandell wrote, 
It's a joke clause in my opinion.

No comments:

Post a Comment

Please be kind.