Apache and the JSON license
The JSON license is a
slightly modified variant of the MIT license, but that
variation has led it to be rejected as a free-software or open-source
license by several organizations. The change is a simple—rather
innocuous at some level—addition of one line: "The Software shall be
used for Good, not
Evil.
". Up until recently, code using the JSON license was
acceptable for Apache projects, but that line and the ambiguity it
engenders was enough for Apache to put it on the list of disallowed licenses.
At the end of October, Ted Dunning brought
up the license on the Apache legal-discuss mailing list. He suggested
that classifying the JSON license as acceptable (i.e. on the list of Category A
licenses) was an "erroneous decision
". That decision was made,
he said, "apparently based on a determination that the
no-evil clause was 'clearly a joke'
". He pointed to a thread
from 2008 where a "lazy consensus
" formed
that the "not evil"
condition did not preclude Apache projects from using the license.
But Dunning pointed out that some of his customers' legal teams are not getting the "joke". As a license term, "good not evil" leaves quite a bit to be desired:
Dunning suggested that the license be moved to Category X, which contains licenses that cannot be used by Apache projects. Multiple replies in the thread made it clear there is no real support for the license and plenty of interest in seeing it be banned. In fact, Apache's vice president of legal affairs, Jim Jagielski, decided to ban the license on November 3. He explained his reasoning in a post two days earlier:
But, simply removing the license from the approved list doesn't magically fix the projects that depend on code using it. Dunning had a list of around a dozen Apache projects that may depend on JSON-licensed code; there may well be others. He also pointed to a Debian web page listing alternative JSON implementations. But work needs to be done to switch projects to acceptable alternatives—and that will take time.
Apache projects cannot make releases using code that is covered by a Category X license, so any that depend on JSON-licensed code need to fix that. Alan Gates wondered if there could be some kind of grace period for projects to come into compliance. He noted that the Apache Hive data warehousing project is in the middle of trying to get out a maintenance release, which would be blocked by the change; others may be similarly affected. Furthermore:
He and Jagielski had spoken about the matter and the latter had suggested perhaps adding a "grandfather clause" that would allow projects that already use JSON-licensed code to continue to make releases for some period of time. Gates proposed six months as that time frame. In general, that idea was popular, but there were some wrinkles.
Dunning would like to see a much shorter deadline for resolving the license problem. He has done some work to make it easier for projects to switch to a properly licensed alternative, but there is still a lot of testing that needs to be done to ensure everything works correctly. Gates asked if a six-month period would really matter given that the license has been present in Apache products for years, but Dunning is concerned that Apache projects are losing users over it:
There are other considerations, though. Andrew Wang said that the Apache Hadoop framework for big data
processing relies on third-party libraries that use JSON-licensed
code. "We can't simply swap it out.
" In addition, enterprise
software is expected to only make bug fixes for multiple years, he said, so
switching libraries will be problematic from that perspective:
There was a fair amount of discussion of how various projects could proceed to remove the dependency on JSON-licensed code, but no clear consensus emerged on how disruptive the change would be. Enough of a consensus on having a grace period of some length did emerge, however, to the point that Jagielski issued a statement that prohibited projects from adding JSON license dependencies, but allowed others some time to make the change:
It is, in some ways, surprising that it has taken this long for Apache to
tackle this particular license problem. Other organizations have banned
the license for years and Apache is rather notoriously picky about
licenses. The "determination" that it was a joke clause back in 2008 seems
a bit strange, in truth. But "there has been no real 'outcry' over our
usage of it, especially from end-users and other consumers of
our projects which use it
", Jagielski said, which may explain why it
hadn't been addressed until now.
It is likely that few would admit to using the JSON-licensed code for "evil" (however that is defined), but that isn't really the crux of the matter. Legal departments are understandably leery of how others (and courts, in particular) might interpret the clause. It is quite ambiguous and corporate legal teams go to great lengths to avoid that kind of thing when they can. Given that Apache projects are used at lots of large companies, it is perhaps also surprising that the outcry wasn't louder than it is even today.
Several in the thread wondered about getting the license's author, Douglas
Crockford, to change it. That was deemed unlikely by Jagielski and Sam
Ruby, who have both discussed it with him multiple times. Crockford has
given at least one license
exception in the past ("I give permission for IBM, its customers,
partners, and minions, to use JSLint for evil.
"), though no one
suggested pursuing that path for Apache projects.
But letting the issue linger certainly had a cost for the projects that depended on that code. It would, it seems, have been far better to grasp the nettle some time ago. In the end, though, by mid-2017 the problem should be resolved, hopefully with minimal disruption.
Posted Dec 1, 2016 0:42 UTC (Thu)
by josh (subscriber, #17465)
[Link] (13 responses)
Posted Dec 1, 2016 3:35 UTC (Thu)
by elw (guest, #86388)
[Link] (12 responses)
There are always at least two sides to everything. What is good and what is evil is simply a matter of perspective. The JSON license fails to acknowledge reality preferring, naively, to believe that everything is black or white, good or evil.
Posted Dec 1, 2016 8:27 UTC (Thu)
by marcH (subscriber, #57642)
[Link] (5 responses)
Yeah, everything's relative. For instance rape feels good to rapists whereas saving lives feels evil to... sorry; I forgot to whom exactly.
Posted Dec 1, 2016 9:42 UTC (Thu)
by farnz (subscriber, #17727)
[Link]
Intent matters - saving an unrepentant murderer's (e.g. a professional hitman for the KKK) life specifically so that they can kill again is "saving lives", but could be considered evil.
Posted Dec 1, 2016 11:23 UTC (Thu)
by NAR (subscriber, #1313)
[Link] (3 responses)
My guess is millions of people. Not just those who refuse possibly life saving medical intervention due to religious reasons (i.e. saving life is evil), but those who think saving refugees from drowning is a bad idea.
Posted Dec 1, 2016 18:18 UTC (Thu)
by marcH (subscriber, #57642)
[Link] (2 responses)
The point is: yes of course the concepts of Good and Evil aren't identical for everyone. This doesn't mean the concepts are completely void and useless; they do have a lot of universality. Pretending the concepts of Good and Evil are meaningless is just as extreme and stupid than pretending they mean the exact same for everyone. The real world is complex but that doesn't mean we can't say anything about it.
Posted Dec 1, 2016 18:34 UTC (Thu)
by tartley (subscriber, #96301)
[Link] (1 responses)
Posted Dec 1, 2016 21:31 UTC (Thu)
by marcH (subscriber, #57642)
[Link]
Posted Dec 1, 2016 10:39 UTC (Thu)
by stevan (guest, #4342)
[Link] (2 responses)
It seems a pity that this discussion seems limited to legal issues rather than what would seem on the face of it to be the intent behind the smiling face of the clause, which is to bear in mind an ethical aspect to software and its use. One can understand why the issue is reduced to a legal one above others, but as in other areas of life, surely software development can bear a bit of ethical self-scrutiny without it becoming a binary legal outcome.
Posted Dec 1, 2016 19:38 UTC (Thu)
by david.a.wheeler (subscriber, #72896)
[Link] (1 responses)
Posted Dec 1, 2016 23:52 UTC (Thu)
by JanC_ (guest, #34940)
[Link]
Posted Dec 2, 2016 6:23 UTC (Fri)
by gdt (subscriber, #6284)
[Link] (2 responses)
such ambiguous language has no place in a software license, or any license for that matter I can't agree. It's Douglas's code. He can license it how he sees fit. There's no obligation on him that a license be convenient for lawyers or that a license be a free software license. The license isn't pretending to be something it isn't, so there's no misrepresentation. If clarity is your requirement then no one forces use of this code. I'm not even convinced that this is poor legal procedure. For example, summary judgment against this license seems unlikely, since the nature of evil and a licensee's compliance with non-evil are matters of fact.
Posted Dec 2, 2016 18:20 UTC (Fri)
by nybble41 (subscriber, #55106)
[Link] (1 responses)
Allow me to rephrase. While the law does indeed say that it is Douglas's code and he can license it however he sees fit, such ambiguous language has no place in a license for software you actually want other people to *use*. Perhaps Douglas does not intend for the code to be used by anyone other than himself, and that is perfectly fine. However, the ambiguous license language makes the software toxic to anyone else, legally speaking: it is impossible to know whether one will later be found to have complied with the license or held liable for copyright infringement. If he wants the software to be adopted by others (and why else would he release it with an almost-open license?) then his purpose would be best served by leaving out the ambiguous language.
Posted Dec 2, 2016 21:26 UTC (Fri)
by bronson (subscriber, #4806)
[Link]
It's only toxic to the good guys.
Posted Dec 1, 2016 6:55 UTC (Thu)
by xtifr (guest, #143)
[Link]
Now I don't have to choose between dancing on Sundays and using Apache software. :D
Posted Dec 1, 2016 13:00 UTC (Thu)
by ber (subscriber, #2142)
[Link]
I think the lesson to be learned here is similar to what is known about software defects: Fixing licensing problems early is less expensive.
However sometimes legal issues are put forward for other reasons and should be ignored for practical reasons, so it cannot easily be detected if a licensing issue at hand is a real problem.
For the jslint license it has become clear a while ago that Mr Crockford does not are much about real Free Software down stream usage. Most products use the javascript parsing part. An alternative javascript parser linker is http://eslint.org .
Posted Dec 1, 2016 16:39 UTC (Thu)
by gwolf (subscriber, #14632)
[Link]
This joke-in-a-license (or joke-of-a-license? Am I doing evil here?) has been already disapproved for Debian. Debian is well known for its uncompromising attitude towards licenses, and several projects have been convinced to choose a saner or less controversial licensing scheme because of Debian's arguments.
In this case, this was not enough (at least for most projects still carrying it). the Apache Foundation is another very well known name in this regard, and very well recognized as a top player when it comes to the Web world (although clearly it does not stop with that alone).
Yes, many projects won't change, and we are likely to be stuck with the JSON license for good. However, this position statement might push many other projects to choose a sane licensing. Probably it will help push other important projects to a similar decision.
Slowly, at least, this will push the JSON license to fringe, unimportant projects. And the world will be a better, saner place. Yay!
Posted Dec 1, 2016 16:56 UTC (Thu)
by ncm (guest, #165)
[Link] (3 responses)
It is good to the degree that it hastens those deaths, but bad when actually dealing with it, instead, consumes effort better spent on projects that have a future.
Posted Dec 1, 2016 18:23 UTC (Thu)
by marcH (subscriber, #57642)
[Link]
Not 100% sure what you meant here but J2EE is one of Java's top successes and it's strongly and obviously related to Apache the web server.
Posted Dec 5, 2016 16:30 UTC (Mon)
by ssmith32 (subscriber, #72404)
[Link] (1 responses)
I don't see how any rational enginneer can consider Apache Hadoop or Cassandra dead (A rather large mass of Apache & Java, with a considerable ecosystem both free & commercial - > 1 billion$ - around both). There are even products I've personally recommended against using (Tomcat and any J2EE stuff) that I can't see how you would think are "dead".
Must be wishful thinking? I suppose some of my wishes and your beliefs could find common ground, but the facts are against the both of us...
Posted Dec 6, 2016 0:51 UTC (Tue)
by ncm (guest, #165)
[Link]
Posted Dec 2, 2016 4:21 UTC (Fri)
by branden (guest, #7029)
[Link] (1 responses)
Posted Dec 2, 2016 18:32 UTC (Fri)
by flussence (guest, #85566)
[Link]
Posted Dec 5, 2016 14:36 UTC (Mon)
by mirabilos (subscriber, #84359)
[Link] (2 responses)
Mostly compatible replacement we use:
<dependency>
I got this comment:
I have also packaged this onto Maven and made a number of changes to make it easier to port to. Notably, JSONException is now unchecked. See github.com/tdunning/open-json (also available via maven) – Ted Dunning yesterday
This should make adoption even easier.
Now JSHint/JSLint are harder to replace, but I’d say throw them into Crackford’s face and just remove them from the face of the world.
Posted Dec 5, 2016 17:11 UTC (Mon)
by keis (guest, #87838)
[Link] (1 responses)
Posted Dec 5, 2016 22:46 UTC (Mon)
by bronson (subscriber, #4806)
[Link]
Posted Dec 8, 2016 18:57 UTC (Thu)
by sombragris (guest, #65430)
[Link]
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
saving lives feels evil to... sorry; I forgot to whom exactly
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
Apache, OK
Apache, OK
Apache, OK
Apache, OK
Apache and the JSON license
Apache and the JSON license
Apache and the JSON license
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
<version>0.0.20131108.vaadin1</version>
</dependency>
Apache and the JSON license
Apache and the JSON license
While I believe in objective good and evil, this is awful. Especially when we leave it to the courts to ascertain what is good and what is evil.
This reminds me of something Theo de Raadt said back in 2001 in the context of the IPFilter controversy:
Apache and the JSON license
But software
which OpenBSD uses and redistributes must be free to all (be they
people or companies), for any purpose they wish to use it, including
modification, use, peeing on, or even integration into baby mulching
machines or atomic bombs to be dropped on Australia.